DIY: kompilace Android ROM ze zdrojového kódu
Android je nejpoužívanější mobilní operační systém na světě • A nejlepší část, je to zcela open-source, což laicky řečeno, znamená, že zdrojový kód, skutečný program je k dispozici otevřeně pro každého ke stažení, přizpůsobit a vytvořit své vlastní ROM.
existuje spousta vlastních distribucí pro Android, které jsou k dispozici, přičemž populární jsou CyanogenMod, SlimROM, Paranoid Android,AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly atd.
pro dnešní průvodce sestavíme CyanogenMod 10.2, nejoblíbenější ROM s náhradními díly pro Android. Postup je 99% stejný pro všechny vlastní ROM tam, takže tato příručka může být použita jako reference pro kompilaci dalších ROM taky.
předpoklady
- telefon Android s snadno dostupným zdrojem jádra a zařízení, již zakořeněný a s nainstalovanou vlastní obnovou.
- 64bitová distribuce Linuxu (preferujeme Ubuntu).
- alespoň 100GB zdarma na pevném disku.
- pracovní znalost příkazů terminálu Linux.
- přiměřeně rychlé připojení k internetu.
Poznámka: 64 bit Linux OS je nutností a musí to být nativní instalace, nikoli virtuální stroj.
Nastavení Sestavení Stroje
1. Nainstalujte operační systém Linux podle vašeho výběru: 64bitová verze podle oficiálních pokynů. (Průvodce bude předpokládat, že provozujeme Ubuntu 13.04). Udržujte oddíl alespoň 100 GB s odkládacím oddílem 16 GB.
2. Nainstalujte následující seznam balíčků: Otevřete terminálovou aplikaci a zadejte
sudo apt-get install <Název balíčku>
stiskněte klávesu enter a vyzve vás k zadání hesla.
Seznam balíčků
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. Otevřete aplikaci Terminal a spusťte následující sadu příkazů:
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
nyní musíme přidat cestu JDK .bashrc
sudo gedit~/.bashrc
přidejte tyto řádky do konce textového souboru
# Java Path
export JAVA_HOME=/opt / java / 64 / jdk1.6. 0_##
export PATH= $ PATH:$JAVA_HOME / bin
4. Instalace Android SDK: otevřete terminálovou aplikaci
cd ~
mkdir android && cd android
mkdir sdk
Stáhněte si Android SDK z http://developer.android.com/sdk/index.html. Rozbalte obsah balíčku do ~ / android / sdk, ke kterému musíme přidat cestu Android SDK.bashrc
sudo gedit~/.bashrc
přidejte tyto řádky na konec textového souboru:
# Android SDK Path
export PATH= $ PATH:~ / android / sdk
export PATH= $ PATH:~ / android / sdk / platform-tools
export PATH= $ PATH:~ / android / sdk / tools
nyní nainstalujte nástroje Android SDK zadáním
android
5. Nastavte si účet github a vzdálené repo: tento krok můžete přeskočit, pokud CyanogenMod oficiálně podporuje váš telefon. Přejít na github.com, a vytvořte si účet pro sebe. Pro tuto příručku považuji vaše uživatelské jméno za „uživatele“.
návštěva ‚github.com/CyanogenMod/android‘, stiskněte vidličku. Vzdálený manifest bude vidlicový, a je k dispozici ve vašem osobním repo.
Nyní přejděte na ‚github.com/user/android‘. otevřete výchozí soubor.xml, stiskněte upravit. Najděte tento řádek:
<project path= „android“ name= „CyanogenMod / android“ />
a nahraďte to
<project path= „android“ name= „uživatel / android“ />
zvažuji zdroj jádra vašeho zařízení, zdroj zařízení a dodavatele libs pro Android 4.3 být na
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
předpokládám, že větev bude pojmenována ‚jb4. 3‘. Přesný název najdete ve skutečném repo. Poté na konci souboru přidejte tyto řádky a upravte je podle zdrojového kódu zařízení.
<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“ />
odevzdejte své změny. Váš vzdálený manifest je připraven k nasazení.
6. Příkaz instalovat Repo: otevřete terminál a zadejte
cd ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~ / bin / repo
chmod a + x ~ / bin / repo
musíme přidat cestu k Repo.bashrc
sudo gedit~/.bashrc
přidejte tento řádek na konec textového souboru
export PATH= $ PATH:~ / bin
7. Načíst zdrojový kód ROM: Otevřete terminál a zadejte
mkdir ~/android/cm
cd ~/android/cm
pokud potřebujete Krok 5, Zadejte
repo init –u git://github.com / user / android.git –B cm-10.2
pokud vaše zařízení oficiálně podporuje CyanogenMod 10.2, zadejte
repo init-u git://github.com / CyanogenMod / android.git –B cm-10.2
Nyní spusťte
repo sync-j16
jděte si dát kávu nebo jídlo, bude to trvat dlouho. Zdrojový kód má více než 10 GB, takže to bude nějakou dobu trvat.
8. Nastavte zařízení specifické věci: pokud vaše zařízení podporuje CyanogenMod 10.2 oficiálně, pak otevřete terminál a zadejte
cd ~/android/cm
. build/envsetup.sh && snídaně <device_codename>
bude to nějakou dobu trvat, zdroj zařízení má velikost asi 3 GB. Poté musíte mít v telefonu nainstalován oficiální CM10.2, připojit jej k počítači v režimu ladění USB a spustit následující příkazy:
ADB root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh
pokud vaše zařízení CyanogenMod 10.2 oficiálně nepodporuje, nemáte v tomto kroku co dělat, zdroje na vás již čekají.
9. Stáhněte si předinstalované věci a nastavte Toolchain: otevřete terminál a zadejte
cd ~ / android / cm/vendor / cm
sh ./ get-prebuilts
nyní musíme přidat cestu Toolchain ./bashrc
cd ~ / android / cm
sudo gedit~/.bashrc
přidejte tyto řádky na konec textového souboru
# 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. Sestavte si svůj ROM: takže je vše v pořádku a připravené. Je čas postavit ROM. Otevřete terminál a zadejte
cd ~ / android / cm
. build/envsetup.sh
brunch <device_codename>
je čas jít si zdřímnout. Vytvoření ROM na průměrném počítači bude trvat miliony let. No, to bylo přehnané, ale na mém domácím PC (Core i5 2nd gen s 8GB RAM) to trvá 3 hodiny stavět od nuly. Doufejme, že nedojde k žádným chybám a sestavení bude v pořádku. Výstupní balíček získáte v
~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip
je čas nainstalovat nově zkompilovaný ROM do telefonu. Stáhněte si balíček Google Apps z “ www.Goa.im/ gapps “ pro příslušnou verzi systému Android. Vložte oba tyto balíčky do telefonu a flash je v režimu obnovy. Voila, vaše vlastní kompilovaná ROM nyní běží na vašem zařízení.
No, takže jste se naučili, jak sestavit ROM. Takže co teď?
Aktualizujte zdrojový kód ROM
a získejte nové aktualizace zdrojového kódu do místně staženého zdrojového kódu, otevřete terminál a zadejte
cd ~/android/cm
repo sync –j16
Chcete-li vytvořit ROM, po aktualizaci zdrojového kódu otevřete terminál a zadejte
cd ~/android/cm
proveďte installclean
najít ./ out / – name ‚ build.prop | / xargs rm
najít ./out/ – name ‚ cm_<your_device> – target_files-eng.*.zip‘ / xargs rm
. build/envsetup.sh
brunch <your_device>
vzhledem k tomu, že nejste re-building od nuly, ale re-building, jak to je, to bude trvat podstatně méně času, jen asi 15-30 minut ve většině případů. Místní zdroj byste měli synchronizovat každý týden, aby byl váš místní zdroj čerstvý.
vyčistěte pracovní adresář
Chcete-li pracovní adresář zcela vyčistit (číst: vraťte zdrojovou složku do stavu zásob), otevřete terminál a zadejte následující příkazy.
cd ~ / android / cm
make installclean
make clobber
mějte na paměti, že po spuštění těchto příkazů budou všechna vaše výstupní data odstraněna, takže další sestavení bude trvat 3-4 hodiny znovu, protože vše je znovu postaveno od nuly. Pokud je váš oddíl pevného disku malý, řekněme kolem 100GB, měli byste vyčistit pracovní adresář asi jednou za 4 sestavení, jinak vám dojde místo na pevném disku.
Zrychlete sestavení pomocí CCACHE
budování ROM trvá hodně času. Ale čas může být snížen asi o 30-45% pomocí CCACHE. CCACHE je zkratka pro compiler cache, ukládá výstup kompilace z vašich dřívějších sestav, takže může být znovu použit v pozdějších sestavách.
Všimněte si, že CCACHE potřebuje hodně místa na pevném disku pro ukládání do mezipaměti obsahu, takže jeho doporučuje pouze tehdy, pokud váš oddíl pevného disku je někde v blízkosti 200GB nebo vyšší. Chcete-li nastavit CCACHE, otevřete terminál a zadejte:
cd ~ / android / cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts / misc / linux-x86 / ccache/ccache-m 50G
můžete změnit maximální přidělení velikosti CCACHE z 50 GB na cokoli chcete, ale pro dobré výsledky by mělo být použito minimálně 30 GB.
načíst commit z jiných ROM
můžete vybrat funkce z jiných ROM zdrojového kódu. Řekněme například, že chci vybrat funkci a, s commit ID „12345“ z úložiště „github.com/user/reporepo“.
přejděte na balíček v místním zdrojovém kódu a spusťte je v terminálu.
cd ~ / <path_to_reporepo_packages>
git fetch https://github.com/user/reporepo
git cherry-pick 12345
zdrojový kód odkazy slavných Android Vlastní ROM distribucí
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
tak, tam jdete kluci, jednoduchý, přímočarý průvodce kompilovat prakticky jakýkoli Android AOSP založený ROM v 10 jednoduchých krocích. Zatímco můj průvodce se zaměřuje na CyanogenMod, můžete kompilovat skoro každý AOSP ROM tam, jen úpravou odkazů úložiště. Nebo si můžete jen vybrat funkce, odevzdat je, upravit věci a vytvořit si vlastní osobní ROM, možná také sdílet svou ROM online?