android 的build system有一套加载*.mk进行系统编译配置的复杂逻辑,再加上MTK又根据自己需要自行添加了一些配置文件,所以在网上搜索到很多精简app的 方法,发现并不能完成真正的移除apk。这里提供两种方式,均已经在项目中通过验证。

一、简单的验证移除app后系统的状况

确定是否要移除某个app之前我们可能需要做一些简单的验证,这个时候我们不需要去修改mk文件,直接到out目录中的app和priv-app目录删除指定的app后执行make snod重新打包system.img后刷机即可进行验证。

二、真正的从编译系统中移除APK

基于MTK平台要真正移除apk需要修改两个目录下的多个文件:

  • 首先需要修改device/mediatek/mt6735/device.mk文件

把不需要的app加#注释掉

#delete by LeoHo PRODUCT_PACKAGES += DeskClock
PRODUCT_PACKAGES += AlarmProvider
PRODUCT_PACKAGES += Bluetooth
#delete by LeoHo PRODUCT_PACKAGES += Calculator
#delete by LeoHo PRODUCT_PACKAGES += Calendar
PRODUCT_PACKAGES += CertInstaller
PRODUCT_PACKAGES += DrmProvider
#delete by LeoHo PRODUCT_PACKAGES += Email
PRODUCT_PACKAGES += FusedLocation
PRODUCT_PACKAGES += TelephonyProvider
#delete by LeoHo PRODUCT_PACKAGES += Exchange2
PRODUCT_PACKAGES += LatinIME
#delete by LeoHo PRODUCT_PACKAGES += Music
#delete by LeoHo PRODUCT_PACKAGES += MusicFX
PRODUCT_PACKAGES += Protips
#delete by LeoHo PRODUCT_PACKAGES += QuickSearchBox
PRODUCT_PACKAGES += Settings
PRODUCT_PACKAGES += Sync
PRODUCT_PACKAGES += SystemUI
PRODUCT_PACKAGES += Updater

#delete by LeoHo PRODUCT_PACKAGES += CalendarProvider

  • 之后修改build目录中几个关键的mk文件

在这几个文件中将不需要的app注释掉

build/target/product/core.mk
build/target/product/full_base.mk
build/target/product/generic_no_telehoney.mk

build/target/product/sdk_base.mk

#delete by LeoHo
#PRODUCT_PACKAGES += \
#    Galaxy4 \
#    HoloSpiralWallpaper \
#    LiveWallpapers \
#    LiveWallpapersPicker \
#    MagicSmokeWallpapers \
#    NoiseField \
#    PhaseBeam \
#
#    PhotoTable


#delete by LeoHo    Camera2 \
#delete by LeoHo    Gallery2 \
#delete by LeoHo    Music \

#delete by LeoHo    MusicFX \

之后重新编译系统即可。

这里总结一下思路和方法:

可能有些apk经过以上的方法还是不能真正的去掉,这个时候我们需要理清模块被包含在哪些mk文件中

举个例子,如果我需要移除Browser浏览器app,那么可以通过如下的指令

find ./ -name "*.mk" | xargs grep "Browser" --color=auto

先查找到哪些mk包含了Browser,然后逐一删除掉。

        假如经过以上方法均不能从系统删除app,我们还有最后的手段就是找到模块的目录,将目录下模块的Android.mk文件删除或者注释掉里面的内容。

更多相关文章

  1. android 打包自己的自定义组件成JAR包
  2. Android(安卓)使用百度离线地图(由apk文件转入手机内部存储)
  3. Android(安卓)XML解析(Document Object Model(DOM))
  4. 修改android 4.4系统下面的休眠时间,只留下永不休眠选项
  5. Android(安卓)STB 编译自定义jar
  6. Android(安卓)自定义控件布局 NullPointerException findViewByI
  7. Android初涉NDK,从零打造你的第一个demo
  8. Launcher功能的修改及添加,本篇是一些小功能的展示,通知栏显隐,dock
  9. Android(安卓)XML 中schema和自定义属性的关系

随机推荐

  1. Android基于Ffmpeg 的软编软解的可视对讲
  2. [Android1.6]横竖屏切换时自动弹出键盘的
  3. 手机改 user模式为debug模式
  4. 使用android真机测试http网络连接异常解
  5. Android常用布局范例
  6. Android(安卓)Zxing集成
  7. Android(安卓)网络请求框架总结(二)
  8. Android控制使用视频教程
  9. 《Android群英传》读书笔记(7)第六章:Androi
  10. 自己动手做android热更新框架