日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu 16.04下载编译Android11源码

發布時間:2023/12/8 Ubuntu 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 fontconfig

2. 安裝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.com

4. 安裝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

  • 下載安裝包:

  • wget https://www.python.org/ftp/python/python3.7.1/Python-3.7.1.tgz
  • 解壓安裝,參考手動安裝python3.7
  • 3. 源碼下載

    1. 下載repo

  • 確保你的主目錄中有一個 bin/ 目錄,并且它包含在你的路徑中:
  • mkdir ~/bin PATH=~/bin:$PATH
  • 下載 Repo 啟動器,并確保它可執行:
  • curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/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

  • 設置環境,使用 envsetup.sh 腳本初始化環境:
  • source build/envsetup.sh

    *說明:
    如果之前已經編譯過,重新編譯需要清除緩存和之前生成的文件

    make clobber // 清除緩存
  • 選擇目標:
    使用 lunch 選擇要構建的目標。lunch product_name-build_variant 會選擇 product_name 作為需要構建的產品,并選擇 build_variant 作為需要構建的變體,然后將這些選擇存儲在環境中,以便供后續對 m 和其他類似命令的調用讀取。
  • 設備對應代號

    我們使用Pixel 3a真機調試,其對應代號:sargo,編譯配置:aosp_sargo-userdebug

    lunch aosp_sargo-userdebug

  • 編譯,并把log保存到build.log文件。
  • make -j4 2>&1 | tee build.log

    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.sh

    6. 合入內核,重新編譯

    將內核合入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 bootimage

    7. 刷入設備

    1. 構建 fastboot 和 adb,如果你沒有 fastboot 和 adb,可以使用常規構建系統進行構建。

    make fastboot adb

    2. 解鎖引導加載程序

    只有在引導加載程序允許的情況下,您才可以刷寫自定義系統。但請注意,引導加載程序默認處于鎖定狀態。您可以解鎖引導加載程序,但這樣做會導致系統出于隱私原因而刪除用戶數據。解鎖之后,系統會清空設備上的所有數據,即應用中的私人數據以及可通過 USB 訪問的共享數據(包括照片和影片)。請先備份設備上的所有重要文件,然后再嘗試解鎖引導加載程序。

    自 2014 年以來發布的所有 Nexus 和 Pixel 設備(從 Nexus 6 和 Nexus 9 開始)都內置有恢復出廠設置保護功能,需要執行多個步驟才能解鎖引導加載程序。

    如需在設備上啟用 OEM 解鎖功能,請執行以下操作:

  • 在“設置”中,點按關于手機,然后點按版本號七次。
    a. 當看到“您已處于開發者模式”這條消息后,點按返回按鈕。
    b. 點按開發者選項,然后啟用 OEM 解鎖USB 調試(如果 OEM 解鎖處于停用狀態,請連接到互聯網,以便設備可以至少檢入一次。如果“OEM 解鎖”仍處于停用狀態,說明設備可能已被運營商鎖定 SIM 卡,系統無法解鎖引導加載程序。)

  • 重新啟動進入引導加載程序,然后使用 fastboot 解鎖。

  • fastboot flashing unlock
  • 在屏幕上確認解鎖。
  • 3. 刷寫設備

  • 在啟動時按住相應的組合鍵或使用以下命令使設備進入 fastboot 模式:
  • adb reboot bootloader
  • 在設備處于 fastboot 模式后,運行以下命令:
  • fastboot flashall -w

    -w 選項會擦除設備上的 /data 分區;該選項在您第一次刷寫特定設備時非常有用,但在其他情況下則沒必要使用。

    第一次需要刷入所有img文件,之后只需要刷入修改模塊的img文件,如:

    fastboot flash boot out/target/product/sargo/boot.img
  • 刷入內核:
  • fastboot flash dtbo /home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/dtbo.img fastboot boot /home/lxy/kernel/out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot/Image.lz4-dtb
  • 推入.ko 文件:
    提示: 需要先對設備進行remount后才能成功推入,否則會推入失敗,同時remount后還需要重啟設備,才能生效。
  • adb root adb remountadb push /home/lxy/kernel/out/android-msm-pixel-4.9/dist/*.ko /vendor/lib/modules/

    總結

    以上是生活随笔為你收集整理的Ubuntu 16.04下载编译Android11源码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。