前言
目的:
修改调试标志
打印native动态注册地址
改机
脱壳(fart)
编译android 7源码。分两个步骤:
下载android源码到硬盘,大概有100G左右
使用docker进行编译
所有操作都在docker中进行
一、构建docker环境
参考资料:
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
运行命令开始构建:sudo docker build -t xiaoming996/aosp-android-7:1.0.0 .
编写docker-compose.yaml
启动容器:sudo docker-compose up -d
进入容器:sudo docker exec -it aosp bash
二、下载源码
源码初始化脚本repo-init-sync.sh
执行命令screen -L ./repo-init-sync.sh, 由于网络的原因,源码可能会不完整,建议多执行几次repo sync,
源码下载完成后还需要下载google pixel硬件支持包。
根据源码分支查看Android分支对应的构建
查找到android-7.1.2_r33对应的Build为NZH54D
然后直接到官网下载驱动包
操作细节如下:
三、编译源码
源码有了,下面开始编译。为了方便,编写build.sh
在源码目录运行:screen -L ./build.sh
出现错误:build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed。
解决方法:在build/envsetup.sh最后添加export LC_ALL=C
出现错误:Try increasing heap size with java option '-Xmx'.
解决办法:https://2net.co.uk/blog/jack-server.html
四、刷机
通过上面的步骤,成功编译了Android源码。接下来将编译好的固件刷入到手机。
先用官方的aosp底包刷:./flash-all
然后刷入编译的镜像: