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

om du är bekant med böka din Android – telefon eller ladda ner anpassade ROM, såsom den mycket populära CyanogenMod eller dess efterföljare Lineage OS, du kanske har undrat – hur människor bygga dessa Rom? Hur mycket arbete går exakt till att utveckla en anpassad ROM?

den här guiden går igenom grunderna för att utveckla din egen anpassade Android-ROM. Det bör noteras att detta är ett massivt åtagande – om du har noll erfarenhet av att koda eller lura dig i Linux-terminaler, kanske du vill få lite kunskap under ditt bälte innan du dyker in i denna djupa ände. Men om du har åtminstone en grundläggande uppfattning om dessa saker, jag kommer att försöka förklara saker så enkelt som möjligt, så att du kan följa med.

i grund och botten vad vi gör är att ladda ner den råa Android-källkoden (AOSP) och ändra den till vår smak. Eftersom det finns så många källor att välja mellan för olika enheter, kommer den här guiden helt enkelt att referera till huvudkällan som kallas AOSP (Android Open Source Project).

nu är saken med AOSP att den rena källkoden inte innehåller enhetsspecifika hårdvaruinnehav. I lekman kommer hårdvara som din kamera och GPU inte att fungera ”ur lådan” när du utvecklar med AOSP. Faktum är att din enhet inte ens startar utan dessa hårdvarubinärer.

om du utvecklar för en Google-märkt telefon (Pixel, Nexus, etc) kan du hitta hårdvaru binärer direkt från Google, och den här guiden kommer att gå igenom att få och bygga dem i din ROM. Men om du utvecklar en ROM för en varumärkestelefon (Sony, Samsung, etc)… välsigna ditt hjärta, för att du är ute efter en åktur.

vissa tillverkare har egna open source-projekt eller släpper utvecklingsverktyg för blivande utvecklare, medan andra tillverkare håller ett tätt lock på sina egna koder. Här är en kort lista över open source-projekt från de mer populära tillverkarna:

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

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 under bältet, kommer du att kunna förgrena sig på egen hand och börja utveckla anpassade versioner av specifika tillverkarens Rom.

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 specifikt med Android-utvecklare i åtanke.
  • Python
  • en biffig dator (kompileringskod 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 du blinkar den till din enhet. Min personliga favorit är Genymotion, så jag går igenom att installera den speciella emulatorn. Du kan dock också kolla in den här guiden ”bästa Android-emulatorer”, eftersom de flesta också har Linux-kompatibilitet.

gå över till Genymotion-webbplatsen, 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 på Y för att skapa Genymotion-katalogen. Skriv nu in terminalen:

cd genymotion && ./ genymotion

nu kommer det att be dig att börja installationsprocessen, så fortsätt bara klicka på Nästa tills du kommer till fönstret Lägg till Virtuella enheter. Välj ”Pixel XL” under Enhetsmodellalternativ och slutför sedan installationen. Du kan testa den virtuella enheten om du vill, det kommer i princip att vara 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 installera Java Development Kit på din Linux-maskin. Öppna Linux-terminalen och skriv följande kommandon:

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

nu måste du konfigurera Linux-systemet för att tillåta åtkomst till USB-enheter. Kör följande kod i Linux-terminalen:

detta kommer att ladda ner den nödvändiga 51-android.txt-fil som tillåter ovannämnda USB-enhet åtkomst. Öppna .txt-fil och ändra den för att inkludera ditt Linux-användarnamn, placera sedan .txt-fil på följande plats: (som root-användare). Anslut nu enheten till din dator via USB för att de nya reglerna automatiskt ska träda i kraft.

ladda ner Android-källan

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

först måste vi installera en / bin-mapp i din hemkatalog. Skriv följande kommandon i Linux-terminalen:

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

nu kommer vi att ladda ner Repo-verktyget, så skriv in Linux-terminalen:

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

när Repo är installerat måste vi nu skapa en tom katalog för att hålla dina arbetsfiler. Så skriv in 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 code-review-verktyget.

$ git config-global användare.namn ”Ditt namn”
$ git config-global användare.e-post [email protected]

nu ska vi berätta för Repo att dra det senaste mastermanifestet för AOSP från Git:

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

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

$ repo sync

bygga Android-källan

det är här hårdvarubinarierna som nämns i början av den här guiden spelar in. Låt oss gå över till AOSP drivers-sidan och ladda ner Pixel XL-binärerna för Android 7.1.0 (NDE63P). Du vill ladda ner både leverantörens bild 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ärerna till roten till WORKING_DIRECTORY som vi skapade tidigare.

Skriv nu in din Linux-terminal:

$ gör clobber
$ källa 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 i terminalen:

$ emulator

så spela lite i emulatorn. Som du kan se är en ren vanilj Android-upplevelse ganska minimal, och det är därför tillverkare anpassar AOSP till deras behov. Så du kan blinka den här ROM-skivan som vi just byggt till din enhet om du ville, men utan att lägga till några förbättringar skulle en ren vanilj Android-upplevelse vara en väldigt tråkig sak.

så vad tillverkare vanligtvis gör med AOSP är gaffel det, lägg till egna egna binärer, anpassa användargränssnittet, Lägg till en Startlogo etc. Tillverkarens i princip bara måla över lager Android ROM, och så blir det ditt nästa mål också.

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

Lämna ett svar

Din e-postadress kommer inte publiceras.