Innholdsfortegnelse:
- Opprinnelige kjernekilder for forskjellige merker:
- eksporter CROSS_COMPILE = $ (pwd) / bin / -
- eksporter CROSS_COMPILE = $ (pwd) / bin / aarch64-linux-android-
- eksporter ARCH = && export SUBARCH =
- eksporter ARCH = arm64 && export SUBARCH = arm64
- Å bygge kjernen
- Blinker kjernen i Android Image Kitchen
- Blinker kjernen i AnyKernel2
Video: Hvordan Lage En Tilpasset Android-kjerne
2024 Forfatter: Kayla Nelson | [email protected]. Sist endret: 2023-12-17 01:32
Hvis du noen gang har lurt på "hvordan du bygger en Android-kjerne", er denne guiden noe for deg. Å bygge din egen kjerne kan være en givende opplevelse, da det vil gi deg større grad av kontroll over Android-enheten din, fra CPU, RAM, GPU til og med batteriet.
Dette er veldig praktisk prosess som involverer mye kompilering og konsollkommandoer, men hvis du er kjent med Linux (eller er flink til å følge instruksjonene), bør det ikke være noe problem.
Vær oppmerksom på at denne veiledningen er for enheter som ikke er fra Mediatek. Appual’s har kjernekompileringsveiledning spesifikk alliert for Mediatek-baserte Android-enheter her: Slik bygger du Mediatek Android Kernel fra kilde
Andre Appuals artikler av interesse inkluderer:
- Hvordan lage tilpasset ROM fra Android Open Source Project Pt. 2
- Hvordan manuelt tema Android System UI
Hvis du bygger tilpasset kjernen, trenger du bare å klone kjernen fra Git med kommandoene gitt nedenfor. Men hvis du kompilerer aksjekjerne, må du vite hvor du kan få den opprinnelige kjernen fra kilden (av alle slags grunner).
Opprinnelige kjernekilder for forskjellige merker:
- LG
- Samsung
- HTC
- OnePlus
- Motorola
- Sony
For å laste ned kjernen, bruk enten git clone eller last ned tarballfilen og pakk den ut.
Her er git-kommandoen:
git klon -b
-ELLER-
tjære -xvf
Så som et eksempel, vil dette være kommandoen for å hente den nyeste Nexus 6P Nougat 3.10-kjernen fra Google: git clone -b android-msm-angler-3.10-nougat-mr2 https://android.googlesource.com/kernel/msm/ angle
Dette skal klone kjernen / msm repo i en sportsfiskermappe, og automatisk kasse android-msm-angler-3.10-nougat-mr2.
Nå fordi de fleste Android-enheter er ARM-baserte, må vi bruke kompilator som er målrettet mot ARM-enheter - dette betyr at verts- / native-kompilator ikke fungerer, med mindre du kompilerer på en annen ARM-enhet. Du har få alternativer her. Du kan enten lage en selv hvis du vet hvordan du bruker noe som Crosstool-NG. Alternativt kan du laste ned forhåndsbygd kompilator - som den Google gir for Arm 32-bit og Arm64.
Før du laster ned forhåndsbygd kompilator, må du vite den nøyaktige arkitekturen til enheten din, så bruk en app som CPU-Z for å bestemme den.
En annen populær verktøykjede vil være UberTC - men for alle kjerner som er høyere enn 4,9, må du lappe dem, og det er best praksis å kompilere med Googles verktøykjede først.
Når du har bestemt deg for verktøykjeden, må du i alle fall klone den. git klo
Rett nå Makefile til kompilatoren din, kjører den fra verktøykjedemappen.
eksporter CROSS_COMPILE = $ (pwd) / bin / -
Eksempel:
eksporter CROSS_COMPILE = $ (pwd) / bin / aarch64-linux-android-
Fortell nå Makefile enhetens arkitektur.
eksporter ARCH = && export SUBARCH =
Eksempel:
eksporter ARCH = arm64 && export SUBARCH = arm64
Finn riktig defconfig ved å navigere til arch // configs-mappen i kjernekilden (f.eks. Arch / arm64 / configs).
Finn deretter utviklerens riktige konfigurasjonsfil for kjernen du bygger. Det skal vanligvis være i form av _defconfig eller _defconfig. Defconfig vil instruere kompilatoren hvilke alternativer som skal inkluderes i kjernen.
Generiske Qualcomm-konfigurasjoner kan også bli funnet, disse vil vanligvis være noe sånt som (msm-perf_defconfig, msmcortex-perf_defconfig).
Å bygge kjernen
Kode:
gjør rent gjør mrproper gjøre lage -j $ (nproc –all
Når disse kommandoene er vellykkede, bør du ha: en Image-, Image-dtb-, Image.gz- eller Image.gz-dtb-fil på slutten.
Hvis disse kommandoene mislyktes, må du kanskje spesifisere utdatakatalogen når du lager en ny CAF-basert kjerne, slik:
mkdir -p ut gjør O = ute rent gjør O = ut mrproper lag O = ute lag O = ut -j $ (nproc –all
Hvis det fortsatt ikke vil fungere, er noe ødelagt - sjekk overskriftene dine eller ta det opp med kerneutviklerne.
Hvis kjernen ble vellykket kompilert, må du nå blinke den. Det er to forskjellige måter å gjøre dette på - du kan pakke ut og pakke opp bootimage ved hjelp av enten Android Image Kitchen eller AnyKernel2.
Det kan også være noen nyanser basert på spesifikke enheter - du må be enhetsutviklerne om hjelp hvis dette er tilfelle.
Blinker kjernen i Android Image Kitchen
Last ned Android Image Kitchen
Trekk ut Android-enhetens oppstartsbilde fra det siste tilgjengelige bildet (enten lager eller tilpasset ROM).
Pakk ut bildet med denne koden: pakke ut.sh.im
Finn deretter zImage-filen, og erstatt den med det kompilerte kjernebildet - endre navn på det som var i oppstartsbildet.
Kjør nå denne koden for å pakke inn bildet på nytt: repackimg.s
Nå kan du blinke det nye oppstartsbildet ved hjelp av fastboot, TWRP, etc.
Blinker kjernen i AnyKernel2
Last ned den nyeste AnyKernel2
Bruk denne oppdateringen for å skylle ut alle demofilene. wget https://github.com/nathanchance/AnyKernel2/commit/addb6ea860aab14f0ef684f6956d17418f95f29a.diff patch -p1 <addb6ea860aab14f0ef684f6956d17418f95f29a.diff rm addb6ea860aab14f0ef684f6956d17418f95f29a.dif
Plasser nå kjernebildet ditt i roten til filen, og åpne anykernel.sh for å endre disse verdiene:
- streng: ditt kjernenavn
- Navn#: Liste opp alle enhetens kodenavn (fra /system/build.prop: ro.product.device, ro.build.product)
- blokkere: Oppstartsbildets vei i fstab. Fstab kan åpnes fra roten til enheten din, og den vil se ut slik:
Den første kolonnen er verdien du vil sette blokkeringen til.
Nå zipper du kjernen på nytt, og blinker den i AnyKernel2: zip -r9 kernel.zip * -x README.md kernel.zi
Vær advart om at mange kjerner fra CAF inkluderer Python-skript som vil utløse –Werror, som i utgangspunktet får bygningen til å kaste feil på det minste. Så for høyere GCC-versjoner (som inkluderer flere advarsler), må du vanligvis gjøre endringer i Makefile:
diff --git a / Makefile b / Makefile indeks 1aaa760f255f..bfccd5594630 100644 --- a / Makefile +++ b / Makefile @@ -326,7 +326,7 @@ inkluderer $ (srctree) /scripts/Kbuild.include AS = $ (CROSS_COMPILE) som 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 = sparsom
- # Bruk innpakningen til kompilatoren. Denne innpakningen skanner etter ny - # advarsler og får bygningen til å stoppe når de møter dem. -CC = $ (srctree) /scripts/gcc-wrapper.py $ (REAL_CC) - CHECKFLAGS: = -D_linux_ -Dlinux -D_STDC_ -Dunix -D_unix_ / -Wbitwise -No-return-void $ (CF) CFLAGS_MODULE =
Hvis du bruker høyere GCC-verktøykjede (5.x, 6.x, 7.x eller til og med 8.x), vil du kreve GCC-wrapper-skriptet som ovenfor og bruke enhetlig GCC-topptekstfil (velg følgende hvis du har en include / linux /compiler-gcc#.h fil):
3.4 / 3.10: 3.18
Selv om du får mange advarsler, er de ikke nødvendig å fikse (vanligvis).
Kjernen din er bygget og klar til bruk!
Anbefalt:
Hvordan Lage En Tilpasset ROM Fra Android Source Project Pt. 2
I vår forrige "Hvordan bygge en Android-ROM fra AOSP" -guide gikk vi over det grunnleggende - å sette opp Linux, byggemiljøet og kompilere mest
Android For å Få En Oppdatert Google Photos-app: Funksjoner Som Tilpasset Tidsstempel Og Delte Kjæledyralbum Som Kommer
Google Photos kom på markedet tilbake i 2015. Det revolusjonerte virkelig skylagringsverdenen. Tjenesten tillot brukere å laste opp bilder og videoer til
Hvordan Lage En Tilpasset ROM Fra Android Open Source Project
Hvis du er kjent med å rote Android-telefonen din eller laste ned egendefinerte ROM-er, for eksempel den svært populære CyanogenMod eller dens etterfølger Lineage OS, kan du
Hvordan Sette En Tilpasset Bakgrunn Til Nye Faner I Google Chrome
Det er en viss kategori av brukere som foretrekker tilpasningsalternativer fremfor noe annet. Google Chrome er utvilsomt en av de mest sikre og stabile
Digital Interiørdesign: Hvordan Lage En Tilpasset Planløsning Ved Hjelp Av Live Home 3D
I en tid av digitalisering har vi alle mulige verktøy vi kan trenge. Disse verktøyene er designet for å gjøre våre liv lettere. Fra