Удаление приложений AOSP из сборки

Во-первых, я пытаюсь создать платформу Android из исходного кода Android без использования таких приложений, как LiveWallpapers, Календарь, Контакты, Калькулятор, Телефон, Настройки и т. Д.

Чтобы сделать это, я изменяю make-файлы в / build / target / product / , в частности переменную PRODUCT_PACKAGES, которая содержит все приложения и библиотеки, которые необходимо создать.

Например, я удалил следующие строки:

DeskClock \ Bluetooth \ Calculator \ Calendar \ 

Из PRODUCT_PACKAGES := в файле generic_no_telephony.mk .

Однако, когда я запускаю свой планшет после вспышки, я все еще нахожу такие приложения, как электронная почта, звуковой и речевой рекордер и т. Д. Я уже очищал их до восстановления. Нужно ли мне удалять больше записей в других файлах?

Здесь вы можете увидеть все изменения, которые я сделал для make-файлов в build / target / product / :

 diff --git a/target/product/core.mk b/target/product/core.mk index 1d62eb8..5474f6a 100644 --- a/target/product/core.mk +++ b/target/product/core.mk @@ -25,23 +25,13 @@ PRODUCT_PROPERTY_OVERRIDES := \ PRODUCT_PACKAGES += \ ApplicationsProvider \ BackupRestoreConfirmation \ - BasicDreams \ Browser \ - Contacts \ - ContactsProvider \ DefaultContainerService \ - DownloadProvider \ - DownloadProviderUi \ - HTMLViewer \ Home \ KeyChain \ - MediaProvider \ PackageInstaller \ - PicoTts \ SettingsProvider \ SharedStorageBackup \ - TelephonyProvider \ - UserDictionaryProvider \ VpnDialogs \ abcc \ apache-xml \ diff --git a/target/product/full_base.mk b/target/product/full_base.mk index b2e3189..94d6d48 100644 --- a/target/product/full_base.mk +++ b/target/product/full_base.mk @@ -21,24 +21,10 @@ PRODUCT_PACKAGES := \ libfwdlockengine \ - OpenWnn \ - PinyinIME \ libWnnEngDic \ libWnnJpnDic \ libwnndict \ - VideoEditor \ - WAPPushManager - -PRODUCT_PACKAGES += \ - Galaxy4 \ - HoloSpiralWallpaper \ - LiveWallpapers \ - LiveWallpapersPicker \ - MagicSmokeWallpapers \ - NoiseField \ - PhaseBeam \ - VisualizationWallpapers \ - PhotoTable + # Additional settings used in all AOSP builds PRODUCT_PROPERTY_OVERRIDES := \ diff --git a/target/product/full_base_telephony.mk b/target/product /full_base_telephony.mk index 5899c8c..8c8c7c3 100644 --- a/target/product/full_base_telephony.mk +++ b/target/product/full_base_telephony.mk @@ -19,9 +19,6 @@ # build quite specifically for the emulator, and might not be # entirely appropriate to inherit from for on-device configurations. -PRODUCT_PACKAGES := \ - VoiceDialer - PRODUCT_PROPERTY_OVERRIDES := \ keyguard.no_require_sim=true \ ro.com.android.dataroaming=true diff --git a/target/product/generic_no_telephony.mk b/target/product/generic_no_telephony.mk index f139cbd..5f544b2 100644 --- a/target/product/generic_no_telephony.mk +++ b/target/product/generic_no_telephony.mk @@ -20,27 +20,16 @@ PRODUCT_POLICY := android.policy_phone PRODUCT_PACKAGES := \ - DeskClock \ Bluetooth \ - Calculator \ - Calendar \ CertInstaller \ DrmProvider \ - Email2 \ - Exchange2 \ FusedLocation \ - Gallery2 \ InputDevices \ LatinIME \ Launcher2 \ - Music \ - MusicFX \ Provision \ - Phone \ - QuickSearchBox \ Settings \ SystemUI \ - CalendarProvider \ bluetooth-health \ hostapd \ wpa_supplicant.conf diff --git a/target/product/large_emu_hw.mk b/target/product/large_emu_hw.mk index 27ebc96..54c53ca 100644 --- a/target/product/large_emu_hw.mk +++ b/target/product/large_emu_hw.mk @@ -20,25 +20,14 @@ PRODUCT_POLICY := android.policy_mid PRODUCT_PACKAGES := \ - CarHome \ - DeskClock \ Bluetooth \ - Calculator \ - Calendar \ CertInstaller \ DrmProvider \ - Email2 \ - Exchange2 \ - Gallery2 \ - LatinIME \ Launcher2 \ - Music \ Provision \ - QuickSearchBox \ Settings \ Sync \ Updater \ - CalendarProvider \ SyncProvider \ bluetooth-health \ hostapd \ diff --git a/target/product/mini.mk b/target/product/mini.mk index b69c917..9486c50 100644 --- a/target/product/mini.mk +++ b/target/product/mini.mk @@ -54,15 +54,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ # Please keep this list sorted alphabetically PRODUCT_PACKAGES += \ ApplicationsProvider \ - ContactsProvider \ DefaultContainerService \ DownloadProvider \ DownloadProviderUi \ - MediaProvider \ PackageInstaller \ SettingsProvider \ - TelephonyProvider \ - UserDictionaryProvider \ abcc \ apache-xml \ audio \ @@ -161,8 +157,6 @@ PRODUCT_PACKAGES += \ Bluetooth \ FusedLocation \ InputDevices \ - LatinIME \ - Phone \ Provision \ hostapd \ wpa_supplicant.conf diff --git a/target/product/sdk.mk b/target/product/sdk.mk index 1edff57..294b9d8 100644 --- a/target/product/sdk.mk +++ b/target/product/sdk.mk @@ -18,40 +18,23 @@ PRODUCT_POLICY := android.policy_phone PRODUCT_PROPERTY_OVERRIDES := PRODUCT_PACKAGES := \ - Calculator \ - DeskClock \ - Exchange2 \ FusedLocation \ - Gallery \ - Music \ - Mms \ - OpenWnn \ libWnnEngDic \ libWnnJpnDic \ libwnndict \ - Phone \ - PinyinIME \ Protips \ SoftKeyboard \ SystemUI \ Launcher2 \ - Development \ - DevelopmentSettings \ - DrmProvider \ Fallback \ Settings \ SdkSetup \ CustomLocale \ sqlite3 \ InputDevices \ - LatinIME \ CertInstaller \ - LiveWallpapersPicker \ ApiDemos \ GestureBuilder \ - CubeLiveWallpapers \ - QuickSearchBox \ - WidgetPreview \ monkeyrunner \ guavalib \ jsr305lib \ @@ -59,13 +42,7 @@ PRODUCT_PACKAGES := \ jsilver \ librs_jni \ ConnectivityTest \ - GpsLocationTest \ - CalendarProvider \ - Calendar \ - SmokeTest \ - SmokeTestApp \ - rild \ - LegacyCamera + rild # Define the host tools and libs that are parts of the SDK. diff --git a/target/product/telephony.mk b/target/product/telephony.mk index 89ed20a..a92ed03 100644 --- a/target/product/telephony.mk +++ b/target/product/telephony.mk @@ -18,7 +18,6 @@ # to products that have telephony hardware. PRODUCT_PACKAGES := \ - Mms \ rild PRODUCT_COPY_FILES := \ 

Я думаю, что эти модули (пакеты) могут быть включены другими приложениями, указанными в LOCAL_REQUIRED_MODULES в файлах .mk. Я попытался бы выяснить имена пакетов модулей, а затем выполнить поиск по всем файлам .mk.

Вместо изменения большого количества файлов .mk в AOSP во многих папках вы можете добавить новый модуль, заглушку и отключить модули в своем Android.mk, используя LOCAL_OVERRIDES_PACKAGES . Если модуль по-прежнему отображается в цель, вам, вероятно, нужно будет добавить в LOCAL_OVERRIDES_PACKAGES еще один модуль, который добавит нежелательные пакеты через LOCAL_REQUIRED_MODULES .

Извините, я не знаю, как лучше это сделать.

Pack / apps хранит большинство приложений .mk-файлов, но в общем случае вам может потребоваться также проверить папки устройств , поставщиков и аппаратных средств .

ADDED: Я только что обнаружил, что envsetup.sh предоставляет команду mgrep для поиска в make-файлах (включая * .mk), поэтому вы можете попробовать это найти .mk, ссылаясь на пакет DeskClock:

 build@1c1b9d217b9d:~/android/cm12.1$ mgrep DeskClock ./packages/apps/DeskClock/Android.mk:20:LOCAL_PACKAGE_NAME := DeskClock ./packages/apps/DeskClock/tests/Android.mk:12:LOCAL_PACKAGE_NAME := DeskClockTests ./packages/apps/DeskClock/tests/Android.mk:14:LOCAL_INSTRUMENTATION_FOR := DeskClock ./build/target/product/core.mk:26: DeskClock \ 

Итак, вы видите, что DeskClock включен в сборку из core.mk

Хотя команда mgrep не упоминается в разделе envsetup.sh , сообщается командой «hmm» (help for envsetup.sh) – я цитирую ее здесь, чтобы побудить нас изучить инструменты AOSP глубже)):

 build@1c1b9d217b9d:~/android/cm12.1$ hmm Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment: - lunch: lunch <product_name>-<build_variant> - tapas: tapas [<App1> <App2> ...] [arm|x86|mips|armv5|arm64|x86_64|mips64] [eng|userdebug|user] - croot: Changes directory to the top of the tree. - cout: Changes directory to out. - m: Makes from the top of the tree. - mm: Builds all of the modules in the current directory, but not their dependencies. - mmm: Builds all of the modules in the supplied directories, but not their dependencies. To limit the modules being built use the syntax: mmm dir/:target1,target2. - mma: Builds all of the modules in the current directory, and their dependencies. - mmp: Builds all of the modules in the current directory and pushes them to the device. - mmmp: Builds all of the modules in the supplied directories and pushes them to the device. - mmma: Builds all of the modules in the supplied directories, and their dependencies. - mms: Short circuit builder. Quickly re-build the kernel, rootfs, boot and system images without deep dependencies. Requires the full build to have run before. - cgrep: Greps on all local C/C++ files. - ggrep: Greps on all local Gradle files. - jgrep: Greps on all local Java files. - resgrep: Greps on all local res / *.xml files. - sgrep: Greps on all local source files. - godir: Go to the directory containing a file. - cmremote: Add git remote for CM Gerrit Review - cmgerrit: A Git wrapper that fetches/pushes patch from/to CM Gerrit Review - cmrebase: Rebase a Gerrit change and push it again - aospremote: Add git remote for matching AOSP repository - cafremote: Add git remote for matching CodeAurora repository. - mka: Builds using SCHED_BATCH on all processors - mkap: Builds the module(s) using mka and pushes them to the device. - cmka: Cleans and builds using mka. - repolastsync: Prints date and time of last repo sync. - reposync: Parallel repo sync using ionice and SCHED_BATCH - repopick: Utility to fetch changes from Gerrit. - installboot: Installs a boot.img to the connected device. - installrecovery: Installs a recovery.img to the connected device. Look at the source to view more functions. The complete list is: mgrep cmka get_symbols_directory lunch repopick sgrep cmrebase getbugreports m reposync treegrep cmremote getdriver make resgrep _lunch core getlastscreenshot makerecipe runhat adb_get_product_device coredump_enable getprebuilt mangrep runtest adb_get_traced_by coredump_setup getscreenshotpath mk_timer sepgrep add_lunch_combo cout getsdcardpath mka set_java_home aospremote cproj gettargetarch mm set_sequence_number breakfast croot gettop mma set_stuff_for_environment brunch dddclient ggrep mmm setpaths cafremote dopush godir mmma settitle cgrep eat hmm mms smoketest check_bash_version findmakefile installboot omnom stacks check_product fixup_common_out_dir installrecovery pez startviewserver check_variant gdbclient is pid stopviewserver choosecombo gdbclient_old isviewserverstarted print_lunch_menu systemstack chooseproduct gdbwrapper jgrep printconfig tapas choosetype get_abs_build_var key_back qpid tracedmdump choosevariant get_build_var key_home repodiff cmgerrit get_make_command key_menu repolastsync 

Вы можете проверить реализацию mgrep в envsetup.sh чтобы получить идеи для новых поисков grep))