Průvodci

Jak vytvořit vlastní ROM z projektu Android s otevřeným zdrojovým kódem

Pokud jste obeznámeni s rootová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á vás napadlo - jak lidé tyto ROMy vytvářejí? Kolik práce přesně jde do vývoje přizpůsobené ROM?

Tato příručka vás provede základy vývoje vaší vlastní vlastní paměti ROM pro Android. Je třeba poznamenat, že se jedná o obrovský úkol - pokud nemáte žádné zkušenosti s kódováním nebo blázněním v terminálech Linux, možná budete chtít získat nějaké znalosti pod pás, než se ponoříte do tohoto hlubokého konce. Pokud však máte o těchto věcech alespoň základní představu, pokusím se věci vysvětlit co nejjednodušší, abyste mohli pokračovat.

V podstatě děláme stahování drsný Zdrojový kód Androidu (AOSP) a jeho úpravy podle našich představ. Protože pro různá zařízení je na výběr tolik zdrojů, bude tato příručka jednoduše odkazovat na mistr zdroj známý jako AOSP (Android Open Source Project).

AOSP nyní spočívá v tom, že jde o čistý zdrojový kód neobsahuje hardwarové vlastnosti specifické pro zařízení. Laicky řečeno, hardware jako váš fotoaparát a GPU nebude při vývoji pomocí AOSP fungovat „po vybalení z krabice“. Bez těchto hardwarových binárních souborů se vaše zařízení ve skutečnosti ani nespustí.

Pokud vyvíjíte telefon se značkou Google (Pixel, Nexus atd.), Můžete najít hardwarové binární soubory přímo od Googlu a tato příručka vás provede jejich získáním a zabudováním do vaší ROM. Pokud však vyvíjíte ROM pro značkový telefon (Sony, Samsung atd.) ... no, požehnejte svému srdci, protože se chystáte projet.

Nějaký výrobci mají své vlastní open-source projekty nebo vydávají vývojové nástroje pro budoucí vývojáře, zatímco ostatní výrobci pečlivě zakrývají své vlastní kódy. Zde je krátký seznam open-source projektů od populárnějších výrobců:

Samsung Open Source Release Center

Sony Developer World

Podpora Lenovo

Centrum vydání Huawei Open Source

Vývojáři společnosti Motorola

Když to nebudeme dělat, pokračujme za předpokladu, že vytváříme ROM pro nejzákladnější vanilkový Android pro zařízení Google Pixel. Díky těmto znalostem budete moci sami odbočit a začít vyvíjet přizpůsobené verze ROM ROM konkrétního výrobce.

Požadavky na tuto příručku:

  • Android Open Source Project
  • Telefon Pixel XL nebo emulátor Android pro Linux
  • 64bitový operační systém Linux - Ubuntu nebo Linux Mint jsou nejnáročnější distribuce, zatímco BBQLinux byl vyvinut speciálně pro vývojáře systému Android.
  • Krajta
  • Svalnatý počítač (kompilace kódu zabere hodně paměti a místa!)

Nastavení prostředí pro sestavení

Začněme nastavením emulátoru Android na vašem počítači se systémem Linux. Bez ohledu na to, zda máte zařízení Google Pixel XL, je vždy nejbezpečnější vyzkoušet novou ROM v emulátoru Android před bliká do vašeho zařízení. Mým osobním favoritem je Genymotion, takže vás provedu instalací konkrétního emulátoru. Můžete si však také prohlédnout tuto příručku „Nejlepší emulátory Androidu“, 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 si spustitelný soubor na plochu Linuxu.

Nyní otevřete terminál Linux a zadejte:

Chmod + x genymotion-xxxxx.bin (nahraďte xxxx číslem verze v názvu souboru)

./genymotion-xxxxxx.bin

lis Y k vytvoření adresáře Genymotion. Nyní zadejte terminál:

cd genymotion && ./genymotion

Nyní vás požádá o zahájení procesu instalace, takže pokračujte kliknutím na Další, dokud se nedostanete do okna Přidat virtuální zařízení. V části Model zařízení vyberte možnost „Pixel XL“ a poté dokončete instalaci. Pokud chcete, můžete virtuální zařízení vyzkoušet, bude to v podstatě jako mít telefon Pixel XL na ploše.

Pojďme nyní nastavit Python:

$ apt-get nainstalovat python

Nyní musíme na vašem počítači se systémem Linux nastavit sadu Java Development Kit. Otevřete terminál Linux a zadejte následující příkazy:

$ sudo apt-get aktualizace

$ sudo apt-get install openjdk-8-jdk

Nyní budete muset nakonfigurovat systém Linux tak, aby umožňoval přístup zařízení USB. Spusťte následující kód v terminálu Linux:

Tím se stáhne požadovaný soubor 51-android.txt, který umožňuje výše zmíněnému zařízení USB přístup. Otevřete soubor .txt a upravte jej tak, aby obsahoval vaše uživatelské jméno pro Linux, a poté soubor .txt umístěte do následujícího umístění: (jako uživatel root). Nyní připojte zařízení k počítači přes USB, aby se nová pravidla automaticky uplatnila.

Stahování zdroje Android

AOSP je hostován na Gitu, takže ke komunikaci s Gitem použijeme nástroj s názvem Repo.

Nejprve musíme nastavit složku / bin ve vašem domovském adresáři. Do terminálu Linux zadejte následující příkazy:

$ mkdir ~ / bin

$ PATH = ~ / bin: $ PATH

Nyní si stáhneme nástroj Repo, zadejte tedy do terminálu Linux:

$ curl //storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo

$ chmod a + x ~ / bin / repo

Po instalaci aplikace Repo musíme nyní vytvořit prázdný adresář pro uložení vašich pracovních souborů. Zadejte to tedy do terminálu Linux:

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

Nyní nakonfigurujeme Git s vaším jménem a e-mailovou adresou - používejte pravidelně kontrolovanou adresu Gmailu, jinak nebudete moci používat nástroj Gerrit pro kontrolu kódu.

$ git config –global user.name „Vaše jméno“

$ git config –global user.email [email protected]

Nyní řekneme Repovi, aby z Gitu vytáhl nejnovější hlavní manifest AOSP:

$ repo init -u //android.googlesource.com/platform/manifest

Pokud bude úspěšně dokončeno, zobrazí se zpráva, že Repo bylo inicializováno ve vašem pracovním adresáři. Najdete také „.repo “ adresář uvnitř adresáře klienta. Nyní si tedy stáhneme zdrojový strom Androidu s:

$ repo synchronizace

Vytváření zdroje Android

Zde vstupují do hry hardwarové binární soubory zmíněné na začátku této příručky. Pojďme na stránku s ovladači AOSP a stáhněte si binární soubory Pixel XL pro Android 7.1.0 (NDE63P). Chcete stáhnout obraz 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. Vyberte 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:

$ udělat šavle

$ source build / envsetup.sh

Nyní zvolíme cíl, který se má sestavit, a tak zadejte:

$ oběd aosp_marlin-userdebug

$ setpaths

$ make –j4

Tam jsme nyní „vytvořili“ Android ROM ze zdroje. Pojďme to tedy otestovat v emulátoru zadáním do terminálu:

emulátor $

Takže si trochu zahrajte v emulátoru. Jak vidíte, čistě vanilková zkušenost se systémem Android je zcela minimální, a proto výrobci přizpůsobují AOSP svým potřebám. Takže ty mohl blesk této 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 ze systému Android byl opravdu velmi nudná věc.

Takže to, co výrobci obvykle dělají s AOSP, je rozdvojení, 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 v podstatě jen maloval nad standardní Android ROM, a to bude také váš další cíl .

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ší paměti ROM!