Android 13源码下载及编译

1,888 阅读2分钟

一、 ubuntu系统安装

本案例以ubuntu 20.04桌面版系统,虚拟机参数配置:

虚拟机CPU:4核

虚拟机内存:24g(我是按以实际物理机内存的75%作为虚拟机内存)

虚拟机硬盘大小:340G-ssd(ubuntu系统占用30g左右,源码100g,编译需要60g,swapfile 32g,tmfs:等等留100g)

二、 源码下载

1.首先安装git和curl

sudo apt-get install git-core curl
#安装好后配置git相关的email,name。拉取镜像时,为了识别身份用的
git config --global user.email "xxxx@gmail.com"
git config --global user.name "xxxx"
#以下为optional选项
# 增加git缓存
git config --global http.postBuffer 5000000000
# 关闭git SSL验证
git config --global http.sslVerify false
# 关闭git压缩
git config --global core.compression -1
git config --global http.postBuffer 5000000000
git config --global http.sslVerify false
git config --global core.compression -1

2.下载并配置repo

mkdir ~/bin  
PATH=~/bin:$PATH  
#自备梯子
curl https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo  
chmod a+x ~/bin/repo

3.修改repo内镜像地址

#打开repo
vim ~/bin/repo
#修改REPO_URL
REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

4.初始化仓库

repo init -u git://mirrors.tuna.tsinghua.edu.cn/aosp/platform/manifest  
#或者指定Android版本  
repo init -u git://mirrors.tuna.tsinghua.edu.cn/aosp/platform/manifest -b (Android版本)
#本文以Android13为例,执行如下命令
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-13.0.0_r31

5.开始下载

#开始同步
repo sync -j8
#-j*指令为开启*个线程下载。注意清华镜像网站最高只允许8个线程并发,超过会抛503拒绝连接。
#repo内部默认是4个

三、源码编译

1.基础编译环境安装

# Google原生Android源码编译依赖库
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

# 高通Qualcom源码依赖库
sudo apt-get install libx11-dev:i386 libreadline-dev:i386 libgl1-mesa-dev g++-multilib git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils xsltproc unzip m4 lib32z1-dev ccache libssl-dev

# 安装openjdk
sudo apt install openjdk-8-jre-headless

2.增加swap内存

#查看当前swap大小,一般默认2g
free -m
#本机约24g虚拟机内存,仍会出现内存不足的情况,修改swap,增加至32G
sudo swapoff /swapfile 
sudo rm /swapfile 
df -h
sudo fallocate -l 32G /swapfile
ls -lh /swapfile 
sudo chmod 600 /swapfile 
sudo mkswap /swapfile 
sudo swapon /swapfile
sudo swapon --show
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

3.编译

#进入源码目录
cd AndroidSource
#执行脚本
source build/envsetup.sh
#查看可编译的版本,并选择
lunch
#选择对应的版本,如下图
![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4af6abeca3ef426087cf42c3f0366d84~tplv-k3u1fbpfcp-watermark.image?)
#执行编译
make -j8

4.启动模拟器

#执行emulator启动模拟器
emulator

#若重启了系统则
cd AndroidSource
#执行脚本
source build/envsetup.sh
#查看可编译的版本,并选择第三步对应的版本
lunch 9
#再执行emulator启动模拟器
emulator