第一节 编译环境搭建
AOSP的编译环境因版本不同而不同,我们在这里只考虑最新AOSP代码的编译,借助于当前流行的应用容器引擎技术,我在DockerHub上提交了编译环境,你可以按照以下步骤来搭建AOSP编译环境:
一、安装Docker $ sudo apt install docker.io
二、拉取镜像 $ sudo docker pull heyworld/aosp-hatch:1.0
三、编写镜像启动脚本 HATCH_AOSP.sh,内容如下:
#!/bin/sh
USER_AOSP_SOURCE_DIR=/home/yunlong/AOSP/Project/aosp # 此处改为你自己的源码目录
DOCKER_AOSP_SOURCE_DIR=/aosp
echo "Remember cd "$DOCKER_AOSP_SOURCE_DIR
sudo docker run -i -t -v $USER_AOSP_SOURCE_DIR:$DOCKER_AOSP_SOURCE_DIR heyworld/aosp-hatch:1.0 /bin/bash
四、添加权限,并执行 HATCH_AOSP.sh
sudo chmod +r HATCH_AOSP.sh
sudo ./HATCH_AOSP.sh
五、根据脚本的cd提示,切换到源码目录
至此,AOSP的编译环境就完全准备好了。以后你都可以通过执行 sudo ./ HATCH_AOSP.sh 来进入AOSP的编译环境了。
如果你对Docker感兴趣,你可以在 Docker 教程 | 菜鸟教程 学习。
如果你想查看这个编译环境里具体包含了哪些软件,你可以在 aosp-hatch 查看 Dockerfile 文件。
如果你想在Docker仓库里查看,你可以在 aosp-hatch | docker hub 查看。
第二节 编译成IDEA工程
如果你想方便的查看和修改源码,你可以执行以下命令,来生成 ipr,iws文件,然后用Android Studio打开此工程。
make idegen && development/tools/idegen/idegen.sh
第二节 编译AOSP
在Docker容器中,切换到源码目录后,按照以下的操作步骤,你就可以编译出一个可以运行的安卓系统了,整个编译时间在十个小时左右。
一、通过source命令添加编译所需的命令
source build/envsetup.sh
二、执行lunch命令,选择编译目标
lunch
# 手头没有可以刷安卓原生系统的手机,就先编一个跑在模拟器上的系统吧
三、执行编译
make -j16 # CPU核心数的两倍
如果你在编译中遇到问题,欢迎来 aosp-hatch | new issue 提出,你也可以在这里查看你的问题,幸运的话,别人之前遇到过此类问题,并且被解决了。
四、查看并运行编译好的安卓系统