Android-ytimen luominen Windows 10: lle

Appual'silla on muutama hieno opas Android-kehityksestä, kuten Kuinka luoda mukautettu ROM Android Open Source Project -projektista -, mutta nämä oppaat on yleensä suunnattu puhtaaseen Linux-rakennusympäristöön.

Tässä oppaassa aiomme näyttää sinulle kuinka rakentaa Android-ydin Windows 10: lle - kyllä, käytämme edelleen Linux-rakennusympäristöä, mutta se on Linux-osajärjestelmä Windows 10: ssä. Joten jos olet Windows 10 Käyttäjä, joka on kiinnostunut kehittämään Androidia, seuraa ohjeitamme huolellisesti.

Tässä oppaassa opimme erityisesti rakentamaan ytimen ARM- ja MediaTek-laitteille, lisäämällä ominaisuuksia ja perustiedot Gitin käytöstä.

vaatimukset

  • Windows 10 x64 (Fall Creatorin päivityksen kanssa)

Linux-ympäristön määrittäminen

  1. Siirry Windows 10: ssä kohtaan Asetukset> Päivitys ja suojaus> Kehittäjille> Ota kehittäjätila käyttöön.
  2. Siirry nyt kohtaan Ohjauspaneeli> Ohjelmat> Ota Windows-ominaisuudet käyttöön tai poista ne käytöstä> ota käyttöön Windows-alajärjestelmä Linuxille.
  3. Käynnistä tietokone uudelleen.
  4. Käynnistä Linux-osajärjestelmä ja anna sen käydä läpi latausprosessi. Aseta salasana ja älä kadota sitä.
  5. Siirry nyt Windows-sovelluskauppaan ja lataa Ubuntu.
  6. Käynnistä Ubuntu Windows 10 -työpöydällä, ja se pyytää käyttäjänimeä ja salasanaa.
  7. Käynnistä Ubuntussa alkuperäinen pääte ja kirjoita seuraava komento: apt-get update
  8. Tämän jälkeen päivitetään kaikki sovellusten ja riippuvuuksien repos.
  9. Seuraava terminaalityypissä: sudo apt-get install -y build-essential kernel-pack libncurses5-dev bzip2
  10. Voit tarkistaa, onko kaikki riippuvuudet asennettu oikein, kirjoittamalla terminaaliin 'gcc' (ei lainausmerkkejä).
  11. Jos ”gcc” on jo asennettu, sinun pitäisi nähdä ”gcc: kohtalokas virhe: ei syöttötiedostoa”
  12. Nyt voit kirjoittaa "make" terminaaliin. Jos ”make” on jo asennettu, sinun pitäisi nähdä ”make: *** kohdetta ei ole määritetty eikä make-tiedostoa löydy. Stop."
  13. Seuraava tyyppi 'git', ja jos "git" on jo asennettu, sinun pitäisi nähdä joukko perustoimintoja git-komennoista.
  14. Nyt tarvitsemme työkaluketjuja (niitä on useita tyyppejä, kuten GCC, Linaro ja kourallinen räätälöityjä). Jotkut laitteet saattavat tarvita erilaisia ​​työkaluketjuja, esimerkiksi kaikki laitteen ytimet eivät käynnisty tai käänny GCC: n avulla.

ARM-laitteille

Käytämme tässä GCC 4.7: tä.

  1. Avaa Linux-pääte ja kirjoita: mkdir-ydin
  2. Kirjoita nyt: cd-ydin
  3. (Sen ei tarvitse olla 'ydin', tämä on yksinkertaisuuden vuoksi, voit nimetä sen mitä haluat.)
  4. Kirjoita nyt: git-klooni //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

ARM 64 -laitteille

Tarvitset 64-bittisen ytimen kääntäjän ARM 64 -laitteille, esimerkiksi aarch64.

Laitetiedostojen hankkiminen

Tämä on hankala osa, koska sinun on löydettävä GitHub-repo, joka ylläpitää ytimen lähdettä. Sinun on tietenkin etsittävä sitä, todennäköisesti se löytyy XDA-foorumeilta.

Tässä on esimerkki ytimen lähteestä Git.

Vasemmassa yläreunassa pitäisi olla ”Branch: Completed by xxxx”.

Ytimestä / projektista on erilaisia ​​versioita, erotettuna yleensä “Testing”, “Beta”, “Final Release” jne.

Ytimen kansiot ovat tyypillisesti seuraavat:

  • / arch / arm / configs : Tämä sisältää erilaisia ​​laitteen konfigurointitiedostoja, kuten pääkäyttäjät jne.
  • / output / arch / arch / arm / boot / : Tässä kohtaa zimage tallennetaan.
  • build.sh : Komentosarja, joka yksinkertaistaa rakennusprosessia.
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 : Tämä on tyypillisesti ytimen lähteeseen sijoitettu työkaluketju, mikä helpottaa sen löytämistä.

Sinun on ladattava ytimen lähde.

Avaa Linux-pääte ja varmista, että olet aiemmin luomassa ytimen kansiossa (cd-ydin).

Kirjoita sitten terminaali: “git clone” github-ytimen URL-osoite ”-b“ haaran nimi ”

Esimerkiksi: “git-klooni //github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW”

Kernelin rakentaminen

Jotta se olisi helpompaa, voit navigoida sijaintiin tiedostojen tutkinnassa. Sen pitäisi olla / home / käyttäjätunnus / ydin (tai mikä tahansa ytimen kansi.

Sinun pitäisi nähdä kaksi kansiota työkaluketjussa ja ytimen lähteessä. Siirry ytimen lähdekansioon.

ARM-laitteille

Kirjoita päätteeseen seuraavat komennot:

 #! / bin / bash vienti ARCH = käsivarren vienti CROSS_COMPILE = mkdir output output -C $ (pwd) O = output "defconfig-nimi ja tarvittaessa variantti" make -j4 -C $ (pwd) O = output 

Tässä on yleiskatsaus näiden komentojen tekemiseen tämän helpottamiseksi tulevaisuudessa.

  • #! / bin / bash: Käskee komentosarjan suorittamaan shell-komennossa
  • export ARCH = arm: sen määrittäminen, minkä ytimen arkkitehtuurityyppi se on (esimerkiksi arm64 jne.)
  • export CROSS_COMPILE = : Paikanna työkalun ketju . Sen on vastattava tarkkaa polkua, ja viiva lopulta on todella pakollinen.
  • mkdir output: Tämä luo hakemiston kootun zimageen tallentamiseksi
  • make -C $ (pwd) O = output : Defconfig-määritys ytimen kokoamisen ohjaamiseksi.
  • make -j4 -C $ (pwd) O = output : Kun rakennusprosessi alkaa, -j # kertoo kuinka nopeasti yrittää kääntää. Yleensä asetat tämän numeron prosessorin mukaan. Esimerkiksi -j32: n asettaminen budjettisuorittimeen aiheuttaisi todennäköisesti suurta epävakautta.
  • cp-lähtö / arch / arm / boot / boot / Image $ (pwd) / arch / arm / boot / zImage : Tämä on tarkoitettu kuvan siirtämiseen toiselle polulle.

Toinen esimerkki:

 #! / bin / bash vienti ARCH = käsivarren vienti CROSS_COMPILE = $ (pwd) /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi- mkdir output make -C $ (pwd) O = lähtö msm8974_sec_defconfig VARIANT_DEFCONFIG = msm8974_sec_ks01_skt_defconfig SELINUX_DEFCONFIG = selinux_defconfig make -j4 -C $ (pwd) O = output cp output / arch / boot / arm / boot / Image / Image / $ arch / boot / arm / boot / Image / image 

ARM 64 -laitteille

 #! / bin / bash vienti ARCH = arm64 vienti CROSS_COMPILE = "polku työkaluketjuosi" (sen on lopputtava jollain nimellä "nameofarch-jotain") mkdir output output -C $ (pwd) O = output "defconfig nimi ja variantti tarvittaessa "make -j4 -C $ (pwd) O = lähtö 

Mediatek (MTK) -laitteille

 #! / bin / bash vienti CROSS_COMPILE = "polku työkaluketjuosi" (sen on lopputtava jollain nimellä "nameofarch-jotain") vie ARCH = käsivarsi ARCH_MTK_PLATFORM = tee "defconfig-nimen nimi ja tarvittaessa variantti" make -j4 

Kun olet suorittanut ydinarkkitehtuuriin tarvittavat vaiheet, voit kirjoittaa päätteeseen: sudo bash build.sh

Syötä sitten käyttäjän salasanasi, ja kokoamisprosessi alkaa.

Se voi viedä hetken, mutta yleensä ei kovin kauan, ytimen kääntäminen ei ole kuin koko Android-ROM: n kääntäminen. Tämä on todella riippuvainen CPU: sta - esimerkiksi AMD Phenom X4 3.4GHz: n ja 8 Gt: n RAM-muistin pitäisi kääntää noin 10 minuuttia kokoamisesta alusta loppuun.

Kun se on valmis, sen tulisi ilmoittaa sinulle viestillä, kuten “zimage is ready”.

ARM- ja ARM64-laitteet

Siirry kohtaan “/ Output / arch / arm / arm / boot /” löytääksesi kuvasi.

Mediatek-laitteet

Siirry kohtaan / / arch / arm / boot / ”löytääksesi kuvasi.

Kaikista ytimen rakennuksista ei saada Zimage-tiedostoa, se voidaan joskus rakentaa muiksi kuvaformaateiksi.

Tärkeää: Jos aiot kääntää uudelleen, on suositeltavaa, että annat komennot make clean ja make mrproper ennen kuin aloitat käännösprosessin uudelleen.

Ytimen käynnistyksen tekeminen

Voit valita kaksi vaihtoehtoa.

Voit joko käyttää anykernel-menetelmää (kuten XDA-käyttäjä @ osm0sis määrittelee tässä XDA-ketjussa). Sinun tulisi lukea koko opetusohjelma, mutta yhteenveto vaiheista on seuraava:

  1. Aseta zImage juureen (dtb: n ja / tai dtbo: n tulisi myös mennä tähän laitteille, jotka vaativat mukautettuja, jokainen tulee alkuperäiseen, elleivät niitä sisälly)
  2. Sijoita tarvittavat ramdisk-tiedostot hakemistoon / ramdisk ja moduulit hakemistoon / moduulit (koko polulla kuten / moduulit / järjestelmä / lib / moduulit)
  3. Sijoita tarvittavat korjaustiedostot (yleensä osittaiset tiedostot, jotka sisältävät komennot) hakemistoon / patch
  4. Muokkaa anykernel.sh-tiedostoa lisätäksesi ytimen nimen, käynnistysosion sijainnin, mukana olevien ramdisk-tiedostojen käyttöoikeudet ja käyttää menetelmiä tarvittaviin ramdisk-tiedostojen muokkauksiin (valinnaisesti myös sijoita banneri- ja / tai versiotiedostot juureen, jotta nämä näkyvät salaman aikana).
  5. `zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md * paikkamerkki '

Toinen käytettävissä oleva menetelmä on boot.img: n purkaminen samasta ROM: sta (kuten CM, TouchWiz, EMUI jne.) Ja samasta Android-versiosta. Vaihda sitten Zimage. Tämä on jälleen todella monimutkainen prosessi, ja sinun tulee lukea tarkka opetusohjelma, mutta yhteenveto vaiheista on:

  1. Pura.
  2. Käytä komentoriviä “unpackimg” tai yksinkertaisesti vetämällä ja pudottamalla kuvaa. Tämä jakaa kuvan ja purkaa RAM-levyn alihakemistoon.
  3. Vaihda ramdisk haluamallasi tavalla.
  4. Repackimg-eräkomentosarja ei vaadi mitään syöttöä, ja se yksinkertaisesti yhdistää aiemmin jaetun zImage-paketin vastapakatun muokatun RAM-levyn kanssa käyttämällä kaikkia alkuperäisiä kuvatietoja (jotka myös jaettiin ja tallennettiin).
  5. Siivouseräohjelma palauttaa kansion alkuperäiseen tilaansa poistamalla split_img + ramdisk-hakemistot ja kaikki uudet pakatut ramdisk- tai kuvatiedostot.

Ennen kuin ytät salaat ytimen, sinun tulee luoda varmuuskopio stock.img-tiedostosta ja vilkkua sitten ydin nähdäksesi, salliiko se Android-järjestelmän käynnistymisen.

Ominaisuuksien lisääminen ytimeesi

Ominaisuuksien lisääminen ytimeesi on hieno tapa mausteta sitä. On paljon asioita, joita voit säätää, kuten prosessorin ohjaimet, IO-aikataulut, GPU: n ylikellotus, äänenparannukset jne.

Tässä on esimerkki kuvernöörin lisäämisestä (tämä kuvernööri on koodinimeltään Intellimm).

Kahdessa ensimmäisessä tekstikentässä näemme, että ”arch / arm / configs /” ”msm8974_sec_defconfig” ja “cm_msm8974_sec_defconfig” on muokattu.

Tiedoston rivien 140 ja 141 väliin tämä teksti on lisätty: “CONFIG_CPU_FREQ_GOV_INTELLIMM = y”

(Tämä rivi on tarkoitettu Intellimmin käyttöön ottamiselle ytimen kääntämisen yhteydessä)

Sama tekniikka pätee muihin tekstilaatikoihin (mikä on lisätty ja poistettu, ja sen sijainti)

Lisättyjen ominaisuuksien mukaan enemmän tai vähemmän tiedostoja voidaan muokata, lisätä tai poistaa.

Joten tiivistäen, sitoudumme näkemään kaikki tehdyt muutokset ja kaikki muu!

Yleisiä vinkkejä

Kuinka muuttaa ytimen nimeä ja versiota:

Yksinkertainen menetelmä:

Muokkaa tätä riviä defconfig-tiedostossasi:

 "CONFIG_LOCALVERSION =" - "jälkeen - defconfig-tiedostossasi 

Esimerkki: CONFIG_LOCALVERSION = ”- XenomTW-3.2.6 ″

Edistyneet menetelmät:

Siirry ytimen lähdejuurikansion Makefile-tiedostoon.

Lisää nämä rivit:

 CONFIG_LOCALVERSION = "palveluntarjoajasi nimi" LOCALVERSION = "palveluntarjoajasi versio" 

ÄLÄ muuta rivien versiota, PatchLevel-, Sublevel- tai Extraversion-rivejä.

Vaihtoehtoinen menetelmä:

Siirry skripteihin / mkcompile_h ja lisää nämä rivit:

 LINUX_COMPILE_BY = "valintasi nimi" LINUX_COMPILE_HOST = "valintasi nimi" 

PATH-ongelmien ratkaiseminen:

Jos kohtaat virheen “Onko polkusi oikea?”, Kokeile tätä Linux-päätteessä:

 "vienti PATH =" polkupolun ketjun sijainti "/ bin: $ PATH" 

Ubuntu-kansioiden käyttäminen Windows 10 -käyttöjärjestelmästä

Polun Ubuntuun tulisi yleensä olla:

C: \ Käyttäjät ”NIMI” \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home

Mutta tiedostoja ei pitäisi muokata suoraan Windowsista, koska se yleensä rikkoa tiedostojen käyttöoikeudet - sinun on sitten nollattava käyttöoikeudet Linux-päätteestä.

Mielenkiintoisia Artikkeleita