去除WiFi版本的短信,联系人,电话应用。
【解决方案】WiFi版本让这三个app不参与编译。参与编译一般在.mk文件中,我们只要在.mk文件中根据版本做出判断或者注掉不编译即可。
- Gms一般在vendor路径下,我们需要找到存放gms_app的目录:例如:vendor/partner_gms/apps,在此目录下我们会看到短信,联系人,电话的应用名称根据这个应用名称我们去寻找编译他的.mk文件。
- 如何寻找编译它的.mk文件?可以使用命令:find -name “*.mk” | grep -irn “appname”
找到使用此属性的地方:PRODUCT_PACKAGES += appname。在此属性这里根据使用版本的不同进行宏控判断即可。 - 针对海外版本(Row)一般会在gms的具体app文件下的Android.mk文件中使用例如:LOCAL_OVERRIDES_PACKAGES := messaging MtkMms
这个属性可以替换掉系统中的原生和平台的app。例如海外Row版本使用的应该是gms中的app,系统会使用 vendor/partner_gms/apps/Message中的短信app而屏蔽掉原生的messaging和平台的MtkMms。根据这个我们也能知道原生的和平台的短信app的名称,或者在平台下或者package/apps下查看appname。 - 国内prc_lte版本不会使用gms的但是会使用平台的或者原生的。一般在device或者build下面,使用命令find -name “*.mk” | grep -irn “appname”进行查找。如果查找有多个地方使用了PRODUCT_PACKAGES += appname,我们可以在他们出现的位置加log: $(warning “###info###”)会在编译起始阶段打印,根据打印的log判定具体是那个地方生效。在根据是否是lte或者wifi版本添加宏控判断是否让它参与编译。