android源碼下載及編譯(使用清華鏡像下載)

源碼下載


下載時(shí)間:2018-04-28

系統(tǒng)版本:android-6.0.1_r63

大谢礁浴:107G左右


環(huán)境要求

OS ubuntu16.04
安裝repo
安裝curl
安裝git
上面的工具環(huán)境如果沒(méi)有介劫,可以自己使用apt-get命令去安裝洁桌,方法也很簡(jiǎn)單,不在此處贅述。

準(zhǔn)備工作

1.安裝jdk,這個(gè)是jdk1.8,我下載版本編譯需要jdk1.7

sudo apt-get update
sudo apt-get install openjdk-8-jdk

2.安裝必要讀組建包

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

1.下載 repo 工具

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

2.建立工作目錄

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY

3.初始化倉(cāng)庫(kù)

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest

注:如果提示無(wú)法連接到 gerrit.googlesource.com佩谣,請(qǐng)參照以下方法

下載

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo

為了方便可以將其拷貝到你的PATH里凡怎。

更新
repo的運(yùn)行過(guò)程中會(huì)嘗試訪問(wèn)官方的git源更新自己,如果想使用tuna的鏡像源進(jìn)行更新宫蛆,可以將如下內(nèi)容復(fù)制到你的~/.bashrc里

cd ~/.bashrc
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

并重啟終端模擬器艘包。


4.如果需要某個(gè)特定的 Android 版本(列表):

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-6.0.1_r63

5.同步源碼樹(shù)(以后只需執(zhí)行這條命令來(lái)同步)

repo sync

下載常見(jiàn)問(wèn)題

1.下載命令結(jié)束,提示error耀盗,只需要重復(fù)執(zhí)行repo sync 即可想虎。


編譯源碼

1.清理

make clobber

2.設(shè)置環(huán)境

source build/envsetup.sh

或者

. build/envsetup.sh

3.選擇一個(gè)目標(biāo)

lunch aosp_arm-eng

4.構(gòu)建代碼

make -j4

5.##模擬 Android 設(shè)備
編譯流程會(huì)自動(dòng)將模擬器添加到您的路徑中。要運(yùn)行模擬器叛拷,請(qǐng)輸入以下命令:

emulator

6.重新生成img

make snod

編譯常見(jiàn)問(wèn)題


1.You are attempting to build with the incorrect version

of java.

Your version is: openjdk version "1.8.0_162" OpenJDK Runtime Environment (build 1.8.0_162-8u162-b12-0ubuntu0.16.04.2-b12) OpenJDK 64-Bit Server VM (build 25.162-b12, mixed mode).
The required version is: "1.7.x"

Please follow the machine setup instructions at
https://source.android.com/source/initializing.html

解決方法1

執(zhí)行

export EXPERIMENTAL_USE_JAVA8=true
解決方法2

由于編譯android源碼需要openjdk1.7.X版本舌厨。ubuntu 16.04自帶openjdk為1.8.X版本。
sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk
如果出現(xiàn)
--------沒(méi)有可用的軟件包 openjdk-7-jdk忿薇,但是它被其它的軟件包引用了裙椭。
這可能意味著這個(gè)缺失的軟件包可能已被廢棄, 或者只能在其他發(fā)布源中找到
E: 軟件包 openjdk-7-jdk 沒(méi)有可安裝候選
可以按照一下操作安裝1.7.X版本

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk 

如果安裝成功之后還是不能用可能不有多個(gè)版本煌恢,選的不對(duì)

sudo update-alternatives --config java
sudo update-alternatives --config javac

選出正確的版本

2.recipe for target 'out/host/linux-x86/obj/lib/libart.so' failed

trip: libpagemap_32 (out/target/product/xx/obj_arm/lib/libpagemap.so)
target Strip: librilutils_32 (out/target/product/xx/obj_arm/lib/librilutils.so)
target Strip: libtinyxml_32 (out/target/product/xx/obj_arm/lib/libtinyxml.so)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
drivers/soc/qcom/Kconfig:310:warning: choice value used outside its choice group
drivers/soc/qcom/Kconfig:315:warning: choice value used outside its choice group

configuration written to .config

make[2]: Leaving directory '/home/xx/xx/6.0/android/xx/out/target/product/xx/obj/KERNEL_OBJ'
make[1]: Leaving directory '/home/xx/xx/6.0/android/xx/kernel'
make[1]: Entering directory '/home/xx/xx/6.0/android/xx/kernel'
make[2]: Entering directory '/home/xx/xx/6.0/android/xx/out/target/product/xx/obj/KERNEL_OBJ'
build/core/host_shared_library_internal.mk:51: recipe for target 'out/host/linux-x86/obj/lib/libart.so' failed
make: *** [out/host/linux-x86/obj/lib/libart.so] Error 1
make: *** 正在等待未完成的任務(wù)....

clang編譯器導(dǎo)致的問(wèn)題骇陈,目前可行的修改方法時(shí)在art/build/Android.common_build.mk ,中將host 默認(rèn)編輯器使用clang關(guān)掉,找到WITHOUT_HOST_CLANG

關(guān)閉clang即可

ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
  # By default, host builds use clang for better warnings.

  ART_HOST_CLANG := false
endif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瑰抵,一起剝皮案震驚了整個(gè)濱河市你雌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌二汛,老刑警劉巖婿崭,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肴颊,居然都是意外死亡氓栈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)婿着,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)授瘦,“玉大人,你說(shuō)我怎么就攤上這事竟宋√嵬辏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵丘侠,是天一觀的道長(zhǎng)徒欣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蜗字,這世上最難降的妖魔是什么打肝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任脂新,我火速辦了婚禮,結(jié)果婚禮上粗梭,老公的妹妹穿的比我還像新娘争便。我一直安慰自己,他們只是感情好楼吃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布始花。 她就那樣靜靜地躺著,像睡著了一般孩锡。 火紅的嫁衣襯著肌膚如雪酷宵。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天躬窜,我揣著相機(jī)與錄音浇垦,去河邊找鬼。 笑死荣挨,一個(gè)胖子當(dāng)著我的面吹牛男韧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播默垄,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼此虑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了口锭?” 一聲冷哼從身側(cè)響起朦前,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹃操,沒(méi)想到半個(gè)月后韭寸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荆隘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年恩伺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椰拒。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晶渠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出燃观,到底是詐尸還是另有隱情乱陡,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布仪壮,位于F島的核電站,受9級(jí)特大地震影響胳徽,放射性物質(zhì)發(fā)生泄漏积锅。R本人自食惡果不足惜爽彤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缚陷。 院中可真熱鬧适篙,春花似錦、人聲如沸箫爷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)虎锚。三九已至硫痰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窜护,已是汗流浹背效斑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柱徙,地道東北人缓屠。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像护侮,于是被迫代替她去往敵國(guó)和親敌完。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容