为nexus 5x编译android n固件
作為安卓從業人員,我們經常希望可以單步調試framework代碼,可以方便的調試第三方應用。模擬器一般來說太慢,而且模擬器和官方sdk代碼一樣對應不上。最好的辦法就是自己為nexus手機編譯userdebug固件,本文以nexus 5x為例記錄編譯實踐。
下載aosp源碼
國內用戶建議使用清華鏡像,地址為https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ ,不贅述。
如果網絡不夠好,建議使用重試腳本,如
也可以參考http://blog.csdn.net/xia0pang/article/details/20281071 根據網速來判斷。
必要時可以使用repo sync –force-broken,可以在一個project下載失敗時繼續下載下一個,而不是失敗退出。
切換分支
針對每款nexus手機的固件,aosp中都有對應的tag,我們需要將源碼切換到對應的branch或者tag才可以。
參照https://source.android.com/source/build-numbers ,nexus 5x對應的最新細分版本為N4F26T,對應的分支為android-7.1.1_r24 。也就是說我可以將aosp源碼切換到這個分支。
repo切換分支,參考http://blog.csdn.net/turui/article/details/7190676
摘抄如下
下載驅動
aosp源碼中并不包含廠商的閉源驅動,需要手動下載,地址為 https://developers.google.com/android/drivers
找到N4F26T對應的驅動,分別為
https://dl.google.com/dl/android/aosp/lge-bullhead-nmf26f-7bf6caec.tgz
和
https://dl.google.com/dl/android/aosp/qcom-bullhead-nmf26f-fa1a80d5.tgz
目前國內dl.google.com域名可以直接訪問,如果瀏覽器點擊下載鏈接遲遲沒有反應,可以復制鏈接然后使用wget下載。
下載解壓后均為.sh文件,放到aosp根目錄執行腳本即可,中間會要求輸入I ACCEPT同意協議。
編譯環境
我使用的是ubuntu 16.04,參照官網中ubuntu 14.04的要求,比如使用open-jdk8,安裝必要依賴包等。
編譯
source build/envsetup.sh lunch // 選擇aosp-bullhead-userdebug make -j4注意我們自己編譯一般選擇userdebug固件,運行速度快而且方便調試。
這里列出兩個編譯時遇到的問題
- Internal compiler error
錯誤描述如下
我的解決辦法是直接make clean然后重試
- oom問題
出錯如下
解決辦法參考http://blog.csdn.net/loongembedded/article/details/70243355 ,增加jvm堆內存上限。
具體做法為修改prebuilts/sdk/tools/jack-admin文件
各自添加-Xmx4086M
之后的編譯過程很順利,附圖
刷機
先在系統settings中打開oem鎖開關,執行adb reboot bootloader進入bl界面,然后執行fastboot flashing unlock解鎖。此時就可以開始刷機。
在源碼編譯完成后的終端執行
附刷機后圖片
總結
以上是生活随笔為你收集整理的为nexus 5x编译android n固件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 采用CAD刀具插件(飞狼刀模工具箱)的求
- 下一篇: CatiaV5R21安装