安裝Ubuntu
- 不好意思,自行百度.- 反正最好分個 180G虫碉,然后內(nèi)存起碼 4G
配置環(huán)境 下載源碼
- 一般默認(rèn) python 版本是 2.x的,所以3.x是會報錯
- Android6的話 ,直接安裝openjdk7
- 其他的話癣诱,查看下下面的編譯環(huán)境配置和編譯要求。
- 先終端輸入 java -version
- 有的話袜香,它會告訴你是哪個版本
- 沒有的話撕予,它會提示你安裝指令,照抄唄
- sudo apt-get install openjdk-7-jdk
- 配置一下 JAVA_HOME
- echo $JAVA_HOME
- 沒有輸出的話 - 設(shè)置唄
- echo export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/">> ~/.bashrc
- 重啟一下終端設(shè)置
- source ~/.bashrc
- 輸入$JAVA_HOME 看下是不是有輸出
- 先終端輸入 java -version
- git
- sudo apt-get install git
- git config --global user.name "Github的名字"
- git config --global user.email "Github的Email"
-
首先下載 repo 工具
mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 如果上述 URL 不可訪問蜈首,可以用下面的: curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo chmod a+x ~/bin/repo
-
然后建立一個工作目錄(名字任意)
mkdir WORKING_DIRECTORY cd WORKING_DIRECTORY
-
初始化倉庫
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest 如果提示無法連接到 gerrit.googlesource.com实抡,可以編輯 ~/bin/repo,把 REPO_URL 一行替換成下面的: REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
-
如果需要某個特定的 Android 版本 (Android 版本列表):
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1(比如4.0)
-
同步源碼樹(以后只需執(zhí)行這條命令來同步):
repo sync
-
看 初始化同步方法2
- 注意,因為是要編譯指定的源碼,所以記得加上Android版本分支
- Android版本分支
-
版本分支很重要,別忘了!!!
- 實在不行,你就把源碼目錄寫成分支名字欢策,因為你要根據(jù)這個 分支名字 獲取 細(xì)分版本號
- 根據(jù) 細(xì)分版本號 才能下載到對應(yīng)的驅(qū)動文件
啥?不想,那當(dāng)我沒說過!
這時候吆寨,聰明可愛的你肯定已經(jīng)在開始同步了。
-
下載驅(qū)動2瓤堋W那濉! 沒有這個你是沒法開機(jī)的俺孙,會一直在 Google 這個logo無法開機(jī)辣卒。
-
找到你 對應(yīng)的手機(jī)機(jī)型,根據(jù)上面的 細(xì)分版本號 下載驅(qū)動 - 兩個或者三個鼠冕,都下載下來添寺。
編譯
這時候你已經(jīng)下載完了把,把剛剛下載的驅(qū)動解壓到源碼目錄下懈费。
-
會是多個.sh文件 像這樣:
- extract-lge-hammerhead.sh
- extract-broadcom-hammerhead.sh
- extract-qcom-hammerhead.sh
源碼目錄下執(zhí)行 .sh 文件计露。
-
像這樣 ./extract-lge-hammerhead.sh
- 然后就出現(xiàn)一堆英文,不要管它憎乙。直接 按Enter一路向下票罐,直到你看到第8條,然后注意 繼續(xù)Enter泞边,最后會有一個什么什么的该押,需要你輸入 I ACCEPT,一定要全部大寫阵谚,不然再執(zhí)行一邊唄蚕礼。
三個都要這樣操作 - 這時候烟具,源碼路徑下就會有一個 vendor 的文件夾- 然后開始編譯了 ,假設(shè)你環(huán)境配置正確奠蹬。沒配置正確朝聋?那就慢慢編譯唄,再挨個看報錯修改東西唄囤躁。
-
- 這里會告訴你哪個Android版本需要哪個jdk版本 - 在Ubuntu 14.04 64位的基礎(chǔ)上冀痕,編譯4.4和6.0實際上只是一個使用jdk6一個使用openjdk7的區(qū)別。起碼在我自己編譯的時候是這樣子
- 還有就是如果開始編譯6.0 使用的 apt-get install openjdk7狸演,后面你又打算編譯4.4言蛇。那么在你安裝jdk1.6.0_xxx.bin的時候,記得apt-get remove openjdk-7-jre 什么的宵距,有三個反正不知道啥你就 tab 鍵腊尚,否則 jdk-version 一直是1.7,就算你修改了 /erc/profile 還是 ~/.bashrc 官方說是Android7-8使用openjdk8消玄,5-6使用openjdk7,2.3-4.4使用jdk6 - 編譯前配置
- 在 .bashrc文件中添加:export USE_CCACHE = 1 - echo export USE_CCACE=1 >> ~/.bashrc
- 為了提高編譯效率跟伏,設(shè)置編譯器高速緩存。
- 執(zhí)行以下命令:
- prebuilts/misc/linux-x86/ccache/ccache -M 30G
- 這個 30G 根據(jù)自己的硬盤空間大小繼續(xù)調(diào)整
-
開始編譯
源碼路徑下
source . build/envsetup.sh
-
lunch
- 比如我是Nexus5翩瓜,所以選擇 19
-
aosp_hammerhead_userdebug
user 用于正式產(chǎn)品
userdebug 和user類似受扳,但是有root權(quán)限,并且可以調(diào)試兔跌,主要用于調(diào)試
eng 開發(fā)用的選項勘高,配有額外的調(diào)試工具。
如果編譯后只在模擬器上運行坟桅,則lunch后可以就直接輸入:1
最后华望,make -j4 或者 make -j8 或者 make -j16,看你配置了。
我是兩三個小時直接編譯成功仅乓,看配置和人品吧赖舟,啊哈哈哈哈。
刷機(jī)
- sudo adb reboot bootloader
- 這個時候可能adb devices 你會發(fā)現(xiàn)找不到設(shè)備
- 如果是虛擬機(jī)的話夸楣,點開上面那個 虛擬機(jī) 選項宾抓,可移動設(shè)備
- 然后 連接
- 可以執(zhí)行下解鎖命令
- fastboot oem unlock
- fastboot -w flashall
- 然后就會自動重啟,開機(jī)豫喧。
刷機(jī)失敗
-
失斒础?