源碼下載
- 下載java sdk、
- 下載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/
- 初始化manifest:repo init – u https://aosp.tuna.tsinghua.edu.cn/android/platform/manifest –b branchname
- 下載源碼(同步源碼樹)repo sync –j4 可能會報錯或者下載不完整,只需多次執行該命令即可
編譯源碼:
- 設置環境變量:source build/envsetup.sh
- 選擇一個平臺編譯:lunch aosp_arm-eng
- 構建代碼:make –j4
Emulator啓動和燒錄進手機編譯時要使用lunch選擇不同平臺
燒進一個真實設備:
- adb reboot bootloader 然後先fastboot devices 看是否成功進入fastboot可能出現錯誤:no permission fastboot 這是因爲ubuntu上fastboot沒有root權限,chmod提權或者sudo
- export ANDROID_PRODUCT_OUT=img目錄,該目錄在編譯後的信息會顯示,例如:…/out/tartget/product/angler
- 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對鏡像文件重新打包