Ubuntu 16.04下载编译Android11源码
Ubuntu 16.04下載編譯Android11源碼
- Ubuntu 16.04下載編譯Android11源碼
- 1. 硬件要求
- 2. 設置Linux構建環境
- 1. 安裝所需的軟件包
- 2. 安裝Open JDK1.8
- 3. 安裝git
- 4. 安裝Python3.7
- 3. 源碼下載
- 1. 下載repo
- 2. 下載Android11 源碼
- *3. 獲取專有二進制文件
- 4. 編譯 Android
- 5. kernel下載編譯
- 6. 合入內核,重新編譯
- 7. 刷入設備
- 1. 構建 `fastboot` 和 `adb`,如果你沒有 `fastboot` 和 `adb`,可以使用常規構建系統進行構建。
- 2. 解鎖引導加載程序
- 3. 刷寫設備
1. 硬件要求
必須達到或超出以下硬件要求:
- 如果是 Android 2.3.x (Gingerbread) 及更高版本(包括 master 分支),需要 64 位環境。如果是較低的版本,則可以在 32 位系統中進行編譯。
- 如果要檢出代碼,至少需要 250 GB 可用磁盤空間;如果要進行構建,則還需要 150 GB。如果要進行多次構建,則需要更多空間。
- 至少需要 16 GB 的可用 RAM/交換空間。
2. 設置Linux構建環境
1. 安裝所需的軟件包
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig2. 安裝Open JDK1.8
sudo apt-get update sudo apt-get install openjdk-8-jdk sudo apt-get install openjdk-8-jre注意: 如果系統已經安裝了jdk,多個JDK版本需要配置和切換。Ubuntu多個JDK版本配置和切換
3. 安裝git
安裝git:
sudo apt-get install git配置git:
git config --global user.name xxx git config --global user.email xxx@qq.com4. 安裝Python3.7
sudo apt-get install python3.7直接使用apt-get安裝python3.7失敗。改為手動安裝:
python 官網找到python3.7的下載地址:Python3.7.1
https://www.python.org/ftp/python/python3.7.1/Python-3.7.1.tgz
下載安裝包:
3. 源碼下載
1. 下載repo
2. 下載Android11 源碼
創建用于存放源碼的目錄:
mkdir aosp進入到 aosp目錄,初始化倉庫,并指定版本:android-11.0.0_r17
cd aosp repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r17下載Android源代碼樹:
repo sync*3. 獲取專有二進制文件
如果只是編譯運行于虛擬器,則不需要下載設備驅動文件。我們使用真機調試(這里使用的是Pixel 3a),所以需要下載對應源碼分支真機驅動,并解壓到源碼目錄一起編譯。
代號、標記和 Build 號
下載的代碼分支為:android-11.0.0_r17,對應的build ID為: RP1A.201105.002,
下載樣機對應Android分支的驅動文件:
Google驅動程序
解壓驅動文件到源碼目錄:
執行解壓后的 .sh文件。
4. 編譯 Android
*說明:
如果之前已經編譯過,重新編譯需要清除緩存和之前生成的文件
使用 lunch 選擇要構建的目標。lunch product_name-build_variant 會選擇 product_name 作為需要構建的產品,并選擇 build_variant 作為需要構建的變體,然后將這些選擇存儲在環境中,以便供后續對 m 和其他類似命令的調用讀取。
設備對應代號
我們使用Pixel 3a真機調試,其對應代號:sargo,編譯配置:aosp_sargo-userdebug
5. kernel下載編譯
創建用于存放kernel的目錄:
mkdir kernel進入到 kernel目錄,初始化倉庫,并指定分支:
cd kernel repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-bonito-4.9-android11設備對應內核分支
下載kernel源代碼:
repo sync編譯內核:
./build/build.sh6. 合入內核,重新編譯
將內核合入image:
export TARGET_PREBUILT_KERNEL=/home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb編譯:
cd ~/aosp make bootimage7. 刷入設備
1. 構建 fastboot 和 adb,如果你沒有 fastboot 和 adb,可以使用常規構建系統進行構建。
make fastboot adb2. 解鎖引導加載程序
只有在引導加載程序允許的情況下,您才可以刷寫自定義系統。但請注意,引導加載程序默認處于鎖定狀態。您可以解鎖引導加載程序,但這樣做會導致系統出于隱私原因而刪除用戶數據。解鎖之后,系統會清空設備上的所有數據,即應用中的私人數據以及可通過 USB 訪問的共享數據(包括照片和影片)。請先備份設備上的所有重要文件,然后再嘗試解鎖引導加載程序。
自 2014 年以來發布的所有 Nexus 和 Pixel 設備(從 Nexus 6 和 Nexus 9 開始)都內置有恢復出廠設置保護功能,需要執行多個步驟才能解鎖引導加載程序。
如需在設備上啟用 OEM 解鎖功能,請執行以下操作:
在“設置”中,點按關于手機,然后點按版本號七次。
a. 當看到“您已處于開發者模式”這條消息后,點按返回按鈕。
b. 點按開發者選項,然后啟用 OEM 解鎖和 USB 調試(如果 OEM 解鎖處于停用狀態,請連接到互聯網,以便設備可以至少檢入一次。如果“OEM 解鎖”仍處于停用狀態,說明設備可能已被運營商鎖定 SIM 卡,系統無法解鎖引導加載程序。)
重新啟動進入引導加載程序,然后使用 fastboot 解鎖。
3. 刷寫設備
-w 選項會擦除設備上的 /data 分區;該選項在您第一次刷寫特定設備時非常有用,但在其他情況下則沒必要使用。
第一次需要刷入所有img文件,之后只需要刷入修改模塊的img文件,如:
fastboot flash boot out/target/product/sargo/boot.img提示: 需要先對設備進行remount后才能成功推入,否則會推入失敗,同時remount后還需要重啟設備,才能生效。
總結
以上是生活随笔為你收集整理的Ubuntu 16.04下载编译Android11源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《上海市居住证》积分申请基本流程
- 下一篇: 浅谈Git原理和常用命令(学习笔记)