歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 基於Ubuntu 14.04 LTS編譯Android4.4.2源代碼

基於Ubuntu 14.04 LTS編譯Android4.4.2源代碼

日期:2017/2/28 14:23:13   编辑:Linux教程

環境准備:
基本環境:Ubuntu-14.04-desktop-64bit LTS(裸機或者Windows下虛擬機安裝均可,12.04也可以,但10.04目前不支持了)
其他要求:空閒磁盤空間100G以上,代碼部分接近10G,其他為git和編譯中間和目標文件准備

==========================================
第一部分:環境初始化
==========================================
1. 安裝Oracle JDK
注意:如果編譯Android4.4不能用OpenJDK,必須用Oracle JDK1.6,1.7目前是不支持的。
具體如何安裝Oracle JDK,請參見我的另一篇單獨的文章,[Ubuntu Linux下安裝Oracle JDK] http://www.linuxidc.com/Linux/2015-01/112627.htm
2. 安裝必備工具軟件
注意:這裡與官方的有個包不同,官方的包會報錯.

$sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

3. 配置USB訪問權限
將如下內容加入到/etc/udev/rules.d/51-android.rules文件中

# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"

然後執行如下命令,將上述文件中的username替換為你的用戶名

4. 配置ccache
安裝ccache並將export USE_CCACHE=1加入到~/.bashrc中。

$sudo apt-get install ccache
$source ~/.bashrc

==========================================
第二部分:源代碼下載
==========================================
1. 安裝repo
(1) 創建目錄

$ mkdir ~/bin
$ PATH=~/bin:$PATH

(2) 下載repo工具
注:由於防火牆的原因,官方提供的鏈接無法使用,需替換為如下:
官方的為curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
可用的:

curl http://git-repo.googlecode.com/files/repo-1.12 > ~/bin/repo

(3) 增加可執行權限

$ chmod a+x ~/bin/repo

2. 初始化Repo客戶端
(1)創建目錄

$mkdir aosp
$cd aosp

(2) 初始化repo
注:後面可能出現網絡錯誤,請先將如下內容加入到/etc/hosts中然後做後面的步驟。

74.125.71.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com

至於為什麼要出現網絡錯誤,你懂的!

$repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2

注意:如果是在虛擬機中執行,需要采用email驗證的方式,詳細參見參考資料[2].
設置git的用戶名和郵件地址,將您的真實email地址和name替換了:

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

修改aosp/.resp/manifest.xml,將fetch=".."改為:
fetch="https://android.googlesource.com/"

3. 下載源代碼

$repo sync

注意:系統可能會提示你升級repo,最好不要升級,除非你有十足信息解決升級後的一系列問題。

好了,慢慢等吧,短則數小時,長則幾天幾夜!我花了5個小時

--------------------------------------分割線 --------------------------------------

Android 4.4.4 發布下載 http://www.linuxidc.com/Linux/2014-06/103467.htm

最簡單的Ubuntu Touch & Android 雙系統安裝方式 http://www.linuxidc.com/Linux/2014-01/94881.htm

在Nexus上實現Ubuntu和Android 4.4.2 雙啟動 http://www.linuxidc.com/Linux/2014-05/101849.htm

Ubuntu 14.04 配置 Android SDK 開發環境 http://www.linuxidc.com/Linux/2014-05/101039.htm

64位Ubuntu 11.10下Android開發環境的搭建(JDK+Eclipse+ADT+Android SDK詳細) http://www.linuxidc.com/Linux/2013-06/85303.htm

Ubuntu 14.04 x64配置Android 4.4 kitkat編譯環境的方法 http://www.linuxidc.com/Linux/2014-04/101148.htm

Ubuntu 12.10 x64 安裝 Android SDK http://www.linuxidc.com/Linux/2013-03/82005.htm

--------------------------------------分割線 --------------------------------------

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-01/112628p2.htm

Copyright © Linux教程網 All Rights Reserved