安装 VirtualBox 并安装 ubuntu20.04
ubuntu 20.04 编译Android9.0的android源码
AOSP通俗来讲就是一个Android系统源码项目,通过它可以定制 Android 操作系统,国内手机厂商都是在此基础上开发的定制系统。连接谷歌服务器获取AOSP源码,清华的镜像现在有问题下载不下来,本篇是版本,不能的可以绕过。
使用的virtual box 上安装的ubuntu20.04系统进行操作的
repo工具
repo是一个多个git仓库的代码管理工具
安装git
sudo apt-get install git
创建bin,并加入到PATH中
mkdir ~/bin
PATH=~/bin:$PATH
安装curl库:
sudo apt-get install curl
下载repo并设置权限:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
安装python,repo初始化时会用到
sudo apt-get install python
建立工作目录
mkdir android9
cd android9
设置shell邮箱和用户名
git config --global user.email "[email protected]"
git config --global user.name "liupanfeng"
初始化仓库
repo init -u https://android.googlesource.com/platform/manifest
如果需要某个特定的 Android 版本(列表):
建议采用这个初始化的方式
repo init --depth=1 -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r30
--depth=1
表示只下载最近版本的代码,只保留最近的commit版本。
使用--depth
可以节省本地磁盘空间,加速下载,对于开发够用了。
同步源码:
repo sync
或者
**更好的方式是这样同步**
```shell
repo sync -c -f --no-tags --no-clone-bundle -j`nproc`
开始的时候没加这些配置,拉下来很多没用的东西,弄了90G的内容,导致后面编译都没空间了
--no-tags
不拉取tags,tag虽然不大,但架不住多
–no-clone-bundle 不使用clone.bundle,clone.bundle是git bundle一样的打包文件,使用bundle文件可以做cdn下载的分流,cdn听上去不错,但是如果cdn到google的服务器,或者clone.bundle本来就占空间,不是很划算,所以不使用clone.bundle
-f
如果sync失败,继续同步
如果没报错,出现syucing work tree:100%就成功了
当我下载到这里尝试编译一直编译不过去,各种查原因,发现还是不对后来发现原来还差一部分模拟器的内核源码没下载。
建立工作目录
mkdir kernel
cd kernel
下载模拟器源码
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
cd goldfish
git branch -a
选择一个goldfish的版本下载
git checkout remotes/origin/android-goldfish-3.4
感谢:
https://blog.csdn.net/counsellor/article/details/86591081
https://blog.csdn.net/itachi85/article/details/89038334?spm=1001.2014.3001.5501