Slik bygger du en egendefinert ROM fra Android Open Source Project
Hvis du er kjent med å rote din Android-telefon eller laste ned egendefinerte ROM-er, for eksempel den svært populære CyanogenMod eller dens etterfølger Lineage OS, har du kanskje lurt på hvordan folk bygger disse ROMene? Hvor mye arbeid går akkurat i å utvikle en tilpasset ROM?
Denne veiledningen vil gå deg gjennom det grunnleggende om å utvikle din egen tilpassede Android ROM. Det bør bemerkes at dette er et enormt foretak - hvis du har null erfaring med koding eller lurer rundt i Linux-terminaler, vil du kanskje få litt kunnskap under beltet ditt før du dykker inn i denne dypen. Men hvis du har minst en grunnleggende ide om disse tingene, vil jeg prøve å forklare ting så enkelt som mulig, så du kan følge med.
I utgangspunktet hva vi gjør er å laste ned den røde Android kildekoden (AOSP) og endre den etter vår smak. Fordi det er så mange kilder å velge mellom for forskjellige enheter, vil denne veiledningen bare referere til hovedkilden kjent som AOSP (Android Open Source Project) .
Nå er det med AOSP at den rene kildekoden ikke inneholder enhetsspesifikke maskinvareegenskaper. I lekmannens vilkår, vil maskinvare som kameraet ditt og GPU ikke fungere ut av esken når det utvikles med AOSP. Faktisk vil enheten din ikke engang starte opp uten disse maskinvarebinariene.
Hvis du utvikler for en Google-merket telefon (Pixel, Nexus, osv.), Kan du finne maskinvarebinariene direkte fra Google, og denne veiledningen vil gå deg gjennom å skaffe og bygge dem inn i ROMen din. Men hvis du utvikler en ROM for en merkenavnstelefon (Sony, Samsung, etc) vel, velsigne ditt hjerte, fordi du er på vei.
Noen produsenter har egne åpen kildeprosjekter eller frigjør utviklingsverktøy for utviklere, mens andre produsenter holder et tett deksel på deres 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
Lenovo Support
Huawei Open Source Release Center
Motorola Developers
Med det ut 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 ditt, vil du kunne forgrene seg 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 nybegynnerlige distrosene, mens BBQLinux ble utviklet spesielt med Android-utviklere i tankene.
- Python
- En tøff datamaskin (kompileringskode 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, er det alltid tryggest å prøve den nye ROM-en din på en Android-emulator før du blinker den til enheten. Min personlige favoritt er Genymotion, så jeg går deg gjennom å installere den aktuelle emulatoren. Du kan imidlertid også sjekke ut denne veiledningen Best Android Emulators for Windows i 2017, da de fleste også har Linux-kompatibilitet.
Gå over til Genymotions nettside, registrer en konto, bekreft den via e-post, og last ned den kjørbare til Linux-skrivebordet.
Åpne nå en Linux-terminal, og skriv:
Chmod + x genymotion-xxxxx.bin (erstatt xxxx med versionsnummeret i filnavnet)
./genymotion-xxxxxx.bin
Trykk på Y for å lage Genymotion-katalogen. Skriv inn i terminalen:
cd genymotion && ./genymotion
Nå vil det be deg om å starte installeringsprosessen, så bare fortsett å klikke Neste til du kommer til vinduet Legg til virtuelle enheter. Velg Pixel XL under Device Model-alternativet, og fullfør installasjonen. Du kan teste den virtuelle enheten ut hvis du vil, det vil i utgangspunktet være som å ha en Pixel XL-telefon på skrivebordet ditt.
PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke herLa 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-enhet. Kjør følgende kode i Linux-terminalen:
Dette vil laste ned den nødvendige 51-android.txt filen som tillater den nevnte USB-enheten tilgang. Åpne .txt-filen og modifiser den for å inkludere ditt Linux-brukernavn, og sett deretter .txt-filen på følgende sted: (som roten bruker ). Nå koble enheten til datamaskinen via USB for at de nye reglene automatisk skal tre i kraft.
Last ned Android-kilden
AOSP er vert for 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 din hjemmekatalog. Skriv inn følgende kommandoer i Linux-terminalen:
$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH
Nå vil vi laste ned Repo-verktøyet, så skriv inn i Linux-terminalen:
$ krølle 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. Skriv så inn dette i Linux-terminalen:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
Nå skal vi konfigurere Git med ditt navn og din e-postadresse - bruk en Gmail-adresse som du sjekker regelmessig, ellers vil du ikke kunne bruke Gerrit-kodevurderingsverktøyet.
$ git config-global brukernavn ditt navn
$ git config -global user.email [email protected]
Nå forteller vi Repo å trekke den nyeste mester manifestet av AOSP fra Git:
$ repo init -u https://android.googlesource.com/platform/manifest
Hvis du har gjort det, får du en melding om at Repo har blitt initialisert i arbeidskatalogen. Du finner også en .repo- katalog i klientkatalogen. Så nå skal vi laste ned Android-kildetreet med:
$ repo synkronisering
Bygg Android-kilden
Dette er hvor maskinvarebinariene nevnt i begynnelsen av denne veiledningen kommer inn i spill. La oss gå over til AOSP-driverens side og laste ned Pixel XL-binariene 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ærfilene til roten til WORKING_DIRECTORY vi opprettet tidligere.
Skriv inn din Linux-terminal:
$ gjør clobber
$ source build / envsetup.sh
Nå velger vi målet å bygge, så skriv inn:
$ lunsj aosp_marlin-userdebug
$ setpaths
$ make -j4
Der har vi nå bygget en Android ROM fra kilde. Så la oss teste det i emulatoren ved å skrive inn i terminalen:
$ emulator
Så spill rundt i emulatoren litt. Som du kan se, er en ren vanilje Android-opplevelse ganske minimal, og det er derfor produsenter tilpasser AOSP til deres behov. Så du kan blinke denne ROMen vi nettopp har bygget til enheten din, hvis du ville, men uten å legge til noen forbedringer, ville en ren vanilje Android-opplevelse være en veldig kjedelig ting.
Så hva produsenter vil vanligvis gjøre med AOSP er gaffel, legge til egne proprietære binærfiler, tilpasse brukergrensesnittet, legg til en oppstartslogo osv. Produsenten er i utgangspunktet bare maling over lager Android ROM, og det vil også være ditt neste mål. .
Hold deg oppdatert, som den andre delen av denne guiden vil gå gjennom å legge til fonter, temaer og en oppstartsanimasjon til ROMen din!
PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her