實驗環境是ubuntu14.04。採用手機nexus 5,編譯安卓6.0.1原始碼並燒錄安卓。
原始碼編譯沒有一蹴而就,建議使用一台linux機器開啟ssh後,通過遠端的方式利用閒暇時間編譯並檢視結果。
主要步驟按照官方文件走。
首先,搭建要編譯的環境,裝相應的jdk以及一些軟體。需要注意的一點是,最好使用aptitude而不是apt-get,因為aptitude命令會幫你解決不少軟體互相依賴的問題。
本人採用的open jdk編譯成功。
然後執行以下make clobber,清除無用的編譯。
我採用的機器是8核8g,因為android 6以後採用jack編譯原始碼成dex檔案,同時測試過程中,會出現jack-admin out of memory的問題,所以執行以下:
export jack_server_vm_arguments=」-dfile.encoding=utf-8 -xx:+tieredcompilation -xmx4g」然後,執行lunch命令,選擇你要編譯的手機的版本,我這裡nexus 5選擇hammerhead。設定vm的記憶體為4g。
之後,因為本人採用的遠端連線編譯,執行 nohup make -j8進行編譯。然後ctrl z,並bg 1將任務放在後台,每次通過less檢視nohup.out並按住g來看編譯結果即可。
當然,不想給任務放在後台或者沒有使用遠端的方法,直接make -j8即可。
編譯結果如下:
可以看到img檔案生成在out/target/product/hammerhead下。
執行make fastboot adb編譯fastboot和adb,連上手機,開啟除錯模式信任電腦,執行:adb reboot bootloader,然後fastboot oem unlock解開bootloader的鎖,這裡注意看手機上的說明,選擇確定。
然後執行 export android_product_out=img目錄,編譯最終結果上面有寫出,我這裡是out/target/product/hammerhead。
最後進入aosp/out/host/linux-x86/bin目錄下找到fastboot執行檔案,
執行:./fastboot -w flashall
然後,等待即可。
安卓原始碼閱讀 原始碼編譯
mkdir bin path bin path curl bin repo chmod a x bin repowget tsinghua edu cn aosp monthly aosp latest.tar tar xf aosp latest.tar cd aosp 解壓得到的 aosp 工程...
安卓編譯mysql MySQL 原始碼編譯
1.自己記下筆記,每次翻官網,時間有些長了,給自己以後安裝省事mysql 5.1.45 configure prefix usr local mysql5 without debug without bench without docs without geometry without ndb de...
安卓原始碼中編譯c檔案並放入平台執行
在安卓原始碼developmen資料夾中建立mytest資料夾 建立android.mk檔案 local path call my dir include clear vars local module mytest local src files mytest.c local module tag...