pokud jste obeznámeni s zakořeněním telefonu Android nebo stahováním vlastních ROM, jako je velmi populární CyanogenMod nebo jeho nástupce Lineage OS – možná jste se divili-jak lidé vytvářejí tyto ROM? Kolik práce přesně jde do vývoje přizpůsobené ROM?
Tato příručka vás provede základy vývoje vlastní Android ROM. Je třeba poznamenat, že se jedná o obrovský podnik – pokud máte nulové zkušenosti s kódováním nebo blbnutím v linuxových terminálech, možná budete chtít získat nějaké znalosti pod opaskem, než se ponoříte do tohoto hlubokého konce. Ale pokud máte alespoň základní představu o těchto věcech, pokusím se vysvětlit věci co nejjednodušeji, abyste mohli následovat.
v podstatě to, co děláme, je stahování surového zdrojového kódu Android (AOSP) a jeho úprava podle našich představ. Protože existuje tolik zdrojů, ze kterých si můžete vybrat pro různá zařízení, bude tato příručka jednoduše odkazovat na hlavní zdroj známý jako AOSP (Android Open Source Project).
nyní jde o AOSP, že čistý zdrojový kód neobsahuje hardwarové vlastnosti specifické pro zařízení. Laicky řečeno, hardware, jako je váš fotoaparát a GPU, nebude při vývoji s AOSP fungovat „po vybalení z krabice“. Ve skutečnosti se vaše zařízení ani nespustí bez těchto hardwarových binárních souborů.
pokud vyvíjíte pro telefon se značkou Google (Pixel, Nexus atd.), Najdete hardwarové binární soubory přímo od společnosti Google a tato příručka vás provede jejich získáním a budováním do paměti ROM. Pokud však vyvíjíte ROM pro značkový telefon (Sony, Samsung atd.) … dobře, žehnej svému srdci, protože jste na projížďce.
někteří výrobci mají své vlastní open-source projekty nebo uvolňují vývojové nástroje pro budoucí vývojáře, zatímco jiní výrobci drží pevně víko svých proprietárních kódů. Zde je stručný seznam open-source projektů od populárnějších výrobců:
Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers
s tím z cesty, pokračujme za předpokladu, že budujeme ROM pro nejzákladnější, vanilkový Android zážitek, pro zařízení Google Pixel. S těmito znalostmi pod pásem se budete moci samostatně rozvětvit a začít vyvíjet přizpůsobené verze ROM konkrétního výrobce.
požadavky na tuto příručku:
- Android Open Source Project
- Pixel XL telefon nebo emulátor Android pro Linux
- 64bitový operační systém Linux-Ubuntu nebo Linux Mint jsou nejvíce nováčci-friendly distros, zatímco BBQLinux byl vyvinut speciálně s vývojáři Android v mysli.
- Python
- svalnatý počítač (kompilace kódu vyžaduje hodně paměti a místa!)
Nastavení prostředí sestavení
začněme nastavením emulátoru Android na vašem počítači se systémem Linux. Ať už máte zařízení Google Pixel XL nebo ne, je vždy nejbezpečnější vyzkoušet novou ROM na emulátoru Android před blikáním do zařízení. Můj osobní favorit je Genymotion, takže vás provedu instalací tohoto konkrétního emulátoru. Můžete se však také podívat na tuto příručku „nejlepší emulátory Android“, protože většina z nich má také kompatibilitu s Linuxem.
přejděte na web Genymotion, zaregistrujte si účet, ověřte jej e-mailem a stáhněte spustitelný soubor na plochu systému Linux.
nyní otevřete linuxový terminál a zadejte:
Chmod + x genymotion-xxxxx.bin (nahraďte xxxx číslem verze v názvu souboru)
./ genymotion-xxxxxx.bin
stisknutím Y vytvoříte adresář Genymotion. Nyní zadejte terminál:
cd genymotion && ./ genymotion
nyní vás požádá o zahájení procesu instalace,takže stačí kliknout na tlačítko Další, dokud se nedostanete do okna Přidat virtuální zařízení. V části Model zařízení vyberte možnost „Pixel XL“ a dokončete instalaci. Virtuální zařízení si můžete vyzkoušet, pokud chcete, bude to v podstatě jako mít telefon Pixel XL na ploše.
pojďme nyní nastavit Python:
$ apt-get install python
nyní musíme nastavit vývojovou sadu Java na vašem počítači se systémem Linux. Otevřete terminál Linux a zadejte následující příkazy:
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
Nyní budete muset nakonfigurovat systém Linux, aby umožnil přístup k zařízení USB. Spusťte následující kód v terminálu Linux:
tím se stáhne požadovaný 51-android.txt soubor, který umožňuje výše uvedené zařízení USB přístup. Otevřete .txt soubor a upravte jej tak, aby zahrnoval vaše uživatelské jméno pro Linux, poté umístěte .txt soubor v následujícím umístění: (jako uživatel root). Nyní připojte zařízení k počítači přes USB, aby se nová pravidla automaticky projevila.
stahování zdroje Android
AOSP je hostován na Gitu, takže pro komunikaci s Gitem použijeme nástroj nazvaný Repo.
nejprve musíme nastavit složku a / bin ve vašem domovském adresáři. Do terminálu Linux zadejte následující příkazy:
$ mkdir ~ / bin
$ PATH=~ / bin:$PATH
nyní stáhneme nástroj Repo, takže zadejte do terminálu Linux:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~ / bin / repo
$ chmod a + x ~ / bin / repo
po instalaci Repo musíme nyní vytvořit prázdný adresář pro uložení vašich pracovních souborů. Zadejte to do terminálu Linux:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
nyní nakonfigurujeme Git s vaším jménem a e-mailovou adresou-použijte adresu Gmailu, kterou pravidelně kontrolujete, jinak nebudete moci použít nástroj pro kontrolu kódu Gerrit.
$ git config –globální uživatel.jméno „vaše jméno“
$ git config –globální uživatel.e-mail [email protected]
nyní řekneme Repo, aby vytáhlo nejnovější hlavní manifest AOSP z Git:
$ repo init-u https://android.googlesource.com/platform/manifest
pokud bude provedeno úspěšně, obdržíte zprávu, že Repo bylo inicializováno ve vašem pracovním adresáři. Najdete také“.repo “ adresář uvnitř adresáře klienta. Takže teď si stáhneme zdrojový strom Android pomocí:
$ repo sync
budování zdroje Android
Zde přicházejí do hry hardwarové binární soubory uvedené na začátku této příručky. Pojďme se podívat na stránku ovladačů AOSP a stáhněte si binární soubory Pixel XL pro Android 7.1.0 (NDE63P). Chcete si stáhnout obrázek dodavatele i hardwarové komponenty. Přicházejí jako komprimované archivy, takže je rozbalte na plochu a spusťte samorozbalovací skript z kořenové složky. Zvolte instalaci binárních souborů do kořenového adresáře WORKING_DIRECTORY, který jsme vytvořili dříve.
Nyní zadejte do svého terminálu Linux:
$ make clobber
$ source build/envsetup.sh
nyní vybereme cíl, který chcete vytvořit, takže zadejte:
$ lunch aosp_marlin-userdebug
$ setpaths
$ make-j4
tam jsme nyní „postavili“ Android ROM ze zdroje. Takže pojďme vyzkoušet v emulátoru, zadáním do terminálu:
$ emulátor
takže hrát si v emulátoru trochu. Jak vidíte, čistě vanilkový zážitek z Androidu je poměrně minimální, a proto výrobci přizpůsobují AOSP svým potřebám. Takže byste mohli blikat tento ROM, který jsme právě postavili do vašeho zařízení, pokud jste chtěli, ale bez přidání jakýchkoli vylepšení by čistě vanilkový zážitek pro Android byl opravdu velmi nudnou věcí.
takže to, co výrobci obvykle dělají s AOSP, je vidlička, přidání vlastních proprietárních binárních souborů, přizpůsobení uživatelského rozhraní, Přidání bootovacího loga atd. Výrobce je v podstatě jen malovat přes akcie Android ROM, a tak to bude váš další cíl stejně.
zůstaňte naladěni, protože druhá část této příručky projde přidáním písem, motivů a spouštěcí animace do vaší ROM!