从构建中删除AOSP应用程序

时间:2013-10-23 11:07:54

标签: android android-source android-build

首先,我正在尝试使用Android源代码构建Android平台,而不使用LiveWallpapers,日历,通讯录,计算器,手机,设置等库存应用。

为了做到这一点,我正在修改 / build / target / product / 中的make文件,特别是变量 PRODUCT_PACKAGES ,其中包含所有需要的应用程序和库建成。

例如,我删除了以下行:

DeskClock \
Bluetooth \
Calculator \
Calendar \

来自 generic_no_telephony.mk 文件中的PRODUCT_PACKAGES :=

然而,当我在闪光后运行平板电脑时,我仍然可以找到电子邮件,声音和电子邮件等应用程序。语音记录器等我在重建之前已经清理过了。 我是否需要删除其他make文件中的更多条目?

在这里,您可以看到我在 build / target / product / 中对make文件所做的所有修改:

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 := \

1 个答案:

答案 0 :(得分:5)

我认为其他应用程序可能包含这些模块(包),在.mk文件的LOCAL_REQUIRED_MODULES中指定。我会尝试找出模块的包名,然后搜索所有.mk文件。

您可以使用LOCAL_OVERRIDES_PACKAGES在其Android.mk中添加新模块,存根和禁用模块,而不是在许多文件夹中修改AOSP中的.mk文件。如果模块仍然出现在目标中,您可能需要添加LOCAL_OVERRIDES_PACKAGES个其他模块,这些模块通过LOCAL_REQUIRED_MODULES添加了不需要的软件包。

抱歉,我不知道更好的方法。

packages / apps 文件夹包含大多数应用.mk文件,但您可能需要检查设备供应商硬件文件夹也是如此。

ADDED:我刚刚发现envsetup.sh提供了mgrep命令来搜索makefile(包括* .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'命令报告了它(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

您可以检查mgrepenvsetup.sh的实施情况,以获取有关新grep搜索的提示。)