Sådan oprettes en brugerdefineret ROM fra Android Open Source Project

kilde kendt som AOSP (Android Open Source Project) .



Nu er det ved AOSP, at den rene kildekode inkluderer ikke enhedsspecifikke hardwareejendomme. I lægmandssprog fungerer hardware som dit kamera og GPU ikke 'ud af kassen', når du udvikler med AOSP. Faktisk starter din enhed ikke engang uden disse hardwarebinarer.

Hvis du udvikler til en Google-mærketelefon (Pixel, Nexus osv.), Kan du finde hardwarebinarier direkte fra Google , og denne vejledning vil lede dig gennem at skaffe og bygge dem ind i din ROM. Men hvis du udvikler en ROM til en brand-telefon (Sony, Samsung osv.) ... velsign dit hjerte, fordi du er på udkig efter en tur.



Nogle producenter har deres egne open source-projekter eller frigiver udviklingsværktøjer til potentielle udviklere, mens andre producenter holder tæt på deres proprietære koder. Her er en kort liste over open source-projekter fra de mere populære producenter:



Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola-udviklere



Med det ude af vejen, lad os fortsætte under den antagelse, at vi bygger en ROM til den mest basale, vanilje Android-oplevelse til en Google Pixel-enhed. Med denne viden inden for bæltet, vil du være i stand til at forgrene dig selv og begynde at udvikle tilpassede versioner af specifikke producents ROM'er.

Krav til denne vejledning:

  • Android Open Source-projekt
  • Pixel XL-telefon eller en Android-emulator til Linux
  • 64-bit Linux-operativsystem - Ubuntu eller Linux Mint er de mest nybegyndervenlige distroer, hvorimod BBQLinux blev udviklet specifikt med Android-udviklere i tankerne.
  • Python
  • En bøf computer (kompilering af kode tager meget hukommelse og plads!)

Opsætning af dit bygningsmiljø

Lad os begynde med at konfigurere Android-emulatoren på din Linux-maskine. Uanset om du har en Google Pixel XL-enhed, er det altid sikrest at prøve din nye ROM på en Android-emulator Før blinker det til din enhed. Min personlige favorit er Genymotion, så jeg leder dig igennem installationen af ​​den pågældende emulator. Du kan dog også tjekke denne vejledning “ Bedste Android-emulatorer ”, Da de fleste af dem også har Linux-kompatibilitet.

Gå over til Genymotion-websted , registrer en konto, bekræft den via e-mail, og download den eksekverbare fil til dit Linux-skrivebord.



Åbn nu en Linux-terminal, og skriv:

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

Trykke OG for at oprette Genymotion-biblioteket. Skriv nu terminalen:

cd genymotion && ./genymotion

Nu vil det bede dig om at starte installationsprocessen, så fortsæt med at klikke på Næste, indtil du kommer til vinduet Tilføj virtuelle enheder. Vælg 'Pixel XL' under Device Model option, og afslut derefter installationen. Du kan teste den virtuelle enhed, hvis du vil, det vil stort set være som at have en Pixel XL-telefon på dit skrivebord.

Lad os nu oprette Python:

$ apt-get installer python

Nu skal vi konfigurere Java Development Kit på din Linux-maskine. Åbn Linux-terminalen, og skriv følgende kommandoer:

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

Nu bliver du nødt til at konfigurere Linux-systemet, så det giver adgang til USB-enheder. Kør følgende kode i Linux-terminalen:

Dette downloader den påkrævede 51-android.txt-fil, der giver ovennævnte USB-enhed adgang. Åbn .txt-filen, og rediger den, så den inkluderer dit Linux-brugernavn, og placer derefter .txt-filen på følgende placering: (som rodbruger ). Tilslut nu din enhed til din computer via USB, så de nye regler automatisk træder i kraft.

Download af Android-kilden

AOSP er hostet på Git, så vi bruger et værktøj kaldet Repo til at kommunikere med Git.

Først skal vi konfigurere en / bin-mappe i din hjemmekatalog. Skriv følgende kommandoer i Linux-terminalen:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

Nu downloader vi Repo-værktøjet, så skriv ind i Linux-terminalen:

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

Når Repo er installeret, skal vi nu oprette en tom mappe til at holde dine arbejdsfiler. Så skriv dette i Linux-terminalen:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Nu konfigurerer vi Git med dit navn og din e-mail-adresse - brug en Gmail-adresse, som du kontrollerer regelmæssigt , ellers kan du ikke bruge Gerrit-kodevurderingsværktøjet.

$ git config –global bruger.navn “Dit navn”
$ git config –global user.email
you@gmail.com

Nu fortæller vi Repo at trække den nyeste master manifest af AOSP fra Git:

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

Hvis det gøres med succes, modtager du en besked om, at Repo er initialiseret i din arbejdsmappe. Du finder også en ' .repo ” bibliotek inde i klientmappen. Så nu downloader vi Android-kildetræet med:

$ repo synkronisering

Opbygning af Android-kilden

Det er her, hardware-binærfiler, der er nævnt i begyndelsen af ​​denne vejledning, kommer i spil. Lad os gå over til AOSP-drivere side og download Pixel XL-binære filer til Android 7.1.0 (NDE63P). Du vil downloade både leverandørbilledet og hardwarekomponenterne. Disse kommer som komprimerede arkiver, så pak dem ud på dit skrivebord, og kør det selvudpakkende script fra rodmappen. Vælg at installere binærfiler til roden til WORKING_DIRECTORY, vi oprettede tidligere.

Skriv nu ind i din Linux-terminal:

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

Nu vælger vi det mål, der skal bygges, så skriv:

$ frokost aosp_marlin-userdebug
$ setpaths
$ make –j4

Der har vi nu 'bygget' en Android ROM fra kilden. Så lad os teste det i emulatoren ved at skrive i terminalen:

$ emulator

Så leg lidt i emulatoren. Som du kan se, er en ren vanilje Android-oplevelse ret minimal, og det er grunden til, at producenter tilpasser AOSP til deres behov. Så dig kunne flash denne ROM, vi lige har bygget til din enhed, hvis du vil, men uden at tilføje forbedringer, ville en rent vanilje Android-oplevelse faktisk være en meget kedelig ting.

Så hvad producenter typisk vil gøre med AOSP, er at forkere det, tilføje deres egne proprietære binære filer, tilpasse brugergrænsefladen, tilføje et bootlogo osv. Producenten maler stort set bare Android ROM på lager, og så vil det også være dit næste mål .

Hold dig opdateret, da anden del af denne vejledning vil gå gennem tilføjelse af skrifttyper, temaer og en boot-animation til din ROM!

5 minutter læst