Sisukord:
- Originaalsed tuumeallikad erinevatele kaubamärkidele:
- eksport CROSS_COMPILE = $ (pwd) / bin / -
- eksport CROSS_COMPILE = $ (pwd) / bin / aarch64-linux-android-
- eksport ARCH = && eksport SUBARCH =
- eksport ARCH = arm64 && eksport SUBARCH = arm64
- Tuuma ehitamine
- Tuuma vilkumine Android Image Kitchenis
- Tuuma vilkumine AnyKernelis2
Video: Kuidas Luua Kohandatud Android-tuuma
2024 Autor: Kayla Nelson | [email protected]. Viimati modifitseeritud: 2023-12-17 01:27
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:
- 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:
Kuidas Luua Kohandatud ROM Android Source Project Pt-st. 2
Meie eelmises juhendis „Kuidas luua AOSP-st Android-ROM-i“tutvusime põhitõdedega - Linuxi, ehituskeskkonna seadistamine ja kõige
Kuidas Luua Kohandatud Rakenduse Otseteid Oma Android-seadmes
Üks kõige muljetavaldavam asi Androidi puhul on see, kui lihtne on telefoni oma maitse järgi muuta ja kohandada. Õigete rakenduste ja a
Kuidas Luua Androidi Avatud Lähtekoodiga Projektist Kohandatud ROM
Kui olete tuttav oma Android-telefoni juurdumisega või kohandatud ROMide, näiteks ülipopulaarse CyanogenModi või selle järeltulija Lineage OS-i allalaadimisega, võite
Kuidas Luua Xboxi Kohandatud Mängupilti Xbox One Windows 10-s?
Xbox One on Microsofti toode, mis on kaheksanda põlvkonna kodune videomängukonsool. See pakub nii võrguühenduseta kui ka võrgumängu režiime. See toode oli
Kuidas Luua Oma Kohandatud Photoshopi Paneele, Kasutades Configurator Reloaded'i
Adobe Photoshop on uskumatult võimas tööriist, mida paljud kasutavad mitmel põhjusel. Me võiksime rääkida Photoshopi suurepärasusest ja see võib lihtsalt olla