最近客户需求需要把系统应用裁剪只剩系统setting 有个别应用比较难找 比较难找 最后总结了一下技巧 这里记录一下
-
将系统里的应用和对应的包名打印出来
[F:]$ adb shell pm list package -f
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
…… -
打开要裁剪的应用 从logcat获取到对应的包名
--------- beginning of system
09-27 15:53:46.863 1416 2994 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.codeaurora.dialer/com.android.dialer.main.impl.MainActivity bnds=[192,236][360,450]} from uid 10099 -
将包名在步骤1里的打印找到对应的apk
package:/system_ext/priv-app/QtiDialer/QtiDialer.apk=org.codeaurora.dialer
QtiDialer即是源码里对应的LOCAL_PACKAGE_NAME -
将需要裁剪的应用添加到不需要裁剪的应用的overrides里 通过overrides使裁剪的应用不编译达到裁剪效果
例如添加到系统设置的Android.bp
android_app {
….
overrides:[
“QtiDialer”,
],
}
如果是低版本使用的是Android.mk 则添加
LOCAL_OVERRIDES_PACKAGES := QtiDialer -
修改后删除out目录下的对应的编译文件 后重新编译
find QSSI.12/out/target/product/qssi/ -name QtiDialer | xargs rm -rf