gpt4 book ai didi

android - 从构建中删除 AOSP 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:52:37 26 4
gpt4 key购买 nike

首先,我尝试从 Android 源代码构建一个 Android 平台,而没有 LiveWallpapers、日历、联系人、计算器、电话、设置等库存应用程序。

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

例如,我删除了以下行:

DeskClock \
Bluetooth \
Calculator \
Calendar \

来自 PRODUCT_PACKAGES := 文件 generic_no_telephony.mk

但是,当我在刷机后运行我的平板电脑时,我仍然发现电子邮件、录音和语音记录器等应用程序。我在重建之前已经清理过。我是否需要删除其他 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 := \

最佳答案

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

无需修改 AOSP 中许多文件夹中的一堆 .mk 文件,您可以使用 LOCAL_OVERRIDES_PACKAGES 在其 Android.mk 中添加一个新模块、一个 stub 并禁用模块。如果模块仍然出现在目标中,您可能需要向 LOCAL_OVERRIDES_PACKAGES 添加另一个模块,这些模块通过 LOCAL_REQUIRED_MODULES 添加了不需要的包。

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

packages/apps 文件夹包含大部分应用程序 .mk 文件,但您可能需要检查设备供应商硬件 一般情况下也是文件夹。

添加: 我刚刚发现 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

的构建中

尽管 envsetup.sh 的帮助部分未提及 mgrep 命令,但“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

您可以在 envsetup.sh 中检查 mgrep 的实现以获得新的 grep 搜索的想法))

关于android - 从构建中删除 AOSP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com