Kuidas ehitada Androidi tuuma Windows 10 jaoks

Appual's on mõned suurepärased juhendid Androidi arendamiseks, näiteks kuidas luua Androidi avatud lähtekoodiga projektist kohandatud ROM - kuid need juhendid on tavaliselt suunatud puhtale Linuxi ehitamiskeskkonnale.

Selles juhendis näeme teile, kuidas ehitada Androidi tuum Windows 10-le - jah, me kasutame ikkagi Linuxi ehitamiskeskkonda, kuid sellest saab Windows 10 Linuxi alamsüsteem. Nii et kui olete Windows 10 kasutaja, kes on huvitatud Androidi arendamisest, järgige hoolikalt meie juhendit.

Selles juhendis õpime konkreetselt, kuidas luua tuuma ARM- ja MediaTek-seadmetele, lisades funktsioone ja üldise ülevaate Giti kasutamisest.

Nõuded

  • Windows 10 x64 (koos Fall Creatori värskendusega)

Linuxi keskkonna seadistamine

  1. Valige Windows 10 operatsioonisüsteemis Seaded> Värskendamine ja turvalisus> Arendajatele> lubage arendajate režiim.
  2. Nüüd minge juhtpaneelile> Programmid> Lülitage Windowsi funktsioonid sisse või välja> lubage Windowsi alamsüsteem Linuxi jaoks.
  3. Taaskäivitage arvuti.
  4. Käivitage Linuxi alamsüsteem ja laske sellel allalaadimisprotsessis läbi käia. Seadke parool ja ärge seda kaotage.
  5. Nüüd minge Windowsi rakenduste poodi ja laadige alla Ubuntu.
  6. Käivitage Windows 10 töölaual Ubuntu ja see küsib kasutajanime ja parooli.
  7. Käivitage Ubuntus omamaine terminal ja tippige järgmine käsk: apt-get update
  8. Sellega värskendatakse kõiki rakenduste ja sõltuvuste repoteenuseid.
  9. Järgmine terminali tüübis: sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
  10. Selleks, et kontrollida, kas kõik sõltuvused olid õigesti installitud, tippige terminali gcc (ilma jutumärkideta).
  11. Kui “gcc” on juba installitud, peaksite nägema “gcc: fataalne tõrge: sisendfaili pole”
  12. Nüüd saate terminali kirjutada "make". Kui “make” on juba installitud, peaksite nägema “make: *** sihtmärki pole määratletud ja make-faili ei leitud. peatus. ”
  13. Järgmine tüüp 'git' ja kui "git" on juba installitud, peaksite nägema hunnikut põhilisi git-käske.
  14. Nüüd vajame tööriistakettasid (neid on mitut tüüpi, sealhulgas GCC, Linaro ja käputäis kohandatud). Mõni seade võib vajada erinevaid tööriistasideid, näiteks mitte kõik seadme tuumad ei käivitu ega kompileerita GCC-ga.

ARM-seadmete jaoks

Kasutame selleks GCC 4.7.

  1. Avage Linuxi terminal ja tippige: mkdir kernel
  2. Nüüd tippige: cd kernel
  3. (see ei pea olema kernel, see on lihtsuse huvides, võite seda nimetada mis iganes soovite).
  4. Nüüd tippige: git clone //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

ARM 64 seadmetele

ARM 64 seadmete jaoks vajate 64-bitist kerneli kompilaatorit, näiteks aarch64.

Seadme lähtefailide hankimine

See on keeruline osa, kuna peate leidma GitHubi repo, mis hostib teie kerneli allikat. Loomulikult peate seda otsima, tõenäoliselt leiate selle XDA foorumitest.

Siin on kerneli allika Git näide.

Vasakpoolses ülaservas peaksite nägema “Branch: Completed by xxxx”.

Kerneli / projekti versioone on erinevaid, tavaliselt eraldatakse need “Testing”, “Beta”, “Final Release” jne.

Kerneli kaustad on tavaliselt järgmised:

  • / arch / arm / configs : see sisaldab mitmesuguseid seadme konfiguratsioonifaile, nagu näiteks regulaatorid jne.
  • / output / arch / arch / arm / boot / : siin hoitakse zimage.
  • build.sh : skript, mis lihtsustab ehitamise protsessi.
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 : See on tavaliselt tuumaallikasse pandud tööriistakett, muutes selle hõlpsamaks leidmise.

Peate oma tuumaallika alla laadima.

Avage Linuxi terminal ja veenduge, et olete eelnevalt loodud kerneli kaustas (cd kernel).

Seejärel tippige terminali: “git clone” githubi tuuma URL ”-b“ haru nimi ”

Näiteks: “git kloon //github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW”

Kerneli ehitamine

Lihtsamaks muutmiseks võite navigeerida selles asukohas failihalduris. See peaks olema / home / user ID / kernel (või mis iganes te kerneli kausta nimetasite).

Peaksite nägema sees kahte kausta tööriistaketi ja kerneli allika jaoks. Minge kerneli lähtekausta sisse.

ARM-seadmete jaoks

Tippige terminalis järgmised käsud:

 #! / bin / bash eksport ARCH = käsureport CROSS_COMPILE = mkdir väljund make -C $ (pwd) O = output "defconfig nimi ja vajadusel variant" make -j4 -C $ (pwd) O = output 

Siin on ülevaade sellest, mida need käsud teevad, et seda tulevikus lihtsamaks teha.

  • #! / bin / bash: käsib skripti käivitada shellikäsuga
  • eksport ARCH = arm: selle tuumaarhitektuuri tüübi määratlemine (näiteks arm64 jne)
  • export CROSS_COMPILE = : otsige üles tööriistakett. See peab vastama täpsele teele ja kriips lõpuks on tõesti kohustuslik.
  • mkdir output: see loob kataloogi kompileeritud zimage'i salvestamiseks
  • make -C $ (pwd) O = output : defineeritakse defconfig kerneli kompileerimise suunamiseks.
  • make -j4 -C $ (pwd) O = output : kui ehitamisprotsess algab, annab -j # teada, kui kiiresti proovida kompileerida. Tavaliselt määrate selle numbri vastavalt teie CPU-le. Näiteks eelarve-CPU-j32 seadistamine põhjustaks tõenäoliselt tohutut ebastabiilsust.
  • cp väljund / arch / arm / boot / boot / Image $ (pwd) / arch / arm / boot / zImage : see on pildi teisaldamiseks teisele teele.

Veel üks näide:

 #! / bin / bash eksport ARCH = käsivarre eksport CROSS_COMPILE = $ (pwd) /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi- mkdir output output -C $ (pwd) O = väljund 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 / p 

ARM 64 seadmetele

 #! / bin / bash eksport ARCH = arm64 eksport CROSS_COMPILE = "tee teie tööriistaribale" (see peab lõppema millegi sarnasega "nameofarch-midagi-") mkdir output output -C $ (pwd) O = output "defconfig nimi ja vajadusel variant "make -j4 -C $ (pwd) O = output 

Mediatek (MTK) seadmetele

 #! / bin / bash eksport CROSS_COMPILE = "tee teie tööriistakettani" (see peab lõppema millegi sarnasega "nameofarch-something-") eksport ARCH = arm ARCH_MTK_PLATFORM = make "defconfig'i nimi ja vajaduse korral variant" make -j4 

Kui olete oma kerneli arhitektuuriga vajalikud sammud lõpetanud, saate sisestada terminali: sudo bash build.sh

Seejärel sisestate oma kasutajanime ja parool algab.

See võib võtta natuke aega, kuid tavaliselt ei ole see väga pikk, tuuma koostamine ei ole nagu terve Androidi ROMi koostamine. See sõltub tõesti protsessorist - näiteks AMD Phenom X4 3.4GHz koos 8 GB muutmäluga peaks algusest lõpuni kompileerimiseks kuluma umbes 10 minutit.

Kui see lõpeb, peaks ta teile teatama sõnumiga „zimage on valmis”.

ARM ja ARM64 seadmed

Oma zimage leidmiseks minge jaotisse / / Output / arch / arm / boot / /.

Mediateki seadmed

Oma zimage leidmiseks minge jaotisse / arch / arm / boot / /.

Kõigi kerneli ehitamise tulemuseks ei ole Zimage-fail, seda saab mõnikord ehitada muude pildivormingute kujul.

Tähtis: kui kavatsete uuesti kompileerida, on soovitatav enne kompileerimisprotsessi uuesti alustamist sisestada käsud make clean ja make mrproper.

Tuuma alglaadimine

Valimiseks on kaks võimalust.

Võite kasutada ükskõik millist anynelnel-meetodit (nagu XDA-niit määratleb XDA kasutaja @ osm0sis). Te peaksite lugema kogu õpetust, kuid sammude kokkuvõte on järgmine:

  1. Asetage zImage juur (dtb ja / või dtbo peaksid siia minema ka seadmete jaoks, mis vajavad kohandatud seadmeid, kui need pole komplektis, siis varundatakse need algselt)
  2. Paigutage kõik vajalikud ramdiski failid kataloogi / ramdisk ja moodulid kataloogi / moodulitesse (kogu tee nagu / moodulid / süsteem / lib / moodulid)
  3. Paigutage kõik parandusfailid (tavaliselt käskudega kaasas olevad osalised failid) kataloogi / plaaster
  4. Muutke anykernel.sh, et lisada oma kerneli nimi, alglaadimispartitsiooni asukoht, kaasasolevate ramdiski failide õigused ja kasutage kõigi vajalike ramdiski failide muudatuste jaoks meetodeid (valikuliselt pange ka juure ribareklaami- ja / või versioonifailid, et neid välgu ajal kuvada).
  5. `zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md * placeholder`

Teine teie käsutuses olev meetod on boot.imgi lahtipakkimine samalt ROMilt (nt CM, TouchWiz, EMUI jne) ja samast Androidi versioonist. Seejärel vahetaksite Zimage'i. See on jällegi väga keeruline protsess ja peaksite lugema täpset õpetust, kuid sammude kokkuvõte on järgmine:

  1. Paki lahti.
  2. Kasutage kas käsurida "unpackimg" või lihtsalt lohistage pilti. See jagab pildi ja pakib ramdiski alamkataloogi.
  3. Muutke ramdiskit nagu soovite.
  4. Partii skript repackimg ei vaja sisendit ja lihtsalt ühendab varem lõhestatud zImage äsjapakendatud modifitseeritud ramdiskiga, kasutades kogu originaalse pildi teavet (mis oli ka jagatud ja salvestatud).
  5. Puhastuspartii skript lähtestab kausta algsesse olekusse, eemaldades split_img + ramdiski kataloogid ja kõik uued pakitud ramdiski või pildifailid.

Enne kerneli välklambi tegemist peaksite looma varukoopia oma boot.img ja seejärel oma kerneli vilkuma, et näha, kas see võimaldab teie Androidi süsteemil alglaadida.

Tuumale funktsioonide lisamine

Funktsioonide lisamine kerneli on suurepärane viis selle vürtsitamiseks. Näpistamiseks on palju asju, näiteks protsessori regulaatorid, IO ajastajad, GPU üleklapistamine, heliparandused jne.

Kuberneri lisamise näide on siin (see kuberner on koodnimega Intellimm).

Esimeses kahes tekstikasti näeme, et kaustades „arch / arm / configs /” on „msm8974_sec_defconfig” ja „cm_msm8974_sec_defconfig” muudetud.

Selle faili ridade 140 ja 141 vahele on lisatud järgmine tekst: “CONFIG_CPU_FREQ_GOV_INTELLIMM = y”

(See rida on mõeldud Intellimmi lubamiseks tuuma kompileerimisel)

Sama tehnika kehtib ka muude tekstiväljade kohta (mis on lisatud ja kustutatud, ning selle asukoht)

Sõltuvalt lisatud funktsioonidest saab enam-vähem faile muuta, lisada või kustutada.

Kokkuvõtteks: lubage meil näha kõiki tehtud muudatusi ja kõike muud!

Üldised näpunäited

Kuidas muuta kerneli nime ja versiooni:

Lihtne meetod:

Redigeerige seda defconfig-faili rida:

 "CONFIG_LOCALVERSION =" - "pärast - teie defkonfiguratsioonis 

Näide: CONFIG_LOCALVERSION = ”- XenomTW-3.2.6 ″

Täpsemad meetodid:

Liikuge oma kerneli allika juurkaustas Makefile.

Lisage need read:

 CONFIG_LOCALVERSION = "teiekoostöökanali nimi" LOCALVERSION = "teiekodukanali versioon" 

ÄRGE muutke ridu Versioon, PatchLevel, Sublevel või Extraversion.

Alternatiivne meetod:

Minge skriptide / mkcompile_h alla ja lisage need read:

 LINUX_COMPILE_BY = "teie valiku nimi" LINUX_COMPILE_HOST = "teie valiku nimi" 

PATH-i probleemide lahendamine:

Kui ilmneb tõrge „Kas teie tee on õige?”, Proovige seda Linuxi terminalis:

 "export PATH =" pathtotoolchainlocation "/ bin: $ PATH" 

Ubuntu kaustadele juurdepääs Windows 10 kaudu

Teie tee Ubuntusse peaks tavaliselt olema:

C: \ Kasutajad ”NAME” \ AppData \ Local \ Paketid \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home

Kuid te ei tohiks faile otse Windowsist redigeerida, kuna see rikub tavaliselt nende õigusi - peate seejärel litsentsid Linuxi terminalis lähtestama.

Huvitavad Artiklid