安卓源碼(含內核)下載及編譯

源碼下載

  1. 下載java sdk、
  2. 下載repo工具,ubuntu可以使用 curl https://storage.googleapis.com/git-repo-downloads/repo > repo ,然後提升權限chmod a+x repo  必要時替換repo裏的下載源:REPO_URL替換爲https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/
  3. 初始化manifest:repo init – u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest –b branchname
  4. 下載源碼(同步源碼樹)repo sync –j4 可能會報錯或者下載不完整,只需多次執行該命令即可

編譯源碼:

  1. 設置環境變量:source build/envsetup.sh
  2. 選擇一個平臺編譯:lunch aosp_arm-eng
  3. 構建代碼:make –j4

 

Emulator啓動和燒錄進手機編譯時要使用lunch選擇不同平臺

燒進一個真實設備:

  1. adb reboot bootloader 然後先fastboot devices 看是否成功進入fastboot可能出現錯誤:no permission fastboot 這是因爲ubuntu上fastboot沒有root權限,chmod提權或者sudo
  2. export ANDROID_PRODUCT_OUT=img目錄,該目錄在編譯後的信息會顯示,例如:…/out/tartget/product/angler
  3. fastboot flashall –w

燒錄後常見錯誤:

1.adb devices 顯示問號以及 nopermission    解決方法:

見https://blog.csdn.net/u011249920/article/details/50274791

使用模擬器:運行emulator命令,下次啓動仍需要使用source和lunch命令

 

下載安卓內核源碼:

兩種方式:

1.下載repo工具,然後repo init –u https://aosp.tuna.tsinghua.edu.cn/kernel/manifest -b branchname   然後repo sync -j4   (Repo似乎不能查看分支列表 ) branchname是你想要下載的內核版本對應分支名

2. git clone http://android.googlesource.com/kernel/goldfish.git 

進入goldfish 目錄:查看有哪些支線代碼git branch-a                                                   

Git checkout指定所需要的支線代碼:git checkout remote/origin/android-goldfish-2.6.29

 

內核版本需要與安卓版本相對應,詳見https://android.stackexchange.com/questions/51651/which-android-runs-which-linux-kernel

這裏我用的是3.18.10版本

6.0   Marshmallow  |23         |3.18.10

 

編譯內核源碼:

1.修改Makefile文件

Export KBUILD__BUILDHOST := $(SUBARCH)

ARCH  ?= $(SUBARCH)

CROSS_COMPILE  ?=

  後兩行改爲?=arm 和 ?=arm-eabi-

2.將工具所在目錄添加到環境變量PATH。Android源碼目錄下有一個交叉編譯工具

Export CLASS_PATH= ……/arm-eabi-xx/in

Make goldfish_deconfig。(Adbshell /proc/cpuinfo查看CPU架構,若是v5則使用goldfish_deconfig,若是armv7則使用goldfish_armv7_deconfig )

3.執行make指令

 

若不成功按以下網址做

http://eternalsakura13.com/2018/03/03/kernel_android/

 

 

Ps:修改或增加某個模塊不需要使用make,可以使用mmm命令

之後使用 make snod對鏡像文件重新打包

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章