Vodniki

Kako zgraditi ROM po meri iz odprtokodnega projekta Android

Če ste seznanjeni z ukoreninjenjem telefona Android ali prenosom ROM-ov po meri, kot je zelo priljubljen CyanogenMod ali njegov naslednik Lineage OS, ste se morda vprašali - kako ljudje gradijo te ROM-je? Koliko dela natančno gre za razvoj prilagojenega ROM-a?

Ta vodnik vas bo vodil skozi osnove razvoja lastnega ROM-a Android po meri. Treba je opozoriti, da gre za ogromno podjetje - če nimate nič izkušenj s kodiranjem ali norčevanjem v terminalih Linuxa, boste morda želeli pridobiti nekaj znanja, preden se potopite v ta globoki konec. Če pa imate vsaj osnovno predstavo o teh stvareh, bom poskušal stvari razložiti čim bolj preprosto, da boste lahko nadaljevali.

V bistvu to, kar počnemo, je prenos datotek surov Izvorna koda Android (AOSP) in jo spreminjamo po svojih željah. Ker je za različne naprave na voljo toliko virov, se bo v tem priročniku preprosto skliceval na mojster vir znan kot AOSP (Android Open Source Project).

Zdaj je stvar AOSP ta, da je čista izvorna koda ne vključuje lastnosti strojne opreme, specifične za napravo. Laično gledano, strojna oprema, kot sta fotoaparat in grafični procesor, pri razvoju z AOSP ne bo delovala "izven škatle". Dejansko se vaša naprava niti brez teh binarnih datotek strojne opreme ne bo zagnala.

Če razvijate telefon z blagovno znamko Google (Pixel, Nexus itd.), Lahko binarne datoteke strojne opreme najdete neposredno pri Googlu, ta vodnik pa vas bo vodil skozi njihovo pridobivanje in vgradnjo v ROM. Če pa razvijate ROM za telefon z blagovno znamko (Sony, Samsung itd.) ... blagoslovite svoje srce, ker vas čaka vožnja.

Nekateri proizvajalci imajo svoje odprtokodne projekte ali izdajajo razvojna orodja za potencialne razvijalce, medtem ko drugi proizvajalci tesno pokrivajo svoje lastniške kode. Tu je kratek seznam odprtokodnih projektov bolj priljubljenih proizvajalcev:

Samsung Open Source Release Center

Sony Developer World

Podpora Lenovo

Huawei odprtokodni center za izdajo

Razvijalci Motorola

Če tega ne odstranimo, nadaljujmo s predpostavko, da za napravo Google Pixel gradimo ROM za najosnovnejšo, vanilijevo Android izkušnjo. S tem znanjem pod pasom se boste lahko sami razvejali in začeli razvijati prilagojene različice ROM-ov določenega proizvajalca.

Zahteve za ta vodnik:

  • Android Open Source Project
  • Telefon Pixel XL ali Android emulator za Linux
  • 64-bitni operacijski sistem Linux - Ubuntu ali Linux Mint sta najbolj zaželena distrozija, medtem ko je bil BBQLinux razvit posebej za razvijalce Androida.
  • Python
  • Močan računalnik (sestavljanje kode traja veliko pomnilnika in prostora!)

Nastavitev gradbenega okolja

Začnimo z nastavitvijo emulatorja Android na vašem računalniku Linux. Ne glede na to, ali imate napravo Google Pixel XL, je vedno najbolj varno preizkusiti svoj novi ROM na emulatorju Android prej utripa v vašo napravo. Moja osebna najljubša je Genymotion, zato vas bom vodil skozi namestitev tega emulatorja. Lahko pa si ogledate tudi ta vodnik "Najboljši emulatorji za Android", saj ima večina tudi združljivost z Linuxom.

Pojdite na spletno mesto Genymotion, registrirajte račun, ga preverite po e-pošti in prenesite izvršljivo datoteko na namizje Linuxa.

Zdaj odprite terminal Linux in vnesite:

Chmod + x genymotion-xxxxx.bin (xxxx zamenjajte s številko različice v imenu datoteke)

./genymotion-xxxxxx.bin

Pritisnite Y. da ustvarite imenik Genymotion. Zdaj vnesite v terminal:

cd genymotion && ./genymotion

Zdaj vas bo pozval, da začnete postopek namestitve, zato še naprej kliknite Naprej, dokler ne pridete do okna Dodaj navidezne naprave. Izberite »Pixel XL« pod možnostjo Model naprave in nato dokončajte namestitev. Navidezno napravo lahko preizkusite, če želite, v bistvu bo to, kot da imate telefon Pixel XL na namizju.

Zdaj nastavimo Python:

$ apt-get namestite python

Zdaj moramo na vašem računalniku Linux nastaviti Java Development Kit. Odprite terminal Linux in vnesite naslednje ukaze:

$ sudo apt-get posodobitev

$ sudo apt-get namestite openjdk-8-jdk

Zdaj boste morali sistem Linux konfigurirati tako, da omogoča dostop do naprav USB. V terminalu Linux zaženite naslednjo kodo:

S tem boste prenesli zahtevano datoteko 51-android.txt, ki omogoča dostop do zgoraj omenjene naprave USB. Odprite datoteko .txt in jo spremenite tako, da bo vključevala vaše uporabniško ime za Linux, nato datoteko .txt postavite na naslednje mesto: (kot root uporabnik). Zdaj priključite napravo v računalnik prek USB-ja, da bodo nova pravila samodejno začela veljati.

Prenos vira Android

AOSP gostuje na Gitu, zato bomo za komunikacijo z Gitom uporabili orodje Repo.

Najprej moramo nastaviti mapo / bin v vašem domačem imeniku. V terminal Linux vnesite naslednje ukaze:

$ mkdir ~ / bin

$ PATH = ~ / bin: $ PATH

Zdaj bomo naložili orodje Repo, zato vtipkajte v terminal Linux:

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

$ chmod a + x ~ / bin / repo

Ko je Repo nameščen, moramo zdaj ustvariti prazen imenik za vaše delovne datoteke. Torej to vnesite v terminal Linux:

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

Zdaj bomo Git konfigurirali z vašim imenom in e-poštnim naslovom - uporabite naslov Gmail, ki ga redno preverjate, sicer ne boste mogli uporabljati orodja za pregled kode Gerrit.

$ git config –global user.name “Vaše ime”

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

Zdaj bomo Repu rekli, naj iz Gita potegne najnovejši glavni manifest AOSP:

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

Če bo to uspešno izvedeno, boste prejeli sporočilo, da je bil Repo inicializiran v vašem delovnem imeniku. Našli boste tudi.repo " v odjemalskem imeniku. Torej, zdaj bomo naložili izvorno drevo za Android z:

$ repo sinhronizacija

Izdelava vira Android

Tu pridejo v poštev strojne datoteke, omenjene na začetku tega vodnika. Pojdimo na stran gonilnikov AOSP in naložimo binarne datoteke Pixel XL za Android 7.1.0 (NDE63P). Naložiti želite sliko prodajalca in komponente strojne opreme. Ti so v obliki stisnjenih arhivov, zato jih izvlecite na namizje in zaženite samorazvlečni skript iz korenske mape. Izberite, da namestite binarne datoteke v koren datoteke WORKING_DIRECTORY, ki smo jo ustvarili prej.

Zdaj vtipkajte v svoj terminal Linux:

$ naredite clobber

$ source build / envsetup.sh

Zdaj bomo izbrali cilj za gradnjo, zato vnesite:

$ kosilo aosp_marlin-userdebug

$ setpaths

$ make –j4

Tam smo zdaj "zgradili" Android ROM iz vira. Preizkusimo ga torej v emulatorju, tako da vtipkamo v terminal:

$ emulator

Zato se malo poigrajte v emulatorju. Kot lahko vidite, je povsem vanilijska izkušnja Androida zelo majhna in zato proizvajalci AOSP prilagodijo svojim potrebam. Torej ti lahko Flash, ki smo ga pravkar vgradili v vašo napravo, če želite, vendar brez dodajanja izboljšav bi bila povsem vanilijska izkušnja Androida zelo dolgočasna.

Torej, kaj bodo proizvajalci običajno storili z AOSP, ga razkrijejo, dodajo svoje lastniške binarne datoteke, prilagodijo uporabniški vmesnik, dodajo zagonski logotip itd. Proizvajalec v bistvu samo prebarva osnovni Android ROM in tako bo to tudi vaš naslednji cilj .

Ostanite z nami, saj bo drugi del tega vodnika dodal pisave, teme in zagonsko animacijo v ROM!

$config[zx-auto] not found$config[zx-overlay] not found