Hvordan lage en tilpasset ROM fra Android Open Source Project

kilde kjent som AOSP (Android Open Source Project) .



Nå er tingen med AOSP at den rene kildekoden inkluderer ikke enhetsspesifikke maskinvareeiendommer. I lekmannsbetingelser fungerer ikke maskinvare som kameraet og GPUen din 'ut av boksen' når du utvikler med AOSP. Faktisk vil enheten din ikke engang starte uten disse maskinvarebinærene.

Hvis du utvikler en telefon fra Google (Pixel, Nexus osv.), Kan du finne maskinvarebinærene direkte fra Google , og denne guiden vil lede deg gjennom å skaffe og bygge dem inn i ROM-en. Men hvis du utvikler en ROM for en merkenavntelefon (Sony, Samsung osv.) ... vel, velsign hjertet ditt, fordi du er på tur.



Noen produsenter har egne open source-prosjekter eller lanserer utviklingsverktøy for potensielle utviklere, mens andre produsenter holder et tett lokk på sine proprietære koder. Her er en kort liste over open source-prosjekter fra de mer populære produsentene:



Samsung Open Source Release Center
Sony Developer World
Lenovos støtte
Huawei Open Source Release Center
Motorola-utviklere



Med det ute av veien, la oss fortsette under forutsetningen om at vi bygger en ROM for den mest grunnleggende, vanilje Android-opplevelsen, for en Google Pixel-enhet. Med denne kunnskapen under beltet, vil du kunne forgrene deg selv og begynne å utvikle tilpassede versjoner av spesifikke produsentens ROM-er.

Krav til denne veiledningen:

  • Android Open Source Project
  • Pixel XL-telefon eller en Android-emulator for Linux
  • 64-biters Linux-operativsystem - Ubuntu eller Linux Mint er de mest nybegynnervennlige distroene, mens BBQLinux ble utviklet spesielt med tanke på Android-utviklere.
  • Python
  • En stor datamaskin (kompilering av kode tar mye minne og plass!)

Sette opp byggemiljøet ditt

La oss begynne med å sette opp Android-emulatoren på Linux-maskinen din. Uansett om du har en Google Pixel XL-enhet eller ikke, er det alltid tryggest å prøve den nye ROM-en din på en Android-emulator før blinker den til enheten. Min personlige favoritt er Genymotion, så jeg vil lede deg gjennom installasjonen av den aktuelle emulatoren. Du kan imidlertid også sjekke ut denne guiden “ Beste Android-emulatorer ”, Ettersom de fleste av dem også har Linux-kompatibilitet.

Gå over til Nettstedet til Genymotion , registrer en konto, bekreft den via e-post, og last ned den kjørbare filen til Linux-skrivebordet.



Åpne nå en Linux-terminal, og skriv:

Chmod + x genymotion-xxxxx.bin (erstatt xxxx med versjonsnummeret i filnavnet)
./genymotion-xxxxxx.bin

trykk OG for å opprette Genymotion-katalogen. Skriv inn terminalen:

cd genymotion && ./genymotion

Nå vil den be deg om å starte installasjonsprosessen, så bare fortsett å klikke Neste til du kommer til vinduet Legg til virtuelle enheter. Velg “Pixel XL” under Enhetsmodell, og fullfør deretter installasjonen. Du kan teste den virtuelle enheten hvis du vil, det vil i utgangspunktet være som å ha en Pixel XL-telefon på skrivebordet.

La oss nå sette opp Python:

$ apt-get install python

Nå må vi sette opp Java Development Kit på Linux-maskinen din. Åpne Linux-terminalen og skriv inn følgende kommandoer:

$ sudo apt-get oppdatering
$ sudo apt-get install openjdk-8-jdk

Nå må du konfigurere Linux-systemet for å tillate tilgang til USB-enheter. Kjør følgende kode i Linux-terminalen:

Dette vil laste ned den nødvendige 51-android.txt-filen som tillater nevnte USB-enhetstilgang. Åpne .txt-filen og endre den for å inkludere Linux-brukernavnet ditt, og plasser deretter .txt-filen på følgende sted: (som rotbruker ). Koble nå enheten til datamaskinen din via USB for at de nye reglene automatisk skal tre i kraft.

Laste ned Android-kilden

AOSP er vert på Git, så vi skal bruke et verktøy som heter Repo for å kommunisere med Git.

Først må vi sette opp en / bin-mappe i hjemmekatalogen. Skriv inn følgende kommandoer i Linux-terminalen:

$ mkdir ~ / bin
$ PATH = ~ / søppel: $ PATH

Nå vil vi laste ned Repo-verktøyet, så skriv inn Linux-terminalen:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

Etter at Repo er installert, må vi nå opprette en tom katalog for å holde arbeidsfilene dine. Så skriv dette inn i Linux-terminalen:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Nå konfigurerer vi Git med navn og e-postadresse - bruk en Gmail-adresse som du sjekker regelmessig , ellers vil du ikke kunne bruke Gerrit-kodevurderingsverktøyet.

$ git config –global user.name “Your Name”
$ git config –global user.email
you@gmail.com

Nå skal vi fortelle Repo å trekke det siste master manifestet til AOSP fra Git:

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

Hvis du gjør det, mottar du en melding om at Repo er initialisert i arbeidskatalogen din. Du finner også en .repo ” katalog i klientkatalogen. Så nå laster vi ned Android-kildetreet med:

$ repo sync

Bygg Android-kilden

Det er her maskinvarebinariene som er nevnt i begynnelsen av denne veiledningen kommer til spill. La oss gå over til AOSP-drivere siden og last ned Pixel XL-binærfiler for Android 7.1.0 (NDE63P). Du vil laste ned både leverandørbildet og maskinvarekomponentene. Disse kommer som komprimerte arkiver, så trekk dem ut på skrivebordet og kjør det selvutpakkende skriptet fra rotmappen. Velg å installere binærfiler til roten til WORKING_DIRECTORY vi opprettet tidligere.

Skriv nå inn i Linux-terminalen din:

$ gjør clobber
$ kilde build / envsetup.sh

Nå velger vi målet vi vil bygge, så skriv:

$ lunsj aosp_marlin-userdebug
$ setpaths
$ make –j4

Der har vi nå 'bygget' en Android-ROM fra kilden. Så la oss teste det i emulatoren ved å skrive inn i terminalen:

$ emulator

Så spill deg litt i emulatoren. Som du kan se, er en ren vanilje Android-opplevelse ganske minimal, og det er derfor produsenter tilpasser AOSP til deres behov. Så du kunne flash denne ROMen vi nettopp bygde til enheten din hvis du ville, men uten å legge til forbedringer, ville en ren vanilje Android-opplevelse faktisk være en veldig kjedelig ting.

Så hva produsenter vanligvis vil gjøre med AOSP, er å forkaste den, legge til egne proprietære binærfiler, tilpasse brukergrensesnittet, legge til en oppstartslogo osv. Produsenten maler i utgangspunktet bare lager Android ROM, og så blir det også ditt neste mål .

Følg med, siden den andre delen av denne guiden vil gå gjennom å legge til skrifter, temaer og en boot-animasjon til ROM-en din!

5 minutter lest