18 ledna, 2022

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

  1. telefon Android s snadno dostupným zdrojem jádra a zařízení, již zakořeněný a s nainstalovanou vlastní obnovou.
  2. 64bitová distribuce Linuxu (preferujeme Ubuntu).
  3. alespoň 100GB zdarma na pevném disku.
  4. pracovní znalost příkazů terminálu Linux.
  5. 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.

Načítání Zdroj

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?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.