Hur man bygger en anpassad ROM från Android Open Source Project

källa känd som AOSP (Android Open Source Project) .



Nu är det med AOSP att den rena källkoden ingår inte enhetsspecifika hårdvaruegenskaper. I lekmanns termer fungerar hårdvara som din kamera och GPU inte 'ur lådan' när du utvecklar med AOSP. Faktum är att din enhet inte ens startar utan dessa maskinvarubinärer.

Om du utvecklar en telefon från Google (Pixel, Nexus osv.) Kan du hitta maskinvarubinärerna direkt från Google , och den här guiden guidar dig genom att skaffa och bygga dem i din ROM. Men om du utvecklar en ROM för en varumärketelefon (Sony, Samsung, etc) ... välsigna ditt hjärta, för du är på väg.



Några tillverkare har egna projekt med öppen källkod eller släpper utvecklingsverktyg för blivande utvecklare, medan andra tillverkare håller tätt lock på sina egna koder. Här är en kort lista med öppen källkodsprojekt från de mer populära tillverkarna:



Samsung Open Source Release Center
Sony Developer World
Lenovos support
Huawei Open Source Release Center
Motorola-utvecklare



Med det ur vägen, låt oss fortsätta under antagandet att vi bygger en ROM för den mest grundläggande vanilj Android-upplevelsen för en Google Pixel-enhet. Med denna kunskap inom ramen kan du förgrena dig själv och börja utveckla anpassade versioner av specifika tillverkares ROM-skivor.

Krav för denna guide:

  • Android Open Source Project
  • Pixel XL-telefon eller en Android-emulator för Linux
  • 64-bitars Linux-operativsystem - Ubuntu eller Linux Mint är de mest nybörjarvänliga distributionerna, medan BBQLinux utvecklades speciellt med tanke på Android-utvecklare.
  • Pytonorm
  • En nötkött dator (sammanställning av kod tar mycket minne och utrymme!)

Ställa in din byggmiljö

Låt oss börja med att ställa in Android-emulatorn på din Linux-maskin. Oavsett om du har en Google Pixel XL-enhet eller inte, är det alltid säkrast att prova din nya ROM på en Android-emulator innan blinkar den till din enhet. Min personliga favorit är Genymotion, så jag guidar dig genom att installera just den emulatorn. Du kan dock också kolla in den här guiden “ Bästa Android-emulatorer ”, Eftersom de flesta av dem också har Linux-kompatibilitet.

Gå över till Genymotion webbplats , registrera ett konto, verifiera det via e-post och ladda ner den körbara filen till ditt Linux-skrivbord.



Öppna nu en Linux-terminal och skriv:

Chmod + x genymotion-xxxxx.bin (ersätt xxxx med versionsnumret i filnamnet)
./genymotion-xxxxxx.bin

Tryck OCH för att skapa Genymotion-katalogen. Skriv nu in terminalen:

cd genymotion && ./genymotion

Nu kommer den att be dig att börja installationsprocessen, så fortsätt bara att klicka på Nästa tills du kommer till fönstret Lägg till virtuella enheter. Välj 'Pixel XL' under alternativet Enhetsmodell och slutför sedan installationen. Du kan testa den virtuella enheten om du vill, det blir i princip som att ha en Pixel XL-telefon på skrivbordet.

Låt oss nu ställa in Python:

$ apt-get install python

Nu måste vi ställa in Java Development Kit på din Linux-maskin. Öppna Linux-terminalen och skriv följande kommandon:

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

Nu måste du konfigurera Linux-systemet så att USB-enhet får åtkomst. Kör följande kod i Linux-terminalen:

Detta hämtar den nödvändiga 51-android.txt-filen som möjliggör åtkomst till ovan nämnda USB-enhet. Öppna .txt-filen och ändra den så att den inkluderar ditt Linux-användarnamn och placera sedan .txt-filen på följande plats: (som den root-användare ). Anslut nu din enhet till din dator via USB så att de nya reglerna automatiskt träder i kraft.

Hämtar Android-källan

AOSP är värd för Git, så vi ska använda ett verktyg som heter Repo för att kommunicera med Git.

Först måste vi ställa in en / bin-mapp i din hemkatalog. Skriv följande kommandon i Linux-terminalen:

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

Nu laddar vi ner verktyget Repo, så skriv in Linux-terminalen:

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

Efter att Repo har installerats måste vi nu skapa en tom katalog för att hålla dina arbetsfiler. Så skriv detta i Linux-terminalen:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Nu konfigurerar vi Git med ditt namn och din e-postadress - använd en Gmail-adress som du kontrollerar regelbundet , annars kommer du inte att kunna använda Gerrit-kodgranskningsverktyget.

$ git config –global user.name “Ditt namn”
$ git config –global user.email
you@gmail.com

Nu berättar vi för Repo att dra det senaste master manifestet av AOSP från Git:

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

Om du lyckas får du ett meddelande om att Repo har initierats i din arbetskatalog. Du hittar också en .repo ” katalog i klientkatalogen. Så nu laddar vi ner Android-källträdet med:

$ reposynk

Bygga Android-källan

Det är här hårdvarubinärerna som nämns i början av den här guiden spelar in. Låt oss gå över till AOSP-drivrutiner sida och ladda ner Pixel XL-binärer för Android 7.1.0 (NDE63P). Du vill ladda ner både leverantörsavbildningen och hårdvarukomponenterna. Dessa kommer som komprimerade arkiv, så extrahera dem till skrivbordet och kör det självutdragande skriptet från rotmappen. Välj att installera binärfilerna till roten till WORKING_DIRECTORY som vi skapade tidigare.

Skriv nu in i din Linux-terminal:

$ gör clobber
$ source build / envsetup.sh

Nu väljer vi målet att bygga, så skriv:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

Där har vi nu 'byggt' en Android-ROM från källan. Så låt oss testa det i emulatorn genom att skriva in terminalen:

$ emulator

Så leka lite i emulatorn. Som du kan se är en ren vanilj Android-upplevelse ganska minimal, och det är därför tillverkarna anpassar AOSP efter deras behov. Så du skulle kunna flasha den här ROM som vi just byggt till din enhet om du vill, men utan att lägga till några förbättringar skulle en rent vanilj Android-upplevelse verkligen vara en mycket tråkig sak.

Så vad tillverkare vanligtvis gör med AOSP är att gaffla det, lägga till egna proprietära binärfiler, anpassa användargränssnittet, lägga till en startlogotyp, etc. Tillverkaren målar i princip bara över Android-ROM-lager, och så blir det också ditt nästa mål .

Håll dig uppdaterad, eftersom den andra delen av den här guiden går igenom att lägga till teckensnitt, teman och en startanimering till din ROM!

5 minuter läst