DIY :Kompilere Android ROM Fra Kildekoden
Android Er den mest brukte mobile operativsystem i verden. Og det beste av alt, det er helt åpen kildekode, som i lekmann vilkår, betyr At Kildekoden, selve programmet er tilgjengelig åpent for alle å laste ned, tilpasse og bygge sine Egne Romer.
det er mange tilpassede Android-distribusjoner tilgjengelig der ute, med De populære Som CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly, etc.
for dagens guide, vil vi kompilere CyanogenMod 10.2, Den mest populære Android ettermarkedet ROM. Prosedyren er 99% den samme for alle tilpassede Rom der ute, så denne veiledningen kan brukes som referanse for å kompilere andre Romer også.
forutsetninger
- En Android-Telefon med lett tilgjengelig Kjerne Og Enhetskilde, allerede forankret og med en tilpasset gjenoppretting installert.
- 64 bit Linux-Distribusjon (vi foretrekker Ubuntu).
- MINST 100 GB gratis På Harddisken.
- Arbeidskunnskap om Linux Terminal Kommandoer.
- Rimelig rask internett-tilkobling.
Merk: 64 bit Linux OS er et must, og det må være en innfødt installasjon, ikke En Virtuell Maskin.
Sett Opp Byggemaskinen
1. Installer Linux OS av ditt valg: 64 bit versjon, i henhold til de offisielle instruksjonene. (Guiden vil anta at Vi kjører Ubuntu 13.04). Hold en partisjon på MINST 100GB MED 16gb Swap Partisjon.
2. Installer følgende liste over pakker: Åpne Terminal app, og skriv
sudo apt-get install<pakke-navn>
trykk enter og det vil be deg om passordet ditt.
Pakkeliste
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. Åpne Terminal app og kjør følgende sett med kommandoer:
* 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
avslutt
nå må VI legge TIL Jdk-Banen til .bashrc
sudo gedit ~/.bashrc
Legg til disse linjene i slutten av tekstfilen
# Java Sti
eksporter JAVA_HOME= / opt/java / 64 / jdk1.6. 0_##
eksporter STI=$STI:$ JAVA_HOME / bin
4. Installer ANDROID SDK: Åpne Terminal App
cd ~
mkdir android & & cd android
mkdir sdk
Last Ned ANDROID SDK fra http://developer.android.com/sdk/index.html. Pakk ut innholdet i pakken til ~ / android / sdk Vi ma legge Til Android SDK banen til .bashrc
sudo gedit ~/.bashrc
Legg disse linjene til slutten av tekstfilen:
# Android SDK Path
eksporter PATH= $ PATH:~ / android/sdk
eksporter PATH= $ PATH:~ / android / sdk / platform-tools
eksporter PATH=$PATH:~ / android / sdk / verktøy
installer Nå Android SDK-Verktøy ved å skrive
android
5. Sett opp github-kontoen din og fjern repo: Du kan hoppe over dette trinnet hvis CyanogenMod støtter telefonen offisielt. Gå til github.com og gjør regnskap for deg selv. For denne veiledningen vurderer jeg brukernavnet ditt som ‘bruker’.
Besøk ‘github.com/CyanogenMod/android’, trykk Gaffel. Fjern manifest vil bli forked, og tilgjengelig i din personlige repo.
nå, gå til ‘github.com/user/android’. Åpne filen standard.xml, trykk På Rediger. Finn denne linjen:
<project path= «android» name= «CyanogenMod / android» />
og erstatte dette med
<project path= «android» name= «bruker / android» />
jeg vurderer enhetens kjernekilde, enhetskilde og leverandør libs For Android 4.3 å være på
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
jeg antar at grenen skal hete ‘jb4. 3’. Du kan finne det eksakte navnet i selve repo. Deretter legger du til disse linjene på slutten av filen, endrer dem i henhold til enhetens kildekode.
<prosjekt sti= «kernel / your_company / your_device» name= «user2 / kernel_source» remote= «github» revision= «jb4.3» />
<project path= «enhet / your_company / your_device» name= «user2 / device_source» remote= «github» revision= «jb4.3» />
<project path= «enhet / your_company / your_device-common «name=» user2 / enhet-common_source» remote=»github» revision=»jb4.3″ />
<project path= «leverandør / your_company» name= «user2 / vendor» remote= «github» revision= «jb4.3» />
Forplikte endringene. Ditt eksterne manifest er klar til å bli distribuert.
6. Installer Repo Kommando: Åpne Terminal og skriv
cd ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a + x ~ / bin / repo
vi må legge Repo banen til.bashrc
sudo gedit ~/.bashrc
Legg denne linjen til slutten av tekstfilen
eksporter STI=$STI:~ / bin
7. Hent ROM-kildekoden: Åpne Terminal og skriv
mkdir ~/android/cm
cd ~/android / cm
hvis Du trenger Trinn 5, skriv deretter
repo init –u git://github.com/user/android.git –b cm-10.2
hvis enheten støtter CyanogenMod 10.2 offisielt, skriv deretter
repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2
kjør nå
repo sync-j16
ta en kaffe, eller et måltid, det kommer til å ta lang tid. Kildekoden er godt OVER 10GB i størrelse, så det vil ta litt tid.
8. Sett Opp Enhetsspesifikke Ting: hvis enheten støtter CyanogenMod 10.2 offisielt, åpner Du Terminal og skriver
cd ~/android/cm
. build/envsetup.sh && frokost < device_codename>
Det vil ta litt tid, enhetskilden er OMTRENT 3GB i størrelse. Deretter må du ha offisiell CM10. 2 installert på telefonen, koble DEN til PCEN I USB-Feilsøkingsmodus, og kjør følgende kommandoer:
adb rot
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh
hvis enheten ikke støtter CyanogenMod 10.2 offisielt, så har du ingenting å gjøre i dette trinnet, kildene venter allerede på deg.
9. Last Ned Forhåndsbygde Ting og sett Opp Verktøykjede: Åpne Terminal og type
cd ~/android / cm / vendor / cm
sh ./ get-prebuilts
nå må Vi legge TIL TOOLCHAIN-BANEN til./ bashrc
cd ~/android / cm
sudo gedit ~/.bashrc
Legg disse linjene til slutten av tekstfilen
#
eksporter ARCH=arm
eksporter CCOMPILE= $ CROSS_COMPILE
eksporter CROSS_COMPILE=arm-eabi –
eksporter STI= $ STI:~ / android / cm / prebuilt / linux-x86 / toolchain / arm-eabi-4.4.3 / bin
10. Bygg DIN ROM: så, alt er i orden og klar. Det er på TIDE Å bygge ROM. Åpne Terminal og skriv
cd ~ / android / cm
. build/envsetup.sh
brunsj < device_codename>
På tide å ta en lur. DET vil ta en zillion år å bygge ROM på en gjennomsnittlig datamaskin. Vel, det var en overdrivelse, men på min hjemme-PC (Core i5 2nd gen MED 8GB RAM) tar det over 3 timer å bygge fra bunnen av. Forhåpentligvis blir det ingen feil, og bygningen vil fullføre fint. Du vil få utgangspakken i
~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip
det er på tide å installere din nylig kompilerte ROM på telefonen. Last Ned Google Apps pakken fra » www.Goo.im/gapps» for den aktuelle Android-versjonen. Sett begge disse pakkene i telefonen, og blinke dem i gjenopprettingsmodus. Voila, din egen kompilerte ROM kjører nå enheten din.
Vel, så du lærte å kompilere EN ROM. Så hva nå?
Oppdater Kilde –ROM
for å hente nye kildekodeoppdateringer til den lokalt nedlastede kildekoden, åpne Terminal og skriv
cd ~/android/cm
repo sync-j16
for å bygge ROM, etter oppdatering av kildekode, åpne terminal og skriv
cd ~/android/cm
GJØR installclean
finn ./ ut/ – navn ‘ bygge.prop | / xargs rm
finne ./ ut / – navn ‘cm_<your_device > -target_files-eng.*.zip | / xargs rm
. build/envsetup.sh
brunsj < your_device>
Siden du ikke re-building fra bunnen av, men re-building som det er, vil det ta betydelig mindre tid, bare ca 15-30 minutter i de fleste tilfeller. Du bør synkronisere din lokale kilde hver uke eller så, for å holde din lokale kilde frisk.
Rengjør Arbeidskatalogen
for å rense arbeidskatalogen helt (les: returner kildemappen til lager tilstand), åpne Terminal og skriv inn følgende kommandoer.
cd ~/android/cm
gjør installclean
gjør clobber
Husk at etter å ha kjørt disse kommandoene, vil alle utdataene dine bli fjernet, så neste bygg vil ta 3-4 timer igjen, da alt er re-bygget fra bunnen av. Hvis Harddiskpartisjonen din er liten, si rundt 100GB, bør du rense arbeidskatalogen din om en gang hver 4 bygger, ellers vil Du gå tom For Harddiskplass.
Fremskynde din bygge AV CCACHE
Bygge EN ROM tar mye tid. Men tiden kan kuttes ned med ca 30-45% ved Å bruke CCACHE. CCACHE står for compiler cache, det bufrer kompilering utgang fra tidligere bygger, slik at den kan gjenbrukes i senere bygger.
MERK AT CCACHE trenger mye plass på Harddisken for caching innholdet, så det anbefales hvis og bare hvis Harddiskpartisjonen er et sted I NÆRHETEN AV 200GB eller høyere. For å sette OPP CCACHE, åpne Terminal og type:
cd ~/android / cm
eksporter BRUK_CCACHE=1
eksporter CACHE_DIR=~/.ccache
prebuilts / misc / linux-x86 / ccache/ccache-M 50G
du kan endre maksimal størrelsesallokering TIL CCACHE FRA 50GB til hva du vil, men minst 30gb skal brukes til gode resultater.
Hente Begår Fra Andre Rom
du kan cherry-pick funksjoner fra andre Rom kildekoden. Si, for eksempel, jeg vil velge Funksjon A, med commit ID «12345» fra repository «github.com/user/reporepo».
du navigerer til pakken i din lokale kildekode og kjører disse I Terminal.
cd ~ / < path_to_reporepo_packages >
git hente https://github.com/user/reporepo
git kirsebær-plukke 12345
Kildekoden Linker Av Kjente Android Tilpassede ROM Distribusjoner
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 –
Iskald Jelly– https://github.com/IceColdJelly
Så, der du går gutta, en enkel, grei guide for å kompilere nesten Alle Android aosp basert ROM i 10 enkle trinn. Mens min guide fokuserer På CyanogenMod, kan du kompilere ganske mye HVER AOSP ROM der ute, ved bare å endre depotkoblingene. Eller, du kan bare velge funksjoner, forplikte dem, endre ting og lage din egen personlige ROM, kanskje dele ROM online også?