Android源碼編譯需要Linux環境,我這裡用的是Ubuntu 14.04,雖然Ubuntu 16.04出來很久了。但是16.04有些依賴沒解決得了,所以用14.04版本方便很多。下面將用Ubuntu 14.04環境為大家講述源碼的下載、編譯和刷機。
安裝curl
sudo apt-get install curl //install curl tool
安裝curl
sudo curl http://commondatastorage.googleapis.com/git-repo-downloads/repo //download repo
如果你用這個下載安裝不了,你可以直接sudo apt-get install repo
,按照上面的提示安裝即可。
安裝Git
sudo apt-get install git
git配置
sudo git config --global user.email "[email protected]"
sudo git config --global user.name "Your Name"
這個配置是否真實性對於下載源碼影響不大,你也可以直接填寫[email protected]和Your Name這樣的字樣下載源碼。
下載源碼之前先建好一個文件夾,然後用命令進入該文件夾,最後才建倉下載。這樣的做的好處就是沒那麼混亂。
repo init -u git://codeaurora.org/platform/manifest.git -b release -m LA.BR.1.2.3-10210-8x09.0.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable
repo sync
我這裡下載的是高通安卓源碼,
下載地址見:https://wiki.codeaurora.org/xwiki/bin/QAEP/release
上面的LA.BR.1.2.3-10210-8x09.0.xml對應的是Android5.1.1版本。你也可以選擇你要下載的版本。
另外你也可以從谷歌和清華下載源下載。
谷歌源碼下載:https://source.android.com/source/downloading.html#initializing-a-repo-client
清華下載源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
一個系統的源碼大概是40多GB,編譯也要部分的空間,你的磁盤注意要留有足夠的空間。
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
安裝openjdk7
sudo apt-get install openjdk-7-jdk
在命令行裡進入該源碼的目錄裡。
source build/envsetup.sh
lunch
它會顯示可選編譯cpu架構,然後選擇對應的cpu結構,一般選0,你也可以根據你需要來選。
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. mini_emulator_mips-userdebug
8. mini_emulator_x86_64-userdebug
9. m_e_arm-userdebug
10. mini_emulator_arm64-userdebug
11. mini_emulator_x86-userdebug
.......
aosp_arm64-eng
- arm CPU架構。
- 64代表64位系統
- eng代表engineer版本
- user正式版,權限受限制
- userdebug版本,在user版本的基礎上開放了root權限和debug的權限。
最後開始編譯
make -jn (“n” means the thread numbers of CPU)
這裡的n表示線程數,一般是cpu數目的兩倍。比如說make -j8
。
編譯好的文件在work/LINUX/Android/out/target/product/xxx/裡面,
這裡的目錄根據因你的項目目錄不同而不同。一般來說,emmc_appsboot.mbn、boot.img、userdata.img、system.img、recovery.img是你最終需要的產物。
部分編譯一般用於修改代碼後在原來已經有編譯好的資源下進行差異化編譯。這樣的編譯速度快很多。
預備
source build/envsetup.sh
lunch
這裡的命令意義同上。差別在最後一步。下面每一步執行前請先執行source build/envsetup.sh
和lunch
。
1)編譯about(生成emmc_appsboot.mbn)
make aboot -jn(“n” means the thread numbers of CPU)
目標文件夾work/LINUX/android/out/target/product/xxx/
這裡根據因你的項目目錄不同而不同,如果你的命令執行不了,可能是你輸入的命令字符格式不對,”-jn”需要是英文格式的
2)編譯內核(生成boot.img)
make bootimage -jn
目標目錄work/LINUX/android/out/target/product/xxx/,下面幾個目錄都是在這個目錄下,就不一一重復了。
3)編譯system(生成system.img)
make systemimage –jn
4)編譯userdata(生成userdata.img)
make userdataimage –jn
5)編譯recovery(生成recovery.img)
make recoveryimage –jn
這裡我假定你配置好adb環境,如果沒有請先下載Android SDK搭建環境。然後連上機子在電腦上讓電腦識別,在命令行裡輸入下面命令進行燒寫。
1)燒寫emmc_appsboot.mbn
adb reboot bootloader
fastboot flash aboot <path to emmc_appsboot.mbn >
fastboot reboot
path to emmc_appsboot.mbn 是你的emmc_appsboot.mbn目錄路徑,下同。
2)燒寫boot.img
adb reboot bootloader
fastboot flash boot <path to boot.img>
fastboot reboot
3)燒寫system.img
adb reboot bootloader
fastboot flash system to system.img>
fastboot reboot
4)燒寫userdata.img
adb reboot bootloader
fastboot flash userdata <path to userdata.img>
fastboot reboot
5) 燒寫 recovery.img:
adb reboot bootloader
fastboot flash recovery <path to recovery.img>
fastboot reboot
相關鏈接:
谷歌下載源:https://source.android.com/source/downloading.html#initializing-a-repo-client
清華下載源:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11
1、先訪問JBoss Tools網站,看看上面怎麼說; http://tools.jboss.org
Ubuntu 11.04 下 Firestarter 無法啟動解決辦法
Linux中netstat命令介紹及操作
從硬盤安裝Oracle Linux 6.3之軟驅故障
Linux rpm命令詳解
CentOS編譯安裝transmission[命令行BT客戶端]
Ubuntu AMD64 中解決 *ERROR* Raw EDID
在Linux下開啟背光Led鍵盤的背光
Ubuntu下輕松使用光盤刻錄工具[附圖]
Windows 下基於 Eclipse 的可視化遠程 Linux C/C++ 開發環境搭建
Linux下 squid 手動清除緩存
Linux命令之nslookup(一)
如何在CentOS 5.5上安裝Kippo蜜罐
grep 命令系列:使用 grep 命令來搜索多個單詞
Linux運行等級,根目錄,文件類型等基本概念
Nautilus Gksu 插件:在右鍵菜單中增加“以管理員身份打開”
Gentoo內核編譯選項說明
Ubuntu下使用Blender 3D圖形專業設計工具
Fedora 19配置KVM虛擬機的橋接網絡