DIY: kompilera Android ROM från källkod
Android är det mest använda mobila operativsystemet i världen. Och det bästa, det är helt öppen källkod, vilket i lekman termer, innebär att källkoden, själva programmet är tillgängligt öppet för alla att ladda ner, anpassa och bygga sina egna ROM.
det finns många anpassade Android-distributioner tillgängliga där ute, med de populära som CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly, etc.
för dagens guide kommer vi att sammanställa CyanogenMod 10.2, den mest populära Android-eftermarknaden ROM. Förfarandet är 99% detsamma för alla anpassade ROM-skivor där ute, så den här guiden kan användas som referens för att kompilera andra ROM-skivor också.
förutsättningar
- en Android-telefon med lättillgänglig kärna och Enhetskälla, redan rotad och med en anpassad återställning installerad.
- 64 bitars Linux-Distribution (vi föredrar Ubuntu).
- minst 100 GB gratis på hårddisken.
- kunskap om Linux Terminalkommandon.
- rimligt snabb Internetanslutning.
punkt att notera: 64 bitars Linux OS är ett måste, och det måste vara en inbyggd installation, inte en virtuell maskin.
Ställ In Din Byggmaskin
1. Installera Linux-operativsystemet efter eget val: 64-bitarsversion, enligt de officiella instruktionerna. (Guiden antar att vi kör Ubuntu 13.04). Håll en partition på minst 100 GB med 16 GB Swap Partition.
2. Installera följande lista med paket: Öppna Terminal app och skriv
sudo apt-get install <Paketnamn>
tryck på enter och det kommer att fråga dig om ditt lösenord.
paketlista
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. Install Java JDK 1.6 for Linux 64-bit: File name should be jdk-6u##-linux-x64.bin, ## are version numbers. Move the downloaded package to your home directory. Öppna Terminal app och kör följande uppsättning kommandon:
sudo apt-få rensa 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
avsluta
nu måste vi lägga till JDK-sökvägen till .bashrc
sudo gedit ~/.bashrc
Lägg till dessa rader i slutet av textfilen
# Java-sökväg
exportera JAVA_HOME= / opt / java / 64 / jdk1.6. 0_##
exportera sökväg= $ sökväg:$ JAVA_HOME / bin
4. Installera Android SDK: öppna Terminal App
cd ~
mkdir android && cd android
mkdir sdk
hämta Android SDK från http://developer.android.com/sdk/index.html. Extrahera paketinnehållet till ~ / android / sdk vi måste lägga till Android SDK-sökväg till .bashrc
sudo gedit ~/.bashrc
Lägg till dessa rader i slutet av textfilen:
# Android SDK Path
export PATH= $ PATH:~ / android / sdk
export PATH=$PATH:~ / android / sdk / platform-verktyg
export PATH=$PATH:~ / android / sdk / tools
installera nu Android SDK-verktyg genom att skriva
android
5. Ställ in ditt github-konto och remote repo: du kan hoppa över det här steget om CyanogenMod stöder din telefon officiellt. Gå till github.com, och gör ett konto för dig själv. För den här guiden, Jag överväger ditt användarnamn som ’användare’.
besök ’github.com/CyanogenMod/android’, tryck gaffel. Fjärr manifest kommer att kluven, och finns i din personliga repo.
gå nu till ’github.com/user/android’. öppna filen standard.xml, tryck på Redigera. Hitta den här raden:
<projektväg= ”android” name= ”CyanogenMod / android” />
och ersätt detta med
<project path= ”android” name= ”användare / android” />
jag överväger enhetens kärnkälla, enhetskälla och leverantörslib för Android 4.3 att vara på
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
jag antar att filialen heter ’jb4.3’. Du kan hitta det exakta namnet i själva reporäntan. Lägg sedan till dessa rader i slutet av filen och ändra dem enligt enhetens källkod.
<projektväg= ”kernel / your_company / your_device” name= ”user2 / kernel_source” remote= ”github” revision= ”jb4.3” />
<projektväg= ”enhet / 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” />
begå dina ändringar. Din remote manifest är redo att distribueras.
6. Installera Repo-kommando: öppna Terminal och skriv
cd ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
vi måste lägga till Repo-sökväg till .bashrc
sudo gedit ~/.bashrc
Lägg till den här raden i slutet av textfilen
export PATH= $ PATH:~ / bin
7. Hämta Rom-källkoden: Öppna Terminal och skriv
mkdir ~ / android/cm
cd ~ / android / cm
om du behöver Steg 5, skriv sedan
repo init-u git: / / github. com / user / android. git-b cm-10.2
om din enhet stöder CyanogenMod 10.2 officiellt, skriv sedan
repo init-u git: / / github. com / CyanogenMod / android. git-b cm-10.2
kör nu
repo sync-j16
ta en kaffe eller en måltid, det kommer att ta lång tid. Källkoden är väl över 10 GB i storlek, så det tar ganska lång tid.
8. Ställ in enhetsspecifika saker: om din enhet stöder CyanogenMod 10.2 officiellt, öppna sedan Terminal och skriv
cd ~/android/cm
. build/envsetup.sh && frukost <device_codename>
det tar lite tid, enhetskällan är ungefär 3 GB i storlek. Sedan måste du ha officiell CM10. 2 installerad på din telefon, anslut den till din dator i USB-felsökningsläge och kör följande kommandon:
ADB rot
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh
om din enhet inte stöder CyanogenMod 10.2 officiellt, har du inget att göra i det här steget, källorna väntar redan på dig.
9. Hämta färdiga Grejer och ställa in Toolchain: öppna Terminal och typ
cd ~/android/cm/vendor/cm
sh ./ get-prebuilts
nu måste vi lägga till verktygsbanan till ./ bashrc
cd ~ / android / cm
sudo gedit ~/.bashrc
Lägg till dessa rader i slutet av textfilen
# Android Toolchain
export ARCH = arm
export CCOMPILE= $ CROSS_COMPILE
export CROSS_COMPILE=arm-EABI –
export PATH= $ PATH:~ / android / cm / förbyggd / linux-x86 / toolchain / arm-eabi-4.4.3 / bin
10. Bygg din ROM: så allt är okej och klart. Det är dags att bygga ROM. Öppna Terminal och skriv
cd ~/android/cm
. build/envsetup.sh
brunch <device_codename>
dags att ta en tupplur. Det kommer att ta en zillion år att bygga ROM på en genomsnittlig dator. Tja, det var en överdrift, men på min hemdator (Core i5 2nd gen med 8GB RAM) tar det över 3 timmar att bygga från början. Förhoppningsvis kommer det inga fel, och byggnaden kommer att slutföra bra. Du kommer att få utdatapaketet i
~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip
det är dags att installera din nykompilerade ROM på din telefon. Ladda ner Google Apps-paketet från ” www.Goo.im/ gapps ” för lämplig Android-version. Sätt båda dessa paket i telefonen och blinka dem i återställningsläge. Voila, din egen kompilerade ROM kör nu din enhet.
Tja, så du lärde dig att kompilera en ROM. Så, vad nu?
uppdatera din källa ROM
för att hämta nya källkodsuppdateringar till din lokalt nedladdade källkod, öppna Terminal och skriv
cd ~/android/cm
repo sync –j16
för att bygga din ROM, efter uppdatering av källkod, öppna terminal och skriv
cd ~/Android/cm
gör installclean
hitta ./ ut / – namn ’bygga.prop ’ / xargs rm
hitta ./ ut / – namn ’cm_<your_device>-target_files-eng.*.zip ’ / xargs rm
. build/envsetup.sh
brunch <your_device>
eftersom du inte bygger om från grunden, men bygger om som det är, tar det betydligt mindre tid, bara cirka 15-30 minuter i de flesta fall. Du bör synkronisera din lokala källa varje vecka eller så, för att hålla din lokala källa fräsch.
rengör din arbetskatalog
för att rengöra din arbetskatalog helt (läs: Återställ källmappen till lagervillkor), öppna Terminal och skriv följande kommandon.
cd ~ / android / cm
gör installclean
gör clobber
Tänk på att efter att ha kört dessa kommandon kommer alla dina utdata att tas bort, så nästa byggnad tar 3-4 timmar igen, eftersom allt är ombyggt från början. Om din hårddiskpartition är liten, säg runt 100gb, bör du rengöra din arbetskatalog ungefär en gång varje 4-byggnad, annars kommer du att få slut på hårddiskutrymme.
snabba upp din build av CCACHE
att bygga en ROM tar mycket tid. Men tiden kan skäras ner med cirka 30-45% genom att använda CCACHE. CCACHE står för kompilatorcache, det cachar kompileringsutmatningen från dina tidigare byggnader, så att den kan återanvändas i senare byggnader.
Observera att CCACHE behöver mycket utrymme på hårddisken för att cacha innehållet, så det rekommenderas om och endast om din hårddiskpartition är någonstans i närheten av 200GB eller högre. För att ställa in CCACHE, öppna Terminal och typ:
cd ~ / android / cm
exportera USE_CCACHE=1
exportera CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache / ccache –M 50G
du kan ändra den maximala storlekstilldelningen till CCACHE från 50 GB till vad du vill, men minst cirka 30 GB bör användas för bra resultat.
hämta begår från andra Rom
du kan cherry-pick funktioner från andra Rom källkod. Säg till exempel att jag vill välja funktion A, med commit ID ”12345” från förvaret ”github.com/user/reporepo”.
du navigerar till paketet i din lokala källkod och kör dessa i Terminal.
cd ~ / <path_to_reporepo_packages>
git hämta https://github.com/user/reporepo
git cherry-pick 12345
källkod länkar berömda Android anpassade ROM distributioner
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 –
Ice Cold Jelly– https://github.com/IceColdJelly
så, där går du Killar, en enkel, enkel guide för att kompilera praktiskt taget alla Android AOSP-baserade ROM i 10 enkla steg. Medan min guide fokuserar på CyanogenMod, kan du kompilera ganska mycket varje AOSP ROM där ute, genom att bara ändra förvarets länkar. Eller kan du bara välja funktioner, begå dem, ändra saker och skapa din egen personliga ROM, kanske dela din ROM online också?