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