Guider

Hvordan lage en tilpasset ROM fra Android Open Source Project

Hvis du er kjent med å rote Android-telefonen din eller laste ned tilpassede ROM-er, for eksempel den svært populære CyanogenMod eller dens etterfølger Lineage OS, har du kanskje lurt på - hvordan bygger folk disse ROM-ene? Hvor mye arbeid går nøyaktig med å utvikle en tilpasset ROM?

Denne guiden vil lede deg gjennom det grunnleggende om å utvikle din egen tilpassede Android ROM. Det bør bemerkes at dette er en massiv oppgave - hvis du ikke har noen erfaring med å kode eller lure deg rundt i Linux-terminaler, kan det være lurt å få litt kunnskap under beltet før du dykker inn i denne dype enden. Men hvis du i det minste har en grunnleggende ide om disse tingene, vil jeg prøve å forklare ting så enkelt som mulig, slik at du kan følge med.

I utgangspunktet er det å laste ned Android kildekode (AOSP) og endre den etter vår smak. Fordi det er så mange kilder å velge mellom for forskjellige enheter, vil denne guiden ganske enkelt referere til herre 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 deg 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 dem og bygge dem inn i ROM-en din. Men hvis du utvikler en ROM for en telefonnummer med merkevare (Sony, Samsung, osv.) ... vel, velsign hjertet ditt, fordi du er på tur.

Noen produsenter har egne open source-prosjekter eller frigjør 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 antagelsen 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 distribusjonene, 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 veileder deg gjennom installasjonen av den aktuelle emulatoren. Du kan imidlertid også sjekke ut denne guiden "Beste Android-emulatorer", da de fleste av dem også har Linux-kompatibilitet.

Gå over til Genymotion-nettstedet, 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 Y for å opprette Genymotion-katalogen. Skriv nå 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 alternativet 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 USB-enhetstilgang. 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 //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 [email protected]

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

$ repo init -u //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 inne i klientkatalogen. Så nå laster vi ned Android-kildetreet med:

$ repo sync

Bygg Android-kilden

Det er her maskinvarebinærene som er nevnt i begynnelsen av denne guiden, kommer til spill. La oss gå over til AOSP-driversiden og laste 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 ditt og kjør det selvutpakkende skriptet fra rotmappen. Velg å installere binærfiler til roten til WORKING_DIRECTORY vi opprettet tidligere.

Skriv inn 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, etc. 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!

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