Ako zostaviť jadro Android v systéme Windows 10

Appual's má niekoľko vynikajúcich sprievodcov vo vývoji systému Android, ako napríklad Ako zostaviť vlastnú ROM z projektu Android Open Source Project - títo sprievodcovia sú však zvyčajne zameraní na čisté prostredie pre vytváranie Linuxov.

V tejto príručke vám ukážeme, ako zostaviť jadro Android v systéme Windows 10 - áno, stále budeme používať prostredie na vytváranie systému Linux, ale bude to podsystém Linux v systéme Windows 10. Takže ak ste systém Windows 10 používateľa, ktorý má záujem o vývoj pre Android, postupujte pozorne podľa nášho sprievodcu.

V tejto príručke sa konkrétne naučíme, ako zostaviť jadro pre zariadenia ARM a MediaTek, pridávať funkcie a základný prehľad o používaní Git.

požiadavky

  • Windows 10 x64 (s aktualizáciou programu Fall Creator)

Nastavenie prostredia Linux

  1. V systéme Windows 10 prejdite do časti Nastavenia> Aktualizácia a zabezpečenie> Pre vývojárov> povoľte režim vývojárov.
  2. Teraz prejdite na Ovládací panel> Programy> Zapnúť alebo vypnúť funkcie systému Windows> povoľte Windows Subsystem pre Linux.
  3. Reštartujte počítač.
  4. Spustite podsystém Linux a nechajte ho prejsť procesom sťahovania. Nastavte heslo a nestratte ho.
  5. Teraz prejdite do obchodu s aplikáciami Windows a stiahnite si Ubuntu.
  6. Spustite Ubuntu na pracovnej ploche Windows 10 a vyžiada si užívateľské meno a heslo.
  7. V Ubuntu spustite natívny terminál a zadajte nasledujúci príkaz: apt-get update
  8. Toto bude pokračovať v aktualizácii všetkých repozitárov pre aplikácie a závislosti.
  9. Ďalej v type terminálu: sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
  10. Aby ste skontrolovali, či boli všetky závislosti správne nainštalované, do terminálu napíšte „gcc“ (bez úvodzoviek).
  11. Ak je „gcc“ už nainštalovaný, malo by sa zobraziť „gcc: fatálna chyba: žiadny vstupný súbor“
  12. Teraz môžete do terminálu napísať „make“. Ak už je značka „make“ nainštalovaná, mala by sa zobraziť položka „make: *** nebol zadaný žiadny cieľ a nebol nájdený žiadny makefil. zastaviť. "
  13. Ďalší typ 'git', a ak už je “git” nainštalovaný, mali by ste vidieť veľa základných príkazov git.
  14. Teraz potrebujeme niekoľko nástrojov (existuje niekoľko typov, vrátane GCC, Linaro a niekoľko vlastných). Niektoré zariadenia môžu vyžadovať rôzne súbory nástrojov, napríklad nie všetky jadrá zariadení sa budú spúšťať alebo kompilovať s GCC.

Pre ARM zariadenia

Na tento účel použijeme GCC 4.7.

  1. Otvorte terminál systému Linux a zadajte: mkdir kernel
  2. Teraz napíšte: cd kernel
  3. (nemusí to byť „jadro“, kvôli jednoduchosti to môžete pomenovať, čo chcete.)
  4. Teraz napíšte: git clone //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

Pre zariadenia ARM 64

Pre zariadenia ARM 64, napríklad aarch64, potrebujete 64-bitový kompilátor jadra.

Získanie zdrojových súborov pre vaše zariadenie

Toto je zložitá časť, pretože musíte nájsť repozitár GitHub, ktorý hostí váš zdroj jadra. Budete ho samozrejme musieť hľadať, pravdepodobne ho nájdete na fórach XDA.

Tu je príklad zdroja Git jadra.

V ľavom hornom rohu by sa mala zobraziť položka „Branch: Completed by xxxx“.

Existujú rôzne verzie jadra / projektu, zvyčajne oddelené „Testovanie“, „Beta“, „Záverečné vydanie“ atď.

Zložky jadra sú zvyčajne nasledujúce:

  • / arch / arm / configs : Obsahuje rôzne konfiguračné súbory pre zariadenie, ako sú guvernéri atď.
  • / output / arch / arm / boot / : Toto je miesto, kde bude uložený zimage.
  • build.sh : Skript, ktorý zjednoduší proces budovania.
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 : Toto je zvyčajne sada nástrojov umiestnená v zdroji jadra, čo uľahčuje vyhľadávanie.

Musíte si stiahnuť zdroj jadra.

Otvorte terminál Linux a uistite sa, že ste v priečinku jadra, ktorý ste predtým vytvorili (cd jadro).

Potom zadajte terminál: „git clone“ URL githubového jadra ”-b„ názov vetvy “

Napríklad: “git clone //github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW”

Budovanie jadra

Aby ste to uľahčili, môžete prejsť na miesto v prieskumníkovi súborov. Malo by to byť / home / user / kernel (alebo čokoľvek, čo ste nazvali priečinok kernel).

Vo vnútri by ste mali vidieť dva priečinky, ktoré obsahujú toolchain a zdroj jadra. Prejdite do zdrojového priečinka jadra.

Pre ARM zariadenia

Do terminálu zadajte nasledujúce príkazy:

 #! / bin / bash export ARCH = export exportu CROSS_COMPILE = mkdir output make -C $ (pwd) O = output "meno defconfig a variant v prípade potreby" make -j4 -C $ (pwd) O = output 

Tu je prehľad toho, čo tieto príkazy robia, aby sa to v budúcnosti uľahčilo.

  • #! / bin / bash: Povie skriptu, aby spustil príkaz shell
  • export ARCH = arm: Definovanie typu jadrovej architektúry (napríklad arm64 atď.)
  • export CROSS_COMPILE = : Vyhľadajte, kde sa nachádza toolchain. Musí zodpovedať presnej ceste a pomlčka na konci je skutočne povinná.
  • mkdir output: Vytvorí sa adresár na uloženie kompilovaného zimage
  • make -C $ (pwd) O = výstup : Definovanie defconfig na vedenie kompilácie jadra.
  • make -j4 -C $ (pwd) O = výstup : Na začiatku procesu budovania, -j # povie, ako rýchlo sa má kompilovať. Zvyčajne nastavíte toto číslo podľa vášho CPU. Napríklad nastavenie -j32 na rozpočtovom CPU by pravdepodobne spôsobilo masívnu nestabilitu.
  • výstup cp / arch / rameno / boot / obrázok $ (pwd) / arch / rameno / boot / zImage : Slúži na presun obrazu na druhú cestu.

Ďalší príklad:

 #! / bin / bash export ARCH = export exportu CROSS_COMPILE = $ (pwd) /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi- mkdir output make -C $ (pwd) O = výstup msm8974_sec_defconfig VARIANT_DEFCONFIG = msm8974_sec_ks01_skt_defconfig SELINUX_DEFCONFIG = selinux_defconfig make -j4 -C $ (pwd) O = výstup cp výstup / arch / arm / boot / Image $ / arm / boot / image $ / pa 

Pre zariadenia ARM 64

 #! / bin / bash export ARCH = arm64 export CROSS_COMPILE = "cesta k vášmu toolchainu" (musí končiť niečím ako "nameofarch-niečo-") mkdir output make -C $ (pwd) O = output "name defconfig a prípadne variant "make -j4 -C $ (pwd) O = výstup 

Pre zariadenia Mediatek (MTK)

 #! / bin / bash export CROSS_COMPILE = "cesta k vášmu toolchainu" (musí končiť niečím ako "nameofarch-niečo-") export ARCH = rameno ARCH_MTK_PLATFORM = urobiť "meno defconfig a variantu" make -j4 

Po dokončení krokov, ktoré sú potrebné pre architektúru jadra, môžete zadať terminál: sudo bash build.sh

Potom zadáte svoje používateľské heslo a začne sa proces kompilácie.

Môže to chvíľu trvať, ale spravidla nie príliš dlho, kompilovanie jadra nie je ako kompilácia celého operačného systému Android ROM. To je skutočne závislé od procesora - napríklad kompilácia AMD Phenom X4 3, 4 GHz s 8 GB pamäte RAM by mala trvať asi 10 minút, od začiatku do konca.

Po dokončení by vás mal upozorniť pomocou správy „zimage is ready“.

Zariadenia ARM a ARM64

Prejdite na „/ Output / arch / arm / boot /“ a vyhľadajte svoju zimage.

Zariadenia Mediatek

Prejdite na “/ arch / arm / boot /” a nájdite si zimage.

Nie všetky kompilácie jadra budú mať za následok súbor Zimage, niekedy môžu byť vytvorené ako iné obrazové formáty.

Dôležité: Ak sa chystáte kompilovať znova, odporúča sa zadať príkazy make clean a urobiť mrproper skôr, ako začnete kompilačný proces.

Vytváranie jadra

Môžete si vybrať z dvoch možností.

Môžete použiť metódu anykernel (definovanú používateľom XDA @ osm0sis v tomto vlákne XDA). Mali by ste si prečítať celý návod, ale súhrn krokov je nasledujúci:

  1. Umiestnite zImage do koreňového adresára (dtb a / alebo dtbo by mali ísť sem aj pre zariadenia, ktoré vyžadujú vlastné, každé bude mať pôvodný pôvodný obsah, ak nebude zahrnutý)
  2. Vložte všetky požadované súbory ramdisk do / ramdisk a moduly do / modules (s úplnou cestou ako / modules / system / lib / modules)
  3. Vložte všetky požadované súbory opráv (zvyčajne čiastočné súbory, ktoré idú s príkazmi) do súboru / opravy
  4. Upravte súbor anykernel.sh, aby ste pridali názov svojho jadra, umiestnenie bootovacieho oddielu, oprávnenia pre zahrnuté súbory ramdisk a použite metódy pre všetky požadované úpravy ramdisk (voliteľne tiež umiestnite súbory bannerov a / alebo verzií do koreňového adresára, aby sa tieto zobrazovali počas Flash)
  5. `zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md * placeholder`

Ďalšou dostupnou metódou je rozbalenie súboru boot.img z rovnakej pamäte ROM (napríklad CM, TouchWiz, EMUI atď.) A rovnakej verzie systému Android. Potom by ste vymenili Zimage. Toto je opäť veľmi komplikovaný proces a mali by ste si prečítať presný návod, ale zhrnutie krokov je:

  1. Rozbaľte.
  2. Použite príkazový riadok „unpackimg“ alebo jednoducho presuňte obrázok myšou. Týmto sa rozdelí obraz a rozbalí sa ramdisk do podadresára.
  3. Zmeňte ramdisk tak, ako chcete.
  4. Dávkový skript repackimg nevyžaduje žiadny vstup a jednoducho kombinuje predtým rozdelený zImage s novo zbaleným modifikovaným ramdiskom pomocou všetkých pôvodných obrazových informácií (ktoré boli tiež rozdelené a uložené).
  5. Dávkový skript vyčistenia obnoví pôvodný stav priečinka a odstráni adresáre split_img + ramdisk a všetky nové zabalené súbory ramdisk alebo obrazové súbory.

Pred spustením jadra by ste si mali vytvoriť zálohu svojho súboru boot.img a potom flashovať jadro, aby ste zistili, či umožňuje spustenie systému Android.

Pridanie funkcií do jadra

Pridanie funkcií do jadra je skvelý spôsob, ako ho okoreniť. Existuje veľa vecí, ktoré môžete vylepšiť, ako sú napríklad procesory, procesory IO, pretaktovanie GPU, vylepšenia zvuku atď.

Príklad na pridanie guvernéra je tu (tento guvernér sa nazýva Intellimm).

V prvých dvoch textových poliach vidíme, že v položkách „arch / arm / configs /“ „msm8974_sec_defconfig“ a „cm_msm8974_sec_defconfig“ boli zmenené.

Medzi riadky 140 a 141 týchto súborov bol tento text pridaný: „CONFIG_CPU_FREQ_GOV_INTELLIMM = y“

(Tento riadok slúži na povolenie Intellimm, keď kompilujete svoje jadro.)

Rovnaká technika platí pre ostatné textové polia (to, čo bolo pridané a odstránené a jeho umiestnenie)

V závislosti od pridaných funkcií je možné viac, alebo menej súborov upravovať, pridávať alebo mazať.

Aby som to zhrnul, zaväzujme sa, uvidíme všetky vykonané zmeny a všetko ostatné!

Všeobecné tipy a triky

Ako zmeniť názov a verziu jadra:

Jednoduchá metóda:

Upravte tento riadok v súbore defconfig:

 "CONFIG_LOCALVERSION =" - "po - vo vašej konfigurácii 

Príklad: CONFIG_LOCALVERSION = ”- XenomTW-3.2.6 ″

Pokročilé metódy:

Prejdite na Makefile v koreňovom priečinku zdroja jadra.

Pridajte tieto riadky:

 CONFIG_LOCALVERSION = "nameofyourkernel" LOCALVERSION = "versionofyourkernel" 

Nemeňte riadky Verzia, PatchLevel, Sublevel alebo Extraversion.

Alternatívna metóda:

Prejdite na skripty / mkcompile_h a pridajte tieto riadky:

 LINUX_COMPILE_BY = "nameofyourchoice" LINUX_COMPILE_HOST = "nameofyourchoice" 

Riešenie problémov s PATH:

Ak narazíte na chybu „Je vaša cesta správna?“, Skúste to v termináli Linux:

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

Prístup k priečinkom Ubuntu zo systému Windows 10

Vaša cesta k Ubuntu by zvyčajne mala byť:

C: \ Users ”NAME” \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home

Nemali by ste však upravovať súbory priamo zo systému Windows, pretože by to spravidla narušilo oprávnenie - potom by ste museli povolenia resetovať z terminálu Linux.

Zaujímavé Články