Hoe u een aangepast ROM bouwt vanuit Android Open Source Project

bron bekend als AOSP (Android Open Source Project) .



Het ding over de AOSP is dat de pure broncode niet inbegrepen apparaatspecifieke hardware-eigendommen. In termen van de leek, hardware zoals je camera en GPU zal niet 'out of the box' werken bij het ontwikkelen met de AOSP. In feite zal uw apparaat niet eens opstarten zonder deze hardware-binaire bestanden.

Als u zich ontwikkelt voor een telefoon van het merk Google (Pixel, Nexus, enzovoort), kunt u de binaire bestanden van de hardware vinden rechtstreeks van Google , en deze gids helpt u bij het verkrijgen en inbouwen ervan in uw ROM. Als u echter een ROM ontwikkelt voor een merktelefoon (Sony, Samsung, enz.) ... nou, zegen uw hart, want u staat op het punt een ritje te maken.



Sommige fabrikanten hebben hun eigen open-sourceprojecten of release-ontwikkeltools voor potentiële ontwikkelaars, terwijl andere fabrikanten hun eigen codes nauwlettend in de gaten houden. Hier is een korte lijst met open-sourceprojecten van de meer populaire fabrikanten:



Samsung Open Source Release Center
Sony Developer World
Lenovo-ondersteuning
Huawei Open Source Release Center
Motorola-ontwikkelaars



Nu we dat uit de weg hebben geruimd, gaan we ervan uit dat we een ROM bouwen voor de meest elementaire, vanille Android-ervaring voor een Google Pixel-apparaat. Met deze kennis onder je riem, kun je zelf vertakken en beginnen met het ontwikkelen van aangepaste versies van de ROM's van specifieke fabrikanten.

Vereisten voor deze gids:

  • Android Open Source-project
  • Pixel XL-telefoon of een Android-emulator voor Linux
  • 64-bits Linux-besturingssysteem - Ubuntu of Linux Mint zijn de meest newbie-vriendelijke distributies, terwijl BBQLinux is speciaal ontwikkeld met Android-ontwikkelaars in gedachten.
  • Python
  • Een stevige computer (het compileren van code kost veel geheugen en ruimte!)

Uw bouwomgeving opzetten

Laten we beginnen met het instellen van de Android-emulator op uw Linux-machine. Of u nu een Google Pixel XL-apparaat heeft of niet, het is altijd het veiligst om uw nieuwe ROM uit te proberen op een Android-emulator voordat knippert het naar uw apparaat. Mijn persoonlijke favoriet is Genymotion, dus ik zal je helpen bij het installeren van die specifieke emulator. U kunt echter ook deze handleiding raadplegen ' Beste Android-emulators ”, Aangezien de meeste ook Linux-compatibel zijn.

Ga naar de Genymotion-website , registreer een account, verifieer het via e-mail en download het uitvoerbare bestand naar uw Linux-desktop.



Open nu een Linux-terminal en typ:

Chmod + x genymotion-xxxxx.bin (vervang xxxx door het versienummer in de bestandsnaam)
./genymotion-xxxxxx.bin

druk op EN om de Genymotion-map te maken. Typ nu de terminal:

cd genymotion && ./genymotion

Nu zal het u vragen om het installatieproces te starten, dus blijf gewoon op Volgende klikken totdat u in het venster Virtuele apparaten toevoegen komt. Selecteer 'Pixel XL' onder de optie Apparaatmodel en voltooi de installatie. Je kunt het virtuele apparaat uitproberen als je wilt, het zal in feite zijn alsof je een Pixel XL-telefoon op je desktop hebt staan.

Laten we nu Python instellen:

$ apt-get install python

Nu moeten we de Java Development Kit op uw Linux-machine installeren. Open de Linux-terminal en typ de volgende opdrachten:

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

Nu moet u het Linux-systeem configureren om USB-apparaattoegang toe te staan. Voer de volgende code uit in de Linux-terminal:

Hiermee wordt het vereiste 51-android.txt-bestand gedownload waarmee het bovengenoemde USB-apparaat toegang krijgt. Open het .txt-bestand en wijzig het zodat het uw Linux-gebruikersnaam bevat, en plaats het .txt-bestand op de volgende locatie: (zoals de root-gebruiker ). Sluit nu uw apparaat via USB op uw computer aan om de nieuwe regels automatisch van kracht te laten worden.

De Android-bron downloaden

De AOSP wordt gehost op Git, dus we gaan een tool genaamd Repo gebruiken om met Git te communiceren.

Eerst moeten we een / bin-map in uw basismap instellen. Typ de volgende opdrachten in de Linux-terminal:

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

Nu zullen we de Repo-tool downloaden, dus typ in de Linux-terminal:

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

Nadat Repo is geïnstalleerd, moeten we nu een lege map maken voor uw werkbestanden. Dus typ dit in de Linux-terminal:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Nu gaan we Git configureren met je naam en e-mailadres - gebruik een Gmail-adres dat u regelmatig controleert , anders kunt u de Gerrit code-review tool niet gebruiken.

$ git config –global user.name “Jouw naam”
$ git config –global user.email
jij@gmail.com

Nu gaan we Repo vertellen om het nieuwste hoofdmanifest van AOSP uit Git te halen:

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

Als dit is gelukt, ontvangt u een bericht dat de opslagplaats is geïnitialiseerd in uw werkdirectory. U vindt ook een ' .repo ” directory in de client directory. Dus nu downloaden we de Android-broncodestructuur met:

$ repo-synchronisatie

Bouwen aan de Android-bron

Dit is waar de hardwarebinaire bestanden die aan het begin van deze handleiding worden genoemd, een rol gaan spelen. Laten we naar de AOSP-stuurprogramma's pagina en download de Pixel XL-binaire bestanden voor Android 7.1.0 (NDE63P). U wilt zowel de leveranciersafbeelding als de hardwarecomponenten downloaden. Deze komen als gecomprimeerde archieven, dus pak ze uit naar uw bureaublad en voer het zelfuitpakkende script uit vanuit de hoofdmap. Kies ervoor om de binaire bestanden te installeren in de root van de WORKING_DIRECTORY die we eerder hebben gemaakt.

Typ nu in je Linux-terminal:

$ klap maken
$ source build / envsetup.sh

Nu kiezen we het doel dat we willen bouwen, dus typ:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

Daar hebben we nu een Android ROM 'gebouwd' vanaf de bron. Laten we het dus testen in de emulator door in de terminal te typen:

$ emulator

Dus speel een beetje in de emulator. Zoals je kunt zien, is een puur vanille Android-ervaring vrij minimaal, en daarom passen fabrikanten de AOSP aan hun behoeften aan. Dus jij kon flash deze ROM die we zojuist op je apparaat hebben gebouwd als je dat wilt, maar zonder enige verbeteringen toe te voegen, zou een puur vanille Android-ervaring inderdaad heel saai zijn.

Dus wat fabrikanten normaal gesproken doen met de AOSP is het splitsen, hun eigen gepatenteerde binaire bestanden toevoegen, de gebruikersinterface aanpassen, een opstartlogo toevoegen, enz. Fabrikanten schilderen in feite gewoon over de standaard Android ROM, en dat wordt dus ook je volgende doel .

Blijf op de hoogte, want in het tweede deel van deze gids zullen lettertypen, thema's en een opstartanimatie aan je ROM worden toegevoegd!

5 minuten gelezen