背景
作者:退役debug选手
环境 AOSP 10
当我们经常编译AOSP后有可能需要全量更新我们的修改,全量更新就意味着之前我们手机上面安装的软件都清空了,等同于回复出厂设置,那么我们可不可以提前放入一些我们自己需要用的APP呢,刷机之后APP就不用重复安装了。
无源码内置apk到系统
这一次我们先做一个无源码无so库的APP到系统中。
有so库的下一篇实践。
准备工作
准备好apk安装包,这个包也可以是自己的,也有可能是客户给的,只给成品不给源码。这是前提。
比如我现在就编写了一个简单的无so的apk。
App名字就是内置App。
编译成功之后先安装到手机看看运行情况,是否会崩溃等等检查。
能看到我们的log正常输入,且App没有崩溃。
我们把这个apk复制到这里:
在源码目录下packages/apps下创建一个目录,这个目录就是我们存放apk的目录。
创建MyApp目录,保存上面打包出来的apk文件,命名MyApp.apk。
创建Android.mk文件,文件内容是这样的。
1 |
|
当我们加入到这个地方之后,是可以进行编译,但是无法加入到系统编译中,还需要修改另一个地方配置。
这里有很多App,我们在build中搜索他们是怎么配置的。
比如相机,我们找到了build/make/target/product/handleld_product.mk中有相机的配置,通常这种文件夹配置后面会有一个 \反斜杠。我们模仿他们去配置就行。
加入我们的apk的目录。
编译刷机
上面配置完成之后,我们开始编译。
接下里是错误的操作,make -j4后我snod重新生成system.img,然后就刷入手机了。
这个时候手机重启,直接显示分区坏了。。。
具体原因不明,如果知道的大佬,还望告知。
怎么抢救呢?刷入同代号的官方刷机包就行。这个我很早就准备好了,因为之前已经遇到过这个情况n次,我现在内心毫无波澜了。
找到之前的刷机包,执行flash-all.sh就行了。
抢救回来之后,当然是继续刷,我们还没验证是否内置成功。
这一次就是全量刷入。
进入源码目录
1 |
adb reboot bootloader |
刷机完成正常开机,查看APP是否内置成功。
这里没有卸载选项的了
打开App
成功了!
总结
本文主要介绍了如何通过源码定制内置APP到Android系统,更多移动安全知识欢迎关注安全后厨!
- source:security-kitchen.com
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论