Android AOSP和Android-X86源码下载编译终极普法
引言
最近有朋友在询问怎么下载Android AOSP源码和Android-X86源码,编译学习!其实这个说简单也简单,说复杂吗也不复杂。但是难在真的干起来!凯子哥的风格吗,既然朋友们有这个需求,那就必须满足,这不就给朋友们安排上了。这是一门实操博客,没有过多啰嗦的,直接开干!
1.由于国内的环境,此处默认大伙是不能翻墙的情况下进行相关源码的下载,如果能翻墙的话那就比较简单了。
2.这里的操作系统环境,以ubunut 20.04为准
3.如果读者只是仅仅阅读源码,不需要编译调试可以直接在线查阅Android源码,这个有好几个网站国内不需要翻墙也可以访问
一.下载编译Android-X86源码
这是实操博客,啥也不多说,直接开车就是了,错了直接开干。朋友们,一起动起来!
1.1 创建下载脚本目录构建环境
-
新建一个存放下载脚本文件的目录
mkdir ~/bin PATH=~/bin:$PATH
-
下载repo脚本文件
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
-
打开bin文件夹下的repo文件,将REPO_URL进行替换:
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
1.2 创建x86下载目录,准备开始下载
创建相应的下载目录开始下载
mkdir android-x86
cd android-x86
repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b r-x86
这里关于具体的Android版本号对应的branch,这里简单给出一下:
Android版本号 | 英文简称 |
---|---|
Android 12 | S |
Android 11 | R |
Android 10 | Q |
Android 9 | Pie |
另外这里还有一点必须说明一下的是,如果你是可以翻墙忽略下一步,直接下载:
因为Android仓库的源我们国内无法直接下载,需要翻墙,因为我们无法翻墙,所以这里在将谷歌的源替换成清华的源,如下:
vi .repo/manifests/default.xml
diff --git a/default.xml b/default.xml
index c59ca95..d82cd9c 100644
--- a/default.xml
+++ b/default.xml
@@ -2,7 +2,7 @@
<manifest>
<remote name="aosp"
- fetch="https://android.googlesource.com/" />
+ fetch="https://aosp.tuna.tsinghua.edu.cn" />
<default revision="refs/tags/android-11.0.0_r48"
remote="aosp"
sync-c="true"
1.3 开始下载
开始同步下载:
repo sync
如果仅仅是想获取代码,不需要tag或者git信息,可以有一种更加快速的方法,repo sync --no-tags --no-clone-bundle
1.4 开始编译
这里的编译就比较简单了,直接执行如下的几个命令就OK了:
souce build/envsetup.sh //输入lunch选择目标CPU类型
lunch android_x86_64-userdebug
make -j32 iso_img
最后生成的镜像如下:
二.下载编译Android AOSP源码
啥也不多说,直接开干就是了。尼玛真是烦躁啊!
2.1 创建下载脚本目录构建环境
-
新建一个存放下载脚本文件的目录
mkdir ~/bin PATH=~/bin:$PATH
-
下载repo脚本文件
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
-
打开bin文件夹下的repo文件,将REPO_URL进行替换
REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
2.2 创建aosp下载目录,开始下载
-
创建相应的下载目录
mkdir android_source cd android_source repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b r-x86
-
下载初始化包:
wget -c -t 0 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar tar xvf aosp-latest.tar
-
解压后看到一个aosp的目录,进到该目录,同步到android-11.0.0_r37版本
cd aosp repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r37 repo sync
1.此处我们通过wget下载的是清华打包好的源,由于地域或者网络因素可能下载会很慢而且可能wget会异常退出,这个建议开发者最好是最清晨或者网络比较空闲的时候下载
2.如果使用清华的源下载的速度非常慢的话,建议开发者可以切换到中科大的源进行先关的操作,具体可以详见博客使用清华或中科大AOSP源镜像下载Android源码和中科大AOSP 镜像使用帮助。
2.3 开始编译
怎么编译,这就不是本文介绍的重点了,读者可以根据具体需要编译的project自行选择。这里我要重点说的是,假如读者是第一次编译,可能需要安装如下的相关编译依赖工具:
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libncurses5
如果在安装的过程中遇到,无法定位软件包 libesd0-dev,请执行如下操作:
sudo vim /etc/apt/sources.list //在行尾添加如下两行的内容
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
sudo apt-get update && sudo apt-get install libesd0-dev
在具体的编译过程中,可能会遇到各种错误提示,通常是有一些依赖没有安装造成的,朋友可以在编译的过程中自行安装即可。
写在最后
好了,打卡收工下班。今天的博客Android AOSP和Android-X86源码下载编译终极普法件就到这里了。总之,青山不改绿水长流先到这里了。如果本博客对你有所帮助,麻烦关注或者点个赞,如果觉得很烂也可以踩一脚!谢谢各位了!