Android源碼4.4.4_r1下載和編譯


系統:ubuntu 16.04.2 TLS

1.源碼下載:

sudo apt-get install curl
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod a+x repo

mkdir srcAndroid
cd srcAndroid
git config --global user.name "xunbu7"
git config --global user.email "xunbu7@gmail.com"
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.4.4_r1
repo sync

選擇目標版本源碼,參考編譯版本標簽對照表:

https://source.android.com/source/build-numbers

2.驅動下載:

 https://developers.google.com/android/drivers

將下載下來的3個壓縮包加壓到源碼目錄,分別執行3個sh文件,輸入“I ACCEPT”。可以看到源碼目錄多了一個vendor目錄。刪除sh文件即可。

3.環境配置

3.1 jdk環境

4.4.4_r1需要jdk6環境,而標准庫不支持舊版本,所以下載方式如下:

Open the terminal and execute below commands one by one. It will install JDk as well as JRE. No need to configure anything. It will take care of everything.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

sudo apt-get install oracle-java6-installer //JDK 6 along with JRE
sudo apt-get install oracle-java7-installer //OR FOR JDK 7

有時候不知道java安裝在哪里了,通過whereis java命令不能知道java真實的安裝路徑,可以通過update-alternatives --config java命令查看

bean@ubuntu :~$ update-alternatives --config java
There is only one alternative in link group java: /usr/lib/jvm/java-7-oracle/jre/bin/java
Nothing to configure.

或者官網下載到本地后

seven@ThinkPad:~/Downloads$ chmod a+x jdk-6u45-linux-x64.bin
seven@ThinkPad:~/Downloads$ ./jdk-6u45-linux-x64.bin
移動到自定義目錄:
seven@ThinkPad:~/Documents/Android$ mv -f ~/Downloads/jdk1.6.0_45/ .
seven@ThinkPad:~/Documents/Android/jdk1.6.0_45$ pwd
/home/seven/Documents/Android/jdk1.6.0_45

修改配置文件:

seven@ThinkPad:~$ vim .bashrc
內容:
export JAVA_HOME=/home/seven/Documents/Android/jdk1.6.0_45
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

seven@ThinkPad:~$ source .bashrc
seven@ThinkPad:~$ javac -version
javac 1.6.0_45

3.2 安裝make

ubuntu16.04自帶的make版本過高,無法編譯。因此需要將make降至3.82.

下載地址ftp://ftp.gnu.org/gnu/make/

下載后到Downloads下將文件拷到其他目錄(home下即可),然后解壓

tar -zxvf make3.8.2.tar.gz

解壓后進入到make3.8.2的目錄下

./configure
make
sudo make install

執行完后在/usr/local/bin中可得到新版本的make,復制到/usr/bin中即可

seven@ThinkPad:/usr/local/bin$ sudo mv make /usr/bin

注:make過程中可能會出現錯誤,不用理會,只要make install能夠成功執行即可。

 3.3 安裝其他編譯環境

sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install lib32z-dev ccache
sudo apt-get install  unzip m4

4.編譯

echo export USE_CCACHE=1 >> ~/.bashrc
prebuilts/misc/linux-x86/ccache/ccache -M 50G source build/envsetup.sh lunch aosp_hammerhead-userdebug //虛擬機中當時必須用sudo su (切換su,root下:否則上面5兒子配置會被虛擬機配置覆蓋),后來用真實機不用也ok。 make –j8

5.刷機

源碼編譯完成后,我們開始將編譯好的系統燒錄進手機中。首先,先將我們的Nexus 5連接到電腦上,注意一定要打開USB調試,連接后手機可能會提示電腦要調試這台手機,允許即可。然后,我們令手機進入recovery模式,還是剛才的terminal(在源碼根目錄下),輸入以下命令:

seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ ./adb reboot bootloader
seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ./fastboot devices(用sudo,否則發現不了設備)
[sudo] password for seven: 
072ba3800ae5fd9c fastboot
seven@ThinkPad:~/srcAndroid/src4.4.4_r1/out/host/linux-x86/bin$ sudo ANDROID_PRODUCT_OUT=/home/seven/srcAndroid/src4.4.4_r1/out/target/product/hammerhead ./fastboot flashall -w(用sudo,否則發現不了設備)

或者也可以一個個img刷入:

0、重啟進入刷機模式
adb reboot bootloader
1、依次刷入其他鏡像文件:
fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot flash system system.img
2、強烈建議雙清(注意備份數據):
fastboot flash cache cache.img
fastboot flash userdata userdata.img
3、再次重啟:
fastboot reboot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM