<Android> 系统编译删除不必要的Apk

本文以Android 5.1的A83T octopus-f1工程为例.

预装APK分为四种priv-app, preinstall, precopy, app

out/target/product/octopus-f1/system/priv-app 系统默认APP

out/target/product/octopus-f1/system/app   用户APP

out/target/product/octopus-f1/system/precopy:  第一次启动Launcher之前安装到/data目录, 可卸载

out/target/product/octopus-f1/system/preinstall: 第一次系统启动安装到/data目录, 可卸载

先装这四个文件夹下的文件全部删除.

配置文件为.mk结尾的文件主要在 build/target/product, device/softwinner/octopus-f1目录下.

将PRODUCT_PACKAGES是不需要的项目删除:

build/target/product/core.mk:

PRODUCT_PACKAGES += \
	CertInstaller \
	DeskClock \
    Launcher2 \
    Settings 
##############
# 2017.10.26 OK
#  LatinIME 
# KeyChain 
#  ExternalStorageProvider
###########################
# 2017.10.25 OK
# InputDevices 
#   DocumentsUI 
#	Keyguard 
#BasicDreams 
#CaptivePortalLogin 
#ManagedProvisioning 
###########################
# 2017.10.25 OK
#   Exchange2 
# 	MmsService 
#   PrintSpooler 
# 	PacProcessor 
#   libpac 
# 	Calendar 
# 	CalendarProvider 
# 	Exchange2 
# 	VpnDialogs 
# 	SharedStorageBackup 
# 	FusedLocation 
# 	ProxyHandler 
# 	Telecom 
# 	TeleService 
####################
# 2017.10.25 OK
#    QuickSearchBox 
#    PicoTts 
#   Contacts 
#    DownloadProviderUi 
#   Browser 
#   Calculator 
#   Email 


扫描二维码关注公众号,回复: 1718220 查看本文章

build\target\product\core_base.mk:等等

具体APK作用, 参看网址 Android系统裁剪 apk

另外在全局查找可使用find+grep组合, 如:

root@virtual-machine:/home/root/CQA83TAndroid_v2.1.0_bv3/android# find . -type f -name \*.mk | xargs grep Dialer -in
./external/srec/config/en.us/config.mk:19:        VoiceDialer.g2g \
./external/srec/config/en.us/Android.mk:50:# ALL_PREBUILT += $(G2G_INSTALL_PATH)/VoiceDialer.g2g \
./device/softwinner/octopus-f1/ril_modem/huawei/mu509/huawei_mu509.mk:8:	Dialer \
./device/softwinner/octopus-f1/ril_modem/Oviphone/em55/oviphone_em55.mk:11:	device/softwinner/fiber-3g/ril_modem/Oviphone/em55/wcdma-ppp-on-dialer:system/etc/ppp/wcdma-ppp-on-dialer
./packages/services/Telephony/Android.mk:3:# Build the Phone app which includes the emergency dialer. See Contacts
./packages/services/Telephony/Android.mk:4:# for the 'other' dialer.
./packages/apps/Dialer/tests/Android.mk:15:LOCAL_PACKAGE_NAME := DialerTests
./packages/apps/Dialer/tests/Android.mk:17:LOCAL_INSTRUMENTATION_FOR := Dialer
./packages/apps/Dialer/Android.mk:43:LOCAL_PACKAGE_NAME := Dialer
./packages/apps/VoiceDialer/tests/Android.mk:12:LOCAL_PACKAGE_NAME := VoiceDialerTests
./packages/apps/VoiceDialer/tests/Android.mk:14:LOCAL_INSTRUMENTATION_FOR := VoiceDialer
./packages/apps/VoiceDialer/Android.mk:8:# LOCAL_PACKAGE_NAME := VoiceDialer
./packages/apps/VoiceDialer/Android.mk:16:# Install the srec data files if VoiceDialer.apk is installed to system image.
./build/target/product/full_base_telephony.mk:23:# VoiceDialer
./build/target/product/sdk_base.mk:32:#	Dialer 

如此可找到对应的mk将其删除即可. 

注意如果要删除apk, 必须先把out中的apk删除才行, 再进行android make.



猜你喜欢

转载自blog.csdn.net/meta_cpp/article/details/78354123