使用Docker编译AOSP

admin 2022年7月8日20:34:47评论78 views字数 1502阅读5分0秒阅读模式

使用Docker编译AOSP

使用Docker编译AOSP

需求背景

看到标题就知道,我这次又来水文章了,因为Android不再支持在Mac上去编译AOSP了,开一个虚拟机总感觉也不是那么的方便,毕竟我只用到了其中的一小部分的功能,于是呢,我就考虑到了能不能用Docker来编译AOSP。

方案探索

因为我对于docker实际上是一点也不会的,因此呢,让我自己写个Dockerfile的话,这就太难了,考虑到,有这种需求的大概率不会只有我一个,所以说先到同性交友网站里面搜一把。

使用Docker编译AOSP

然后这就找到了,经过一番探索,找到了一个好用的。

编译过程

这里我采用的直接下载好的Android源码,然后直接解压就好了,这里注意一个问题,因为MacOS本身的文件名是大小写不敏感的,因此呢,需要先准备一个大小写敏感的磁盘。这里我直接找了一块空白的盘,重新格式化了一下,具体格式如下图。

使用Docker编译AOSP

下载镜像

git clone https://github.com/islem19/AOSP-Build-on-Docker.git
cd AOSP-Build-on-Docker
make

进入镜像

docker run --rm -it -v /path/to/source:/aosp sabdelkader/aosp

上面的路径就是解压之后源码的路径,这里我编译的是 AOSP7.1.1_r1

编译前准备

  • 设置一下cache size to 10G
prebuilts/misc/linux-x86/ccache/ccache -M 10G
  • 这里要修改一下一个文件,否则编译会报错。
apt-get update
apt-get install vim
vi /etc/java-8-openjdk/security/java.security
# 删掉TLSv1, TLSv1.1

  • 下载对应的驱动(我编译的N5X) 其他版本自行下载
wget https://dl.google.com/dl/android/aosp/lge-bullhead-nmf26f-7bf6caec.tgz
wget https://dl.google.com/dl/android/aosp/qcom-bullhead-nmf26f-fa1a80d5.tgz
  • 解压驱动
tar -zxvf lge-bullhead-nmf26f-7bf6caec.tgz
tar -zxfv qcom-bullhead-nmf26f-fa1a80d5.tgz
./extract-lge-bullhead.sh 
./extract-qcom-bullhead.sh 
  • 配置环境
source build/envsetup.sh
  • 选择需要编译的rom
lunch
  • 开始编译
make -j 12

好了,到这里就完成了,最后放一张编译成功的图。

使用Docker编译AOSP

感觉在docker里面编译的时间好像要比虚拟机时间要长一些,目前我也没发现原因,如果有知道原因的大佬们欢迎来告诉我。

遗留问题

这里虽然是系统编译出来了,但是我没想到怎么能在docker当中用有线连接adb, 虽然这问题也不大,在mac上本身用adb刷机就好了,但是想用我编译出来的adb就不太好处理了,根本原因还是因为我太菜了,如果有搞过的大佬欢迎来告诉我哈,在这里先感谢各位大佬们了。

参考资料

  • https://github.com/islem19/AOSP-Build-on-Docker
  • https://developers.google.com/android/images
  • https://developers.google.com/android/drivers


原文始发于微信公众号(Coder小Q):使用Docker编译AOSP

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月8日20:34:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用Docker编译AOSPhttp://cn-sec.com/archives/1167839.html

发表评论

匿名网友 填写信息