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