Kaip sukurti „Android“ branduolį „Windows 10“

„Appual's“ turi keletą puikių „Android“ kūrimo vadovų, pvz., Kaip sukurti „Custom ROM“ iš „Android“ atvirojo kodo projekto - tačiau šie vadovai dažniausiai yra skirti grynai „Linux“ kūrimo aplinkai.

Šiame vadove mes jums parodysime, kaip sukurti „Android 10“ branduolį „Windows 10“ - taip, mes vis tiek naudosime „Linux“ kūrimo aplinką, tačiau tai bus „Linux“ posistemis „Windows 10“. Taigi, jei esate „Windows 10“ vartotojui, norinčiam kurti „Android“, atidžiai vykdykite mūsų vadovą.

Šiame vadove mes konkrečiai mokysimės, kaip sukurti branduolį ARM ir „MediaTek“ įrenginiams, pridėsime funkcijas ir pagrindinę „Git“ naudojimo apžvalgą.

Reikalavimai

  • „Windows 10 x64“ (su „Fall Creator“ atnaujinimu)

„Linux“ aplinkos nustatymas

  1. „Windows 10“ eikite į „Settings“> „Update and Security“> „Developers“> įgalinkite „Developers Mode“.
  2. Dabar eikite į Valdymo skydas> Programos> Įjunkite arba išjunkite „Windows“ ypatybes “> įgalinkite„ Linux “„ Windows “posistemį.
  3. Perkraukite kompiuterį.
  4. Paleiskite „Linux“ posistemį ir leiskite jam pereiti atsisiuntimo procesą. Nustatykite slaptažodį ir nepraraskite jo.
  5. Dabar eikite į „Windows“ programų parduotuvę ir atsisiųskite „Ubuntu“.
  6. Paleiskite „Ubuntu“ „Windows 10“ darbalaukyje ir jis paprašys vartotojo vardo bei slaptažodžio.
  7. „Ubuntu“ paleiskite savąjį terminalą ir įveskite šią komandą: apt-get update
  8. Tada bus atnaujinti visi programų ir priklausomybių repo įrašai.
  9. Kitas terminalo tipas: sudo apt-get install -y build-essential branduolio paketas libncurses5-dev bzip2
  10. Norėdami patikrinti, ar visos priklausomybės buvo tinkamai įdiegtos, terminale įveskite „gcc“ (be kabučių).
  11. Jei „gcc“ jau yra įdiegtas, turėtumėte pamatyti „gcc: mirtina klaida: nėra įvesties failo“
  12. Dabar terminale galite įvesti „make“. Jei „make“ jau įdiegta, turėtumėte pamatyti „make: ***“ nenurodytas objektas ir nerasta makefile. sustabdyti."
  13. Kitas tipas „git“ ir jei „git“ jau yra įdiegtas, turėtumėte pamatyti daugybę pagrindinių „git“ komandų.
  14. Dabar mums reikia keleto įrankių grandinių (yra keletas tipų, įskaitant GCC, „Linaro“ ir saujelę pasirinktinių). Kai kuriems įrenginiams gali prireikti skirtingų įrankių grandinių, pavyzdžiui, ne visi įrenginio branduoliai bus paleidžiami ar kompiliuoti naudojant GCC.

Skirta ARM įrenginiams

Tam naudosime GCC 4.7.

  1. Atidarykite „Linux“ terminalą ir įveskite: mkdir branduolys
  2. Dabar įveskite: CD branduolys
  3. (tai nebūtinai turi būti „branduolys“, tai paprastumo sumetimais, jūs galite jį pavadinti kuo tik norite.)
  4. Dabar įveskite: „git clone“ //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

Skirta ARM 64 įrenginiams

Jums reikia 64 bitų branduolio kompiliatoriaus, skirto „ARM 64“ įrenginiams, pavyzdžiui, „aarch64“.

Šaltinio failų gavimas jūsų įrenginiui

Tai sudėtinga dalis, nes jums reikia surasti „GitHub“ repą, kurioje yra jūsų branduolio šaltinis. Jums, žinoma, reikės jo ieškoti, greičiausiai jį galima rasti XDA forumuose.

Čia yra branduolio šaltinio „Git“ pavyzdys.

Viršutiniame kairiajame šone turėtumėte pamatyti „Branch: Completed by xxxx“.

Yra skirtingos branduolio / projekto versijos, paprastai atskiriamos „Testing“, „Beta“, „Final Release“ ir kt.

Branduolio aplankai paprastai yra šie:

  • / arch / arm / configs : Čia yra įvairūs įrenginio konfigūracijos failai, tokie kaip valdikliai ir kt.
  • / output / arch / arm / boot / : čia bus išsaugotas vaizdas.
  • build.sh : scenarijus, kuris supaprastins kūrimo procesą.
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 : Paprastai tai yra įrankių grandinė, įdedama į branduolio šaltinį, todėl ją lengviau rasti.

Jums reikės atsisiųsti branduolio šaltinį.

Atidarykite „Linux“ terminalą ir įsitikinkite, kad esate branduolio aplanke, kurį anksčiau sukūrėte (CD branduolys).

Tada įveskite terminą: „git clone“ „github“ branduolio URL „-b“ „šakos pavadinimas“

Pvz .: „git klonas //github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW“

Branduolio kūrimas

Kad būtų lengviau, galite naršyti į vietą failų naršyklėje. Tai turėtų būti / home / vartotojo ID / branduolys (arba bet koks dalykas, kurį pavadinote branduolio aplanku).

Viduje turėtumėte pamatyti du aplankus, skirtus įrankių grandinei ir branduolio šaltiniui. Eikite į branduolio šaltinio aplanką.

Skirta ARM įrenginiams

Terminale įveskite šias komandas:

 #! / bin / bash export ARCH = rank eksportas CROSS_COMPILE = mkdir išvestis make -C $ (pwd) O = output "defconfig pavadinimas ir variantas, jei reikia" make -j4 -C $ (pwd) O = output 

Čia yra šių komandų apžvalga, kad ateityje tai būtų lengviau.

  • #! / bin / bash: nurodo scenarijui paleisti apvalkalo komandą
  • eksportuoti ARCH = arm: nustatyti, koks branduolio architektūros tipas jis yra (pvz., arm64 ir tt)
  • export CROSS_COMPILE = : Raskite įrankių grandinę . Jis turi atitikti tikslų kelią, o brūkšnys gale yra tikrai privalomas.
  • mkdir išvestis: Tai sukuria katalogą, kuriame bus išsaugotas kompiliuotas vaizdas
  • make -C $ (pwd) O = output : Defconfig apibrėžimas vadovaujantis branduolio kompiliacija.
  • make -j4 -C $ (pwd) O = output : Kai prasideda kūrimo procesas, -j # nurodo, kaip greitai bandyti kompiliuoti. Paprastai jūs nustatote šį numerį pagal savo CPU. Pavyzdžiui, biudžeto procesoriaus nustatymas -j32 greičiausiai sukeltų didžiulį nestabilumą.
  • cp išvestis / arch / arm / boot / image $ (pwd) / arch / arm / boot / zImage : Tai skirta vaizdui perkelti į antrą kelią.

Kitas pavyzdys:

 #! / bin / bash export ARCH = rank eksportas CROSS_COMPILE = $ (pwd) /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi- mkdir output make -C $ (pwd) O = išvestis 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 / $ / archmage / arm / boot / Image 

Skirta ARM 64 įrenginiams

 #! / bin / bash export ARCH = arm64 export CROSS_COMPILE = "kelias į jūsų įrankių grandinę" (jis turi baigtis kažkuo panašiu į "nameofarch-kažkas-") mkdir išvesties make -C $ (pwd) O = output "defconfig pavadinimas ir variantą, jei reikia "make -j4 -C $ (pwd) O = išvestis 

Skirta „Mediatek“ (MTK) įrenginiams

 #! / bin / bash export CROSS_COMPILE = "kelias į jūsų įrankių grandinę" (jis turi pasibaigti kažkuo, pavyzdžiui, "nameofarch-kažkas-") eksportuoti ARCH = arm ARCH_MTK_PLATFORM = make "defconfig vardas ir variantas, jei reikia" make -j4 

Baigę veiksmus, būtinus jūsų branduolio architektūrai, galite įvesti terminalą: sudo bash build.sh

Tada įvesite savo vartotojo slaptažodį ir prasidės kompiliavimo procesas.

Tai gali užtrukti, bet paprastai neilgai, branduolio sudarymas nėra toks, kaip viso „Android“ ROM kaupimas. Tai tikrai priklauso nuo procesoriaus - pavyzdžiui, „AMD Phenom X4 3.4GHz“ su 8 GB operatyviosios atminties kompiliacija nuo pradžios iki pabaigos turėtų trukti maždaug 10 minučių.

Kai jis baigsis, jis turėtų pranešti jums tokiu pranešimu kaip „zimage is ready“.

ARM ir ARM64 įrenginiai

Eikite į „/ Išvestis / archyvas / ginklas / įkrova /“, kad surastumėte savo paveikslėlį.

„Mediatek“ įrenginiai

Eikite į „/ arch / arm / boot /“ ir suraskite savo paveikslėlį.

Ne visi branduolio komponentai sukuria „Zimage“ failą, kartais gali būti sukurti kaip kiti vaizdo formatai.

Svarbu: jei ketinate dar kartą kompiliuoti, prieš pradedant kompiliavimo procesą vėl rekomenduojama įvesti komandas „clean“ ir „mrproper“.

Padaryti branduolio įkrovą

Galite pasirinkti du variantus.

Galite naudoti anykernel metodą (kaip šioje XDA gijoje apibrėžė XDA user @ osm0sis). Turėtumėte perskaityti visą mokymo programą, tačiau žingsnių santrauka yra tokia:

  1. Įdėkite „zImage“ į šaknį („dtb“ ir (arba) „dtbo“ čia taip pat turėtų būti taikomi įrenginiams, kuriems reikia pasirinktinių); kiekvienas jų bus pateiktas kaip originalas, jei jo nebus įtraukta)
  2. Įdėkite visus reikalingus „ramdisk“ failus į / atminties diską ir modulius į / modulius (nurodydami visą kelią, pavyzdžiui, / moduliai / sistema / lib / moduliai)
  3. Įdėkite / pataisyti visus reikalingus pataisų failus (paprastai dalinius failus, kurie vykdomi su komandomis)
  4. Redaguokite anykernel.sh, kad pridėtumėte savo branduolio pavadinimą, įkrovos skaidinio vietą, įtrauktų ramdisk failų leidimus ir naudotų būtinų ramdisk failų modifikavimo metodus (pasirinktinai, taip pat įdėkite reklamjuostės ir (arba) versijos failus į šaknį, kad šie būtų rodomi blykstės metu).
  5. „zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md * vietelė“

Kitas jūsų turimas metodas yra išpakuoti „boot.img“ iš to paties ROM (pvz., CM, „TouchWiz“, EMUI ir kt.) Ir tos pačios „Android“ versijos. Tada jūs pakeisite „Zimage“. Vėlgi, tai yra tikrai sudėtingas procesas, todėl turėtumėte perskaityti tikslią mokymo programą, tačiau veiksmų santrauka yra tokia:

  1. Išpakuokite.
  2. Arba naudokite komandinę eilutę „unpackimg“, arba tiesiog nuvilkite vaizdą. Tai padalins vaizdą ir išpakuos pagrindinį diską į pakatalogį.
  3. Pakeiskite ramdiską, kaip jums patinka.
  4. Pakartotinio paketo paketo scenarijui nereikia jokios įvesties ir jis paprasčiausiai sujungia anksčiau suskaidytą „zImage“ su naujai įpakuotu modifikuotu atminties disku, naudodamas visą pirminio vaizdo informaciją (kuri taip pat buvo padalinta ir išsaugota).
  5. Valymo paketo scenarijus atkuria aplanką į pradinę būseną, pašalindamas split_img + „ramdisk“ katalogus ir visus naujus supakuotus „ramdisk“ ar vaizdo failus.

Prieš blykstelėdami savo branduolį, turėtumėte sukurti atsarginę atsargų atsargų įkėlimo „boot.img“ kopiją ir mirksėti, kad patikrintumėte, ar tai leidžia „Android“ sistemai paleisti.

Funkcijų pridėjimas prie jūsų branduolio

Pridėjus savybių prie savo branduolio, yra puikus būdas jį pagardinti. Yra daug dalykų, kuriuos galite pataisyti, pavyzdžiui, procesoriaus valdytojai, IO planuokliai, GPU perregistravimas, garso patobulinimai ir kt.

Čia pateiktas gubernatoriaus pridėjimo pavyzdys (šis gubernatorius yra pavadintas Intellimm).

Pirmuosiuose 2 teksto laukeliuose matome, kad „arch / arm / configs /“ „msm8974_sec_defconfig“ ir „cm_msm8974_sec_defconfig“ buvo modifikuoti.

Tarp šio failo 140–141 eilučių buvo pridėtas šis tekstas: „CONFIG_CPU_FREQ_GOV_INTELLIMM = y“

(Ši eilutė skirta „Intellimm“ įjungti, kai jūs kompiluojate savo branduolį)

Ta pati technika taikoma ir kitiems teksto laukeliams (tai, kas buvo pridėta ir ištrinta, ir jo vieta)

Priklausomai nuo jūsų pridedamų funkcijų, daugiau ar mažiau failų galima modifikuoti, pridėti ar ištrinti.

Taigi apibendrinant, įsipareigokime pamatyti visus padarytus pakeitimus ir visa kita!

Bendrieji patarimai ir gudrybės

Kaip pakeisti branduolio pavadinimą ir versiją:

Paprastas metodas:

Redaguokite šią eilutę savo defconfig faile:

 "CONFIG_LOCALVERSION =" - "po - jūsų defconfig 

Pavyzdys: CONFIG_LOCALVERSION = ”-„ XenomTW-3.2.6 ″

Pažangūs metodai:

Eikite į „Makefile“ savo branduolio šaltinio šakniniame aplanke.

Pridėti šias eilutes:

 CONFIG_LOCALVERSION = "jūsų darbo kanalo pavadinimas" LOCALVERSION = "jūsų jūsų tinklo kanalo versija" 

Nekeiskite linijų „Versija“, „PatchLevel“, „Sublevel“ ar „Extraversion“.

Alternatyvus metodas:

Eikite į scenarijus / mkcompile_h ir pridėkite šias eilutes:

 LINUX_COMPILE_BY = "jūsų pasirinkimo pavadinimas" LINUX_COMPILE_HOST = "jūsų pasirinkimo pavadinimas" 

PATH problemų sprendimas:

Jei pastebite klaidą „Ar jūsų kelias teisingas?“, Pabandykite tai padaryti „Linux“ terminale:

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

Prieiga prie „Ubuntu“ aplankų iš „Windows 10“

Paprastai jūsų kelias į Ubuntu turėtų būti:

C: \ Vartotojai “PAVADINIMAS” \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home

Bet jūs neturėtumėte redaguoti failų tiesiogiai iš „Windows“, nes tai paprastai sulaužys jiems suteiktas teises - tuomet turėsite iš naujo nustatyti leidimus iš „Linux“ terminalo.

Įdomios Straipsniai