MTK androiod5.1源码精简系统APP
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文件删除或者注释掉里面的内容。
更多相关文章
- android 打包自己的自定义组件成JAR包
- Android(安卓)使用百度离线地图(由apk文件转入手机内部存储)
- Android(安卓)XML解析(Document Object Model(DOM))
- 修改android 4.4系统下面的休眠时间,只留下永不休眠选项
- Android(安卓)STB 编译自定义jar
- Android(安卓)自定义控件布局 NullPointerException findViewByI
- Android初涉NDK,从零打造你的第一个demo
- Launcher功能的修改及添加,本篇是一些小功能的展示,通知栏显隐,dock
- Android(安卓)XML 中schema和自定义属性的关系