Android 源碼編譯

潛水多年,一直在從別人那裏獲取經驗,如今以爲也應當分享分享了;android

今天終於本身親手編譯了一把(在公司,環境都已經配好了);git

 

-------------------------正文--------------------------------markdown

pre:oracle

系統:UBUNTU 14.0.4curl

64 位flex

Android 4.4.2ui

----url

1,源碼資源被牆了。(抗X議), 建議不要去瞎折騰了,搜索一下,國內資源;我是從 百度網盤 上下載的。(抱歉地址未保存)es5

2,JDK 須要1.6 (oracle);  也是百度資源xml

3, 解壓源碼後:

1) cd  源碼目錄

1) . build/envXXX.sh  (按tab 鍵吧, 注意 點 後的 空格)

2) make :

4,此時通常都會報錯; 根據錯誤提示處理錯誤吧;

1) 無寫權限問題:直接給 源碼目錄 遞歸 增長權限吧;

2) 而後遇到一個 aidl_langugeXXX 問題:是一個 依賴程序沒有安裝;

sudo apt-get install flex

 

一些聽說須要安裝的包:

Gnupg
build-essentail
git [預安裝,不知是否必須]
flex //[報錯.並安裝]
bison [預安裝,不知是否必須]

gperf
zip[預安裝,不知是否必須]

curl[預安裝,不知是否必須]

sudo apt-get install libc6-dev-i386
sudo apt-get install g++-multilib
sudo apt-get install lib32z1-dev
xmllint //[報錯,並安裝]
pip install markdown;//[報錯,並安裝]

sudo apt-get install lib32ncurses5-dev
sudo apt-get install xsltproc //[報錯,並安裝]

sudo apt-get install libxml2-utils //[報錯,並安裝]

 

 

5, 而後就順暢的跑完了。

 

---------------END-----------------

 

 

沒什麼技術含量。不過對於android 開發來講 , 意義仍是比較重大的。

 

 

 

 

-------------------------STEP 2--------------------------

近期準備用本身編譯的源碼 來刷機。

發現編譯後的代碼中 缺乏:mkbootimg

1)直接嘗試經過 mmm命令單獨編譯 android_source\system\core\mkbootimg\ 失敗。

提示 no rule found : for : libmincrpt 相關;

2,嘗試直接經過gcc 編譯。

嘗試將依賴文件,和 拷貝到編譯文件地址, 並修改include 位置。【失敗。 緣由: 編譯這塊比較菜】

搜索發現:

 

$ cd /path/to/android-src

$ cd system/core/libmincrypt/

$ gcc -c *.c -I../include

$ ar rcs libmincrypt.a  *.o

$ cd ../mkbootimg

$ gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a

$ gcc unpackbootimg.c -o unpackbootimg -I../include ../libmincrypt/libmincrypt.a

$ cd ../cpio

$ gcc mkbootfs.c  -o mkbootfs -I../include

 

根據上面,先將依賴 編譯成 靜態庫後, 而後再來編譯 mkboot img 。

編譯成功。  

相關文章
相關標籤/搜索