Android不编译某个模块

时间:2022-03-27 22:30:04

Android 5.1 源码,编译相关的文件一般在build目录下
build/target/product 放了很多mk文件;一般不同的产品会有不同的目录

假设我不想编译OpenWnn,在build目录下grep一下“OpenWnn”
target/product/full_base.mk
target/product/sdk_base.mk
进入这两个文件,删掉这两句及相关库后:

PRODUCT_PACKAGES := \
libfwdlockengine \
WAPPushManager


把out目录删除,或者只删掉相关文件
重新编译即可

在 full_base.mk 中,有以下内容

PRODUCT_PACKAGES := \
libfwdlockengine \
WAPPushManager

PRODUCT_PACKAGES
+= \
LiveWallpapersPicker \
NoiseField \
PhaseBeam \
VisualizationWallpapers \
PhotoTable
...... 

 sdk_base.mk 中也有这么多packages

sdk_base.mk中也有这么多packages
PRODUCT_PACKAGES :
= \
Dialer \
Gallery \
Mms \
Music \
SystemUI \
......

不想编译哪个,删去即是。在对应的产品mk文件中确保没有这个模块即可

但是有的地方可能会调用到这些app。如果不编译某个模块,而系统中有对其
的调用,很可能会有弹窗警告。比如“短信”已停止工作。

adb shell
root@product_name:/system/app # rm -rf Mms
从机器中删去短信app,需要root权限
在android里要注意语法,-rf不能写在最后面Android不编译某个模块