jos olet perehtynyt juurtuvat Android puhelimen tai lataamalla mukautettuja ROM, kuten erittäin suosittu CyanogenMod tai sen seuraaja Lineage OS, olet ehkä ihmetellyt – miten ihmiset rakentaa näitä Rom? Kuinka paljon työtä tarkalleen menee kehittää räätälöityjä ROM?
tässä oppaassa käydään läpi oman muokatun Android-ROM-ROMin kehittämisen perusteet. On huomattava, että tämä on massiivinen hanke – Jos sinulla ei ole mitään kokemusta koodaamisesta tai pelleilystä Linux-päätteissä, saatat haluta saada tietoa vyön alle ennen kuin sukellat tähän syvään päähän. Mutta jos sinulla on edes perusajatus näistä asioista, yritän selittää asiat niin yksinkertaisesti kuin mahdollista, jotta voit seurata mukana.
pohjimmiltaan kyse on Androidin raaka-lähdekoodin (AOSP) lataamisesta ja muokkaamisesta mieleiseksemme. Koska on olemassa niin monia lähteitä valita eri laitteille, Tämä opas yksinkertaisesti viittaus master lähde tunnetaan AOSP (Android Open Source Project).
nyt AOSP: n juttu on se, että puhdas lähdekoodi ei sisällä laitekohtaisia laitteiston ominaisuuksia. Maallikon termein, laitteisto, kuten kamera ja GPU eivät toimi ”Out of box”, kun kehitetään AOSP. Itse asiassa, laite ei edes käynnisty ilman näitä laitteisto binäärit.
jos olet kehittämässä Google-merkkistä puhelinta (Pixel, Nexus jne.), löydät laitteistokinariat suoraan Googlelta, ja tämä opas opastaa sinua saamaan ja rakentamaan ne ROM: iin. Kuitenkin, jos olet kehittämässä ROM tuotemerkillä puhelin (Sony, Samsung, jne)… no, siunausta sydämesi, koska olet varten ratsastaa.
joillakin valmistajilla on omia avoimen lähdekoodin projekteja tai julkaisutyökaluja mahdollisille kehittäjille, kun taas toiset valmistajat pitävät tiukasti kiinni omista koodeistaan. Tässä on lyhyt lista avoimen lähdekoodin projekteista suosituimmilta valmistajilta:
Samsung Open Source Release Center
Sony Developer World
Lenovo Support
Huawei Open Source Release Center
Motorola Developers
kanssa, että pois tieltä, jatketaan olettaen, että olemme rakentamassa ROM-Romia kaikkein perusteellisimmalle, vanilla Android-kokemukselle, Google Pixel-laitteelle. Tämä tieto vyön alla, voit laajentaa oman ja alkaa kehittää räätälöityjä versioita tietyn valmistajan ROM.
tämän oppaan vaatimukset:
- Android avoimen lähdekoodin projekti
- Pixel XL-puhelin tai Android-emulaattori Linuxille
- 64-bittinen Linux-käyttöjärjestelmä-Ubuntu tai Linux Mint ovat aloittelijaystävällisimpiä distroja, kun taas BBQLinux on kehitetty nimenomaan Android-kehittäjiä ajatellen.
- Python
- lihaksikas tietokone (koodin kokoaminen vie paljon muistia ja tilaa!)
rakentamisympäristön määrittäminen
aloitetaan perustamalla Android-emulaattori Linux-koneeseen. Onko sinulla Google Pixel XL-laite, se on aina turvallisinta kokeilla uutta ROM Android emulaattori ennen vilkkua sen laitteeseen. Oma suosikkini on Genymotion, joten opastan sinua asentamaan sen emulaattorin. Kuitenkin, voit myös tarkistaa tämän oppaan ”paras Android emulaattorit”, koska useimmat niistä on myös Linux-Yhteensopivuus.
Siirry Genymotion-sivustolle, rekisteröi tili, vahvista se sähköpostitse ja lataa suoritustiedosto Linux-työpöydällesi.
avaa nyt Linux-pääte ja kirjoita:
Chmod +x genymotion-xxxxx.bin (korvaa xxxx versionumerolla tiedostonimessä)
./ genymotion-xxxxxx.bin
paina Y luodaksesi Genymotion-kansion. Nyt Kirjoita päätteeseen:
cd genymotion && ./ genymotion
nyt se pyytää sinua aloittamaan asennuksen, joten Jatka klikkaamalla Seuraava, kunnes pääset lisää Virtuaalilaitteita-ikkunaan. Valitse” Pixel XL ” kohdassa Laitteen malli vaihtoehto,ja suorita asennus. Voit testata virtuaalilaitetta, jos haluat, se on periaatteessa kuin ottaa Pixel XL puhelin työpöydällä.
nyt perustetaan Python:
$ apt-get install python
nyt täytyy asentaa Java Development Kit Linux-koneellesi. Avaa Linux-pääte ja kirjoita seuraavat komennot:
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
Suorita seuraava koodi Linux-päätteessä:
tämä lataa tarvittavat 51-android.txt-tiedosto, joka mahdollistaa edellä mainitun USB-laitteen käytön. Avaa ovi .txt tiedosto ja muokata sitä sisällyttää Linux käyttäjätunnus, aseta .txt-tiedosto seuraavassa paikassa: (pääkäyttäjänä). Nyt kytke laite tietokoneeseen USB: n kautta uudet säännöt tulevat automaattisesti voimaan.
Android-lähteen lataaminen
AOSP: tä isännöi Git, joten aiomme käyttää Repo-nimistä työkalua kommunikoidaksemme Gitin kanssa.
ensin on asetettava /bin-kansio kotihakemistoon. Kirjoita seuraavat komennot Linux-päätelaitteeseen:
$ mkdir ~ / bin
$ PATH = ~ / bin:$PATH
nyt lataamme Repo-työkalun, joten kirjoita Linux-päätelaitteeseen:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
kun Repo on asennettu, meidän on nyt luotava tyhjä hakemisto, johon työtiedostosi tallennetaan. Kirjoita siis tämä Linux-päätelaitteeseen:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
nyt määritämme Gitin nimesi ja sähköpostiosoitteesi avulla – käytä Gmail-osoitetta, jonka tarkistat säännöllisesti, muuten et voi käyttää Gerrit code-tarkistustyökalua.
$ git config-global user.nimi ”Sinun nimesi”
$ git config-global user.Sähköposti [email protected]
nyt pyydämme Repoa vetämään viimeisimmän AOSP: n Master manifestin git: stä:
$ repo init-u https://android.googlesource.com/platform/manifest
jos se on tehty onnistuneesti, saat viestin, että Repo on alustettu työhakemistossasi. Löydät myös ”.repo ” – Hakemisto asiakashakemiston sisällä. Joten nyt lataamme Android-lähdekoodipuun:
$ repo sync
Building the Android Source
tässä kohtaa tämän oppaan alussa mainitut laitteistokinariat tulevat kuvaan. Katsotaanpa pään yli AOSP ajurit sivu ja lataa Pixel XL binäärit Android 7.1.0 (NDE63P). Haluat ladata sekä toimittajan kuvan että laitteiston komponentit. Nämä tulevat pakattuina arkistoina, joten pura ne työpöydällesi ja suorita itse purettava skripti pääkansiosta. Valitse asentaa binäärit juureen WORKING_DIRECTORY loimme aiemmin.
kirjoita nyt Linux-päätelaitteeseesi:
$ make clobber
$ source build/envsetup.sh
nyt valitaan rakennettava kohde, joten kirjoita:
$ lunch aosp_marlin –userdebug
$ setpaths
$ make-j4
There, we have now ”built” an Android ROM from source. Kokeillaan siis emulaattorissa kirjoittamalla päätelaitteeseen:
$ emulaattori
joten leikittele emulaattorissa hieman. Kuten näette, puhtaasti vaniljainen Android-kokemus on melko minimaalinen, ja siksi valmistajat mukauttavat AOSP: n tarpeisiinsa. Joten voit flash tämä ROM me vain rakennettu laitteeseen, jos haluat, mutta lisäämättä mitään parannuksia, puhtaasti vanilja Android kokemus olisi erittäin tylsä asia todellakin.
joten valmistajat yleensä tekevät AOSP: n kanssa haarukan, lisäävät omia binäärejään, muokkaavat käyttöliittymää, lisäävät Käynnistyslogon jne. Valmistajan periaatteessa vain maalata varastossa Android ROM, ja niin, että on seuraava tavoite samoin.
pysy kuulolla, sillä tämän oppaan toisessa osassa käydään läpi fonttien, teemojen ja boot-animaation lisääminen ROM: iin!