在WSL2中使用docker编译安卓源码

博客链接:https://blog.xhyeax.com/2020/04/16/aosp-docker/

安装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

export AOSP_VOL=~/Android/

手动配置镜像版本(可选)

以编译6.0系统为例,修改aosp的第十二行为:

AOSP_IMAGE=${AOSP_IMAGE:-kylemanna/aosp:5.0-lolipop}

所有tag:dockerhub kylemanna/aosp tags

只进入bash

./aosp

已有源码:直接编译系统

进入容器的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]

aosp_arm-eng替换成编译目标

无源码:下载源码并编译

cd tests
bash ./build-aosp.sh

该脚本下载的是android-6.0.0_r1的代码,编译目标为aosp_arm-eng,如需更换请自行修改脚本

注意

如果需要编译nexus5使用的版本,还需要下载驱动文件。
见:Ubuntu 19.10 编译安卓6.0.0_r1源码
并修改脚本中的aosp_arm-engaosp_hammerhead-userdebug

以root用户登录bash

主要用于修改系统文件

查询容器id

启动docker容器后,复制容器id(用户名后面的字符)
也可以使用docker ps查询

root用户登录bash

docker exec --privileged -u root -it 容器id bash

参考

tiann/docker-aosp
使用docker创建aosp编译环境
docker下载镜像太慢的解决方案

你可能感兴趣的:(Android,Linux)