下載 aosp 源碼:
mkdir sources/android/9
mkdir sources/bin
cd sources/bin
// 使用清華提供的鏡像
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
vim ~/.bashrc
// 添加環(huán)境變量
export PATH=/sources/bin/:$PATH
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
// 保存退出后,更新變量
source ~/.bashrc
// 選擇分支
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r3
// 同步代碼
repo sync
準(zhǔn)備編譯環(huán)境:
參考 https://source.android.com/source/initializing.html
1.安裝 jdk8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
2.更新默認(rèn)的 Java 版本 - 可選
sudo update-alternatives --config java
sudo update-alternatives --config javac
3.使用 ubuntu 14+肴甸,需要安裝以下依賴包:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
4.修改輸出目錄
默認(rèn)目錄為源碼下的out目錄原在,可以使用
export OUT_DIR_COMMON_BASE=/sources/android/out
修改輸出目錄彤叉。
5.優(yōu)化編譯環(huán)境(可選)
// 在源碼根目錄執(zhí)行
export USE_CCACHE=1
export CCACHE_DIR=/sources/android/8/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G
5.開始編譯
cd aosp
source build/envsetup.sh
// 編譯前清理(刪除build文件夾)
make clobber
lunch // 6 我需要在模擬器中使用,所以這里選擇的x86_64澳泵,可以根據(jù)情況選擇編譯類型
make -j8
系統(tǒng)鏡像輸出文件為:
out/target/product/generic_x86_64/
如果在模擬器中運(yùn)行鏡像文件兔辅,主要的系統(tǒng)文件為 system.img
,我下載了 sdk 提供的9.0的鏡像维苔,直接將編譯完成的system-qemu.img
鏡像將system.img
替換掉即可。