Vejledninger

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

Hvis du er fortrolig med at rodfæste din Android-telefon eller downloade brugerdefinerede ROM'er, såsom den meget populære CyanogenMod eller dens efterfølger Lineage OS, har du måske spekuleret på - hvordan bygger folk disse ROM'er? Hvor meget arbejde går der nøjagtigt i at udvikle en tilpasset ROM?

Denne guide fører dig gennem det grundlæggende i at udvikle din egen brugerdefinerede Android ROM. Det skal bemærkes, at dette er en massiv opgave - hvis du har nul erfaring med kodning eller narre i Linux-terminaler, vil du måske få lidt viden under dit bælte, inden du dykker ned i denne dybe ende. Men hvis du i det mindste har en grundlæggende idé om disse ting, vil jeg forsøge at forklare tingene så simpelt som muligt, så du kan følge med.

Grundlæggende er det, vi laver, at downloade Android-kildekode (AOSP) og ændre den efter vores smag. Fordi der er så mange kilder at vælge imellem for forskellige enheder, refererer denne guide simpelthen til mestre 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 telefon med Google-mærke (Pixel, Nexus osv.), Kan du finde hardwarebinarierne direkte fra Google, og denne vejledning fører dig gennem at hente og opbygge dem i din ROM. Men hvis du udvikler en ROM til en brand-telefon (Sony, Samsung osv.) ... godt, 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, mens 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 gennem 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-webstedet, 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 (erstat xxxx med versionsnummeret i filnavnet)

./genymotion-xxxxxx.bin

Trykke Y 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 skal du konfigurere Linux-systemet, så det giver adgang til USB-enheder. Kør følgende kode i Linux-terminalen:

Dette downloader den 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 i Linux-terminalen:

$ curl //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 for 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 [email protected]

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

$ repo init -u //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 hardwarebinarierne, der er nævnt i begyndelsen af ​​denne vejledning, kommer i spil. Lad os gå over til AOSP-driversiden og downloade Pixel XL-binære filer til Android 7.1.0 (NDE63P). Du vil downloade både leverandørbillede og hardwarekomponenter. Disse kommer som komprimerede arkiver, så pak dem ud på skrivebordet, og kør det selvudpakkende script fra rodmappen. Vælg at installere binærfilerne til roden til WORKING_DIRECTORY, vi oprettede tidligere.

Skriv nu ind i din Linux-terminal:

$ gør clobber

$ source build / envsetup.sh

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

$ frokost aosp_marlin-userdebug

$ sætstier

$ 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 rundt i emulatoren lidt. Som du kan se, er en ren vanille Android-oplevelse ret minimal, og det er grunden til, at producenter tilpasser AOSP til deres behov. Så dig kunne flash denne ROM, som 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 den anden del af denne vejledning gennemgår tilføjelse af skrifttyper, temaer og en boot-animation til din ROM!