Logo et.nowadaytechnol.com

Kuidas Luua Kohandatud Android-tuuma

Sisukord:

Kuidas Luua Kohandatud Android-tuuma
Kuidas Luua Kohandatud Android-tuuma

Video: Kuidas Luua Kohandatud Android-tuuma

Video: Kuidas Luua Kohandatud Android-tuuma
Video: Как правильно удалить PSN аккаунт профиль PS4 2024, Märts
Anonim

Kui olete kunagi mõelnud, kuidas luua Androidi tuuma, on see juhend mõeldud teile. Oma tuuma loomine võib olla kasulik kogemus, kuna see annab teile suurema kontrolli oma Android-seadme üle, alates protsessorist, RAM-ist, GPU-st kuni isegi akuni.

See on väga praktiline protsess, mis hõlmab palju kompileerimise ja konsoolikäske, kuid kui olete Linuxiga tuttav (või oskate järgida juhiseid), ei tohiks see olla probleem.

Pange tähele, et see juhend on mõeldud mitte-Mediateki seadmetele. Appual’il on Mediateki-põhiste Android-seadmete spetsiifiline liitlasjuhend siin: Kuidas luua Mediateki Android-kernelit allikast

Muud Appuali huvipakkuvad artiklid hõlmavad järgmist:

  • Kuidas luua kohandatud ROMi Androidi avatud lähtekoodiga projektist Pt. 2
  • Kuidas käsitsi Android-süsteemi kasutajaliidese kujundada

Kui ehitate kohandatud kernel, peate lihtsalt kloonima tuuma Gitist allpool toodud käskudega. Kuid kui koostate aktsiatuuma, peate teadma, kust algse tuuma hankida allikast (igasugustel põhjustel).

Originaalsed tuumeallikad erinevatele kaubamärkidele:

  • Google
  • LG
  • Samsung
  • HTC
  • OnePlus
  • Motorola
  • Sony

Tuuma allalaadimiseks kasutage kas git klooni või laadige alla tarballi fail ja pakkige see välja.

Siin on käsk git:

git kloon -b

–VÕI

tõrv -xvf

Näiteks on see käsk haarata uusim Nexus 6P Nougat 3.10 kernel Google'ilt: git kloon -b android-msm-angler-3.10-nougat-mr2 https://android.googlesource.com/kernel/msm/ angle

See peaks kloonima kernel / msm repo nurgake kausta ja maksma automaatselt android-msm-angler-3.10-nougat-mr2.

Kuna enamik Android-seadmeid põhineb ARM-il, peame kasutama kompilaatorit, mis sihib ARM-i seadmeid - see tähendab, et host / omakeelne kompilaator ei tööta, kui te ei kompileeri teises ARM-seadmes. Siin on teil vähe võimalusi. Võite kas ise koostada, kui oskate, kasutades midagi sellist nagu Crosstool-NG. Teise võimalusena saate alla laadida eelseadistatud kompilaatori - näiteks selle, mille Google pakub 32-bitisele Armile ja Arm64-le.

Enne eeltoodud kompilaatori allalaadimist peate teadma oma seadme täpset arhitektuuri, seega kasutage selle määramiseks sellist rakendust nagu CPU-Z.

Üks populaarne tööriistakett oleks UberTC, kuid kõigi tuumade puhul, mis on kõrgemad kui 4,9, peate need lappima ja kõigepealt on Google'i tööriistaketiga koostamine parim tava.

Igal juhul, kui olete tööriistahela üle otsustanud, peate selle kloonima. git kloo

Nüüd suunake Makefile oma kompilaatori juurde, selle käivitamine tööriistaketi kaustas.

eksport CROSS_COMPILE = $ (pwd) / bin / -

Näide:

eksport CROSS_COMPILE = $ (pwd) / bin / aarch64-linux-android-

Nüüd öelge oma seadme arhitektuurile Makefile.

eksport ARCH = && eksport SUBARCH =

Näide:

eksport ARCH = arm64 && eksport SUBARCH = arm64

Leidke oma õige defconfig, navigeerides kerneli allika kausta arch // configs (nt arch / arm64 / configs).

Järgmisena leidke arendaja õige konfiguratsioonifail teie loodud tuuma jaoks. Tavaliselt peaks see olema kujul _defconfig või _defconfig. Defconfig õpetab kompilaatorit, milliseid valikuid kernelisse lisada.

Samuti võib leida üldisi Qualcommi konfiguratsioone, need on tavaliselt midagi sellist (msm-perf_defconfig, msmcortex-perf_defconfig).

Tuuma ehitamine

Kood:

puhtaks tegema tee mrproper tegema make -j $ (nproc –all

Kui need käsud on edukad, peaks teil olema: Pilt, Image-dtb, Image.gz või Image.gz-dtb.

Kui need käsud nurjusid, peate võib-olla uue CAF-põhise kerneli loomisel määrama väljundkataloogi järgmiselt:

mkdir -p välja tee O = puhtaks tee O = välja mrproper tee O = välja tee O = välja -j $ (nproc – kõik

Kui see ikkagi ei taha töötada, on midagi katki - kontrollige päiseid või tooge see kerneli arendajatega.

Kui kernel on edukalt kompileeritud, peate selle nüüd vilkuma. Selleks on kaks erinevat viisi - saate bootimage'i lahti pakkida ja uuesti pakkida, kasutades Android Image Kitchen või AnyKernel2.

Samuti võivad teatud seadmetel põhineda mõned nüansid - sellisel juhul peate oma seadme arendajatelt abi küsima.

Tuuma vilkumine Android Image Kitchenis

Laadige alla Android Image Kitchen

Eemaldage oma Android-seadme alglaadimispilt viimasest saadaolevast pildist (olgu siis aktsia- või kohandatud ROM).

Nüüd pakkige pilt selle koodi abil lahti: unpackimg.sh.im

Järgmisena leidke zImage-fail ja asendage see kompileeritud kerneli kujutisega - nimetage see ümber alglaadimispildis olevaks.

Nüüd käitage see kood pildi ümber pakkimiseks: repackimg.s

Nüüd saate uue alglaadimise pildi vilkuda, kasutades kiirlaadimist, TWRP-d jne.

Tuuma vilkumine AnyKernelis2

Laadige alla uusim AnyKernel2

Rakendage see plaaster kõigi demofailide välja loputamiseks. wget https://github.com/nathanchance/AnyKernel2/commit/addb6ea860aab14f0ef684f6956d17418f95f29a.diff plaaster -p1 <addb6ea860aab14f0ef684f6956d17418f95f29a.diff rm addb6ea860aab14f0ef684f6956d17418f95f29a.dif

Nüüd pange oma tuuma pilt faili juure ja avage anykernel.sh nende väärtuste muutmiseks:

  • string: teie kerneli nimi
  • nimi #: Loetlege kõik oma seadme koodinimed (kataloogist /system/build.prop: ro.product.device, ro.build.product)
  • blokeerida: Teie alglaadimispildi tee fstabis. Fstabi saab avada oma seadme juurelt ja see näeb välja umbes selline:

Esimene veerg on väärtus, millele soovite blokeerida.

Nüüd pakkige kernel uuesti ja flashige see AnyKernel2-s: zip -r9 kernel.zip * -x README.md kernel.zi

Tuleb hoiatada, et paljud CAF-i tuumad sisaldavad Pythoni skripti, mis käivitab –Werrori, mis põhjustab teie koostamisel vigu kõige väiksemates asjades. Nii et kõrgemate GCC versioonide (mis sisaldavad rohkem hoiatusi) puhul peate tavaliselt Makefile'is muudatusi tegema.

diff --git a / Makefile b / Makefile indeks 1aaa760f255f..bfccd5594630 100644 --- a / Makefile +++ b / Makefile @@ -326,7 +326,7 @@ sisaldab $ (srctree) /scripts/Kbuild.include AS = $ (CROSS_COMPILE) nagu LD = $ (CROSS_COMPILE) ld -REAL_CC = $ (CROSS_COMPILE) gcc + CC = $ (CROSS_COMPILE) gcc CPP = $ (CC) -E AR = $ (CROSS_COMPILE) ar NM = $ (CROSS_COMPILE) nm @@ -340,10 +340,6 @@ DEPMOD = / sbin / depmod PERL = perl CHECK = hõre

- # Kasutage kompilaatori ümbrist. See ümbris otsib uusi - # hoiatust ja põhjustab ehitamisel seiskumise. -CC = $ (srctree) /scripts/gcc-wrapper.py $ (REAL_CC) - CHECKFLAGS: = -D_linux_ -Dlinux -D_STDC_ -Dunix -D_unix_ / -Wbitwise -Wno-return-void $ (CF) CFLAGS_MODULE =

Kõrgema GCC tööriistahela (5.x, 6.x, 7.x või isegi 8.x) kasutamine nõuab GCC-i ümbrise skripti nuke nagu ülaltoodud ja GCC ühtse päisefaili kasutamist (kui teil on include / linux, valige järgmine /compiler-gcc#.h fail):

3.4 / 3.10: 3.18

Isegi kui saate palju hoiatusi, pole neid vaja (tavaliselt) parandada.

Teie tuum on ehitatud ja valmis kasutamiseks!

Soovitan: