DIY:從源代碼編譯的Andr​​oid ROM

快速,簡單的10步指南編譯Android設備AOSP ROM,從您的機器設置,以個性化您的ROM。

A+ A-

Android是使用最廣泛的手機操作系統在世界上。 而最好的部分,它是完全開源的,這在外行而言,意味著源代碼,實際的程序可公開供大家下載,定制和打造自己的光盤。

編譯的Andr​​oid ROM

有許多可供定制的Andr​​oid分佈在那裡,與流行的是CyanogenMod的,SlimROM,偏執的Andr​​oid,AOKP,液體平穩,MIUI,Xylon公司,冰冷果凍等。

對於今天的指南中,我們將編譯的CyanogenMod 10.2,最流行的Andr​​oid ROM售後。 該程序是在那裡所有的自定義光盤99%相同,因此本指南可以作為一個參考編譯其他的ROM了。

先決條件

  1. Android手機使用現成的內核和設備源代碼,已經紮根並安裝自定義恢復。
  2. 64位Linux發行版(我們更喜歡Ubuntu的)。
  3. 至少100GB的免費的硬盤上。
  4. Linux終端命令的知識。
  5. 相當快的互聯網連接。

注意點:64位Linux操作系統是必須的,而且它必須是本機安裝,而不是一個虛擬機。

設置您的構建機器

1.安裝Linux操作系統您選擇的64位版本,根據官方說 ​​明。 (該指南將假設我們正在運行Ubuntu 13.04)。 保持與16GB的交換分區至少100GB的分區。

2.安裝包的下面的列表:打開終端應用程序,並輸入“sudo易於得到安裝 “,按回車鍵,它會提示你輸入密碼。

軟件包列表

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3.安裝Java JDK 1.6的Linux 64位:文件名 ​​應該是JDK-6U ## - Linux的x64.bin,##是版本號。 將下載的文件包到你的home目錄。 打開終端應用程序並運行以下命令集:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo mkdir –p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su –
cd /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit

現在,我們必須添加JDK路徑的.bashrc

sudo gedit ~/.bashrc

添加這些行文本文件的結尾

# Java Path
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

4.安裝Android SDK中:打開終端應用

cd ~
mkdir android && cd android
mkdir sdk

從下載Android SDK中http://developer.android.com/sdk/index.html 。 解壓到〜/安卓/ SDK軟件包的內容我們還必須增加Android SDK中路徑的.bashrc

sudo gedit ~/.bashrc

這些行添加到文本文件的結尾:

# Android SDK Path
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

現在,通過鍵入安裝Android SDK工具

android

5.設置您的GitHub賬號和遠程回購:如果支持的CyanogenMod手機正式您可以跳過此步驟。 去github.com,並作出一個帳戶為自己。 對於本指南中,我正在考慮您的用戶名是“用戶”。

訪問“github.com/CyanogenMod/android”,按叉。 遠程清單將分叉,並在您的個人回購可用。

現在,去'github.com/user/android“。 打開文件default.xml中,按編輯。 找到這一行:

<project path="android" name="CyanogenMod/android" />

而代之以這

<project path="android" name="user/android" />

我正在考慮為Android 4.3設備的內核源代碼,源設備和供應商庫是在

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

我假設分支被命名為“jb4.3”。 您可以在實際回購的確切名稱。 然後,在文件的結尾,添加這些線,可根據您的設備的源代碼修改它們。

<project path="kernel/your_company/your_device" name="user2/kernel_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device" name="user2/device_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device-common" name="user2/device-common_source" remote="github" revision="jb4.3" />
<project path="vendor/your_company" name="user2/vendor" remote="github" revision="jb4.3" />

提交更改。 您的遠程清單是準備部署。

6.安裝回購命令:打開終端和類型

cd ~
mkdir ~/bin
curl  > ~/bin/repo
chmod a+x ~/bin/repo

我們必須添加回購路徑的.bashrc

sudo gedit ~/.bashrc

該行添加到文本文件的末尾

export PATH=$PATH:~/bin

7.取ROM的源代碼:打開終端和類型

mkdir ~/android/cm
cd ~/android/cm

如果您需要第5步,然後鍵入

repo init –u git://github.com/user/android.git –b cm-10.2

如果您的設備支持的CyanogenMod 10.2正式,然後鍵入

repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2

現在運行

repo sync –j16

去喝杯咖啡,或一餐,它會需要很長的時間。 源代碼是遠遠超過10GB的大小,因此將需要相當一段時間。

取源

8.設置設備具體的東西:如果您的設備支持的CyanogenMod 10.2正式,然後打開終端和類型

cd ~/android/cm
. build/envsetup.sh && breakfast <device_codename>

這將需要一些時間,設備來源是3GB左右大小。 然後,您需要在您的手機上安裝官方CM10.2,它的USB調試模式連接到電腦上,然後運行以下命令:

adb root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

如果您的設備不支持的CyanogenMod 10.2正式,那麼你什麼都沒有在這個步驟做,該消息人士已經在等著你。

9.下載預建的東西,並建立工具鏈:打開終端和類型

cd ~/android/cm/vendor/cm
sh ./get-prebuilts

現在,我們必須添加工具鏈的PATH ./bashrc

cd ~/android/cm
sudo gedit ~/.bashrc

這些行添加到文本文件的末尾

# Android Toolchain
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

10.建立你的ROM:那麼,一切都很好,並準備。 它的時間來建立的ROM。 打開終端和類型

cd ~/android/cm
. build/envsetup.sh
brunch <device_codename>

走的時候打個盹。 這將需要千萬年建立一個普通電腦上的ROM。 嗯,這很誇張,但我的家用電腦(酷睿i5第二代與8GB RAM)上,它需要在3小時內從頭構建。 但願,不會有錯誤,構建將完成罰款。 您將獲得在輸出包

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

現在是時候到您的手機上安裝的新編譯ROM。 從“www.goo.im/gapps”為適當的Andr​​oid版本下載谷歌企業應用套件包。 把你的手機這兩個包,並且在恢復模式閃爍其中。 瞧,你自己編譯ROM現在運行您的設備。

好了,讓你學會如何編譯ROM。 所以,現在怎麼辦?

更新源碼ROM

獲取新的源代碼更新到你的本地下載的源代碼,打開終端和類型

cd ~/android/cm
repo sync –j16

要建立你的ROM,更新的源代碼,開放終端和類型後

cd ~/android/cm
make installclean
find ./out/ -name ‘build.prop’ | xargsrm
find ./out/ -name ‘cm_<your_device>-target_files-eng.*.zip’ | xargsrm
. build/envsetup.sh
brunch <your_device>

既然你是不是重新從頭開始構建,但重樓,因為它是,它會採取顯著時間少,大約只有15-30分鐘,在大多數情況下。 你應該每隔一周左右同步本地源,讓您的本地源的新鮮。

清潔你的工作目錄

要徹底清潔你的工作目錄(讀:返回你的源文件夾庫存狀態),打開終端,然後鍵入以下命令。

cd ~/android/cm
make installclean
make clobber

請記住,那運行這些命令後,所有的輸出數據將被刪除,所以未來建設將再次3-4小時服用,因為一切都從頭開始重新修建。 如果你的硬盤分區是小,說身邊100GB,你應該清理工作目錄,大約每隔4生成,要不,你會耗盡硬盤空間。

加快構建以CCACHE

構建ROM佔用了大量的時間。 但是,時間約30-45%使用CCACHE被砍倒。 CCACHE代表編譯器緩存,它緩存編譯輸出從早期版本,以便它可以被重新使用在以後的構建。

需要注意的是CCACHE需要大量的硬盤空間用於緩存的內容,因此它建議當且僅當你的硬盤分區是200GB或更高的地方附近。 要設置CCACHE,打開終端和類型:

cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G

您可以更改的最大大小分配從任何你想要50GB到CCACHE,但應該用於好成績最低的30GB左右。

從其他ROM的讀取承諾

可以從其他ROM的源代碼,摘櫻桃的特點。 比方說,我要挑特點A,從資料庫“github.com/user/reporepo”提交ID“12345”。

您導航到包在您的本地源代碼,並在終端上運行這些。

cd ~/<path_to_reporepo_packages>
git fetch 
git cherry-pick 12345

著名的Andr​​oid定制ROM分佈的源代碼鏈接

的CyanogenMod - https://github.com/CyanogenMod
SlimROM - https://github.com/SlimRoms
ParanoidAndroid - https://github.com/ParanoidAndroid
AOKP - https://github.com/AOKP
LiquidSmooth - https://github.com/liquidsmooth
Xylon公司ROM -
冰冷的果凍 - https://github.com/IceColdJelly

所以,你去那裡的傢伙,一個簡單,直接指導編譯幾乎在10個簡單的步驟,任何Android AOSP基於ROM。 雖然我的指南關注的CyanogenMod,你可以編譯幾乎每一個AOSP ROM在那裡,只需修改存儲庫的鏈接。 或者,你可以隨便挑的特點,他們承諾,修改的東西,並創建自己的個性化的ROM,也許在網上分享你的ROM嗎?

Ads

分享

最近

注意你的業務:2017年我們首要的本地搜索欄

當地SEO從業者在數字營銷組合中發揮越來越重要的作用,與本地意圖的搜索繼續以快速的步伐增長 - 尤其是在移動設備上。 ...

使用AdWords API出口到第三方廣告網絡會保持OK作為谷歌仍保留在FTC和解方面採取

雖然谷歌的反壟斷和解與聯邦貿易委員會說讓他們允許部分通過其API的AdWords數據的出口將於明天到期,馬修Suche...

SearchCap:聖誕老人追踪器,谷歌API條款和SEO指標

下面是今天的搜索發生的事情,對搜索引擎土地和在網絡上其他地方的報導。 從搜索引擎土地: 使用AdWords API...

瑪琳·黛德麗谷歌塗鴉榮譽傳奇女星的事業

瑪琳·黛德麗,標誌性的德國出生的女演員,今天正在榮幸在她誕辰116週年的谷歌主頁上。 她是那個時代最高薪的女演員之一,...

谷歌圖片搜索結果中測試新的相關搜索框

谷歌在谷歌圖片搜索結果頁面的移動版本測試一種新的“相關搜索”框。 羅賓Rozhon發現了變化,在Twitter上發布的...

註釋