安装docker
在WSL2(Ubuntu 18.04)中安装docker并配置自启动
配置docker源
使用阿里云的加速服务,解决下载镜像速度慢的问题
打开容器镜像服务
镜像中心 - 镜像加速器
将加速器地址写入/etc/docker/daemon.json
,格式为:
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
重启docker
sudo service docker restart
克隆仓库
编译安卓5.0到6.0,则克隆android-5
分支
git clone https://github.com/XhyEax/docker-aosp -b android-5
7.0及以上直接克隆即可
git clone https://github.com/XhyEax/docker-aosp
配置源码保存路径(可选)
默认保存到~/aosp-root
(即/root/aosp-root
)
export AOSP_VOL=~/Android/
也可修改aosp
中的AOSP_VOL
手动配置镜像版本(可选)
以编译6.0系统为例,修改aosp
的第十二行为:
AOSP_IMAGE=${AOSP_IMAGE:-kylemanna/aosp:5.0-lolipop}
所有tag:dockerhub kylemanna/aosp tags
启动容器 进入bash
用于测试文件夹映射是否正确,进入后执行ls
./aosp
注意:不要执行exit
,会关闭容器。使用Ctrl+P+Q
从容器中Detach即可
以root用户进入bash
用于编译系统
使用VSCode Docker插件(推荐)
在VSCode
中安装Docker
插件后,在Containers
中右键打开的aosp
容器,Attach Shell
使用命令行
查询容器id
启动docker容器后,复制容器id(用户名后面的字符)
也可以使用docker ps
查询
(下面是使用命令提取出第一个容器id)
登录bash
cid=$(docker ps | grep aosp | cut -d" " -f1) && echo $cid
docker exec --privileged -u root -it $cid bash
已有源码:直接编译系统
进入容器的bash后,打开源码目录,执行以下命令:
prebuilts/misc/linux-x86/ccache/ccache -M 100G
source build/envsetup.sh
lunch aosp_arm-eng
cpus=$(grep ^processor /proc/cpuinfo | wc -l)
make -j $[2*$cpus]
注意
如果需要编译手机(如nexus5)使用的系统镜像,还需要下载驱动文件。
见:Ubuntu 19.10 编译安卓6.0.0_r1源码
并修改脚本中的aosp_arm-eng
为aosp_hammerhead-userdebug
无源码:下载源码并编译
cd tests
bash ./build-aosp.sh
该脚本下载的是android-6.0.0_r1
的代码,编译目标为aosp_arm-eng
,如需更换请自行修改脚本
删除容器
docker ps
找到容器id,执行docker rm -f 容器id
删除