Kā izveidot Android kodolu operētājsistēmā Windows 10

Appual's ir dažas lieliskas rokasgrāmatas par Android attīstību, piemēram, kā izveidot pielāgotu ROM no Android atvērtā pirmkoda projekta - taču šīs rokasgrāmatas parasti ir vērstas uz tīru Linux būvēšanas vidi.

Šajā rokasgrāmatā mēs parādīsim, kā izveidot Android kodolu operētājsistēmā Windows 10 - jā, mēs joprojām izmantosim Linux būvēšanas vidi, bet tā būs Linux apakšsistēma operētājsistēmā Windows 10. Tātad, ja jūs esat Windows 10 lietotājam, kuru interesē izstrādāšana operētājsistēmai Android, uzmanīgi sekojiet mūsu ceļvedim.

Šajā rokasgrāmatā mēs īpaši iemācīsimies izveidot kodolu ARM un MediaTek ierīcēm, pievienojot funkcijas un pamata pārskatu par Git izmantošanu.

Prasības

  • Windows 10 x64 (ar Fall Creator atjauninājumu)

Linux vides iestatīšana

  1. Operētājsistēmā Windows 10 dodieties uz Iestatījumi> Atjaunināšana un drošība> Izstrādātājiem> iespējot izstrādātāju režīmu.
  2. Tagad dodieties uz Vadības panelis> Programmas> Ieslēdziet vai izslēdziet Windows līdzekļus> iespējojiet operētājsistēmas Linux apakšsistēmu.
  3. Atsāknējiet datoru.
  4. Palaidiet Linux apakšsistēmu un ļaujiet tai iet caur lejupielādes procesu. Iestatiet paroli un nepazaudējiet to.
  5. Tagad dodieties uz Windows lietotņu veikalu un lejupielādējiet Ubuntu.
  6. Palaidiet Ubuntu uz Windows 10 darbvirsmas, un tas prasīs lietotājvārdu un paroli.
  7. Ubuntu palaidiet sākotnējo termināli un ierakstiet šo komandu: apt-get update
  8. Pēc tam tiks atjaunināti visi lietotņu un atkarību repo.
  9. Nākamais termināļa tipā: sudo apt-get install -y build-essential kodola pakotne libncurses5-dev bzip2
  10. Lai pārbaudītu, vai visas atkarības ir pareizi uzstādītas, terminālī ierakstiet “gcc” (bez pēdiņām).
  11. Ja “gcc” jau ir instalēts, jums vajadzētu redzēt “gcc: fatāla kļūda: nav ievades faila”
  12. Tagad terminālī varat ierakstīt “make”. Ja “make” jau ir instalēts, jums vajadzētu redzēt “make: *** mērķis nav norādīts un makefile nav atrasts. pieturas. ”
  13. Nākamais tips “git” un ja “git” jau ir instalēts, jums vajadzētu redzēt ķekars galveno git komandu.
  14. Tagad mums ir vajadzīgi daži instrumentu komplekti (ir vairāki veidi, ieskaitot GCC, Linaro un nedaudzu pielāgotu). Dažām ierīcēm var būt vajadzīgas dažādas rīku ķēdes, piemēram, ne visi ierīces kodoli sāknējas vai kompilējas ar GCC.

ARM ierīcēm

Šim nolūkam mēs izmantosim GCC 4.7.

  1. Atveriet Linux termināli un ierakstiet: mkdir kodols
  2. Tagad ierakstiet: cd kodols
  3. (Tam nav jābūt “kodolam”, tas ir vienkāršības labad, jūs to varat nosaukt, ko vien vēlaties.)
  4. Tagad ierakstiet: git clone //android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7

ARM 64 ierīcēm

ARM 64 ierīcēm ir nepieciešams 64 bitu kodola kompilators, piemēram, aarch64.

Ierīces avota failu iegūšana

Šī ir sarežģīta daļa, jo jums jāatrod GitHub repo, kas mitina jūsu kodola avotu. Jums, protams, tas būs jāmeklē, visticamāk, to var atrast XDA forumos.

Šeit ir kodola avota Git piemērs.

Kreisajā augšējā stūrī jums vajadzētu redzēt “Branch: Completed by xxxx”.

Ir dažādas kodola / projekta versijas, kuras parasti atdala “Testing”, “Beta”, “Final Release” utt.

Kodola mapes parasti ir šādas:

  • / arch / arm / configs : tas satur dažādus ierīces konfigurācijas failus, piemēram, regulatorus utt.
  • / output / arch / arm / boot / : šajā vietā tiks saglabāta zimage.
  • build.sh : skripts, kas vienkāršos būvniecības procesu.
  • /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2 : Tas parasti ir rīka ķēde, kas ievietota kodola avotā, tādējādi atvieglojot tās atrašanu.

Jums vajadzēs lejupielādēt kodola avotu.

Atveriet Linux termināli un pārliecinieties, ka atrodaties iepriekš izveidotā kodola mapē (CD kodols).

Pēc tam ierakstiet terminālī: “git clone“ github kodola URL ”-b“ filiāles nosaukums ”

Piemēram: “git clone //github.com/atxoxx/android_ke…amsung_msm8974 -b xenomTW”

Kodola veidošana

Lai to padarītu vieglāku, failu pārlūkprogrammā varat pāriet uz atrašanās vietu. Tam vajadzētu būt / home / user ID / kodolam (vai kādam citam, ko jūs nosaucāt kodola mapei).

Iekšpusē jums vajadzētu redzēt divas mapes rīkjoslai un kodola avotam. Iet kodola avota mapē.

ARM ierīcēm

Terminālī ierakstiet šādas komandas:

 #! / bin / bash export ARCH = arm export CROSS_COMPILE = mkdir output output -C $ (pwd) O = output "defconfig nosaukums un vajadzības gadījumā variants" make -j4 -C $ (pwd) O = output 

Šeit ir pārskats par šo komandu darbību, lai nākotnē to padarītu vieglāku.

  • #! / bin / bash: liek skriptam darboties čaulas komandā
  • eksportēt ARCH = arm: tā kodola arhitektūras veida noteikšana (piemēram, arm64 utt.)
  • eksportēt CROSS_COMPILE = : atrodiet rīkjoslu. Tam jāatbilst precīzam ceļam, un domuzīme beigās ir patiešām obligāta.
  • mkdir izlaide: Tas izveido direktoriju apkopotās zimages saglabāšanai
  • make -C $ (pwd) O = output : Defconfig definēšana kodola kompilācijas vadīšanai.
  • make -j4 -C $ (pwd) O = output : Kad sākas būvniecības process, -j # norāda, cik ātri mēģināt sastādīt. Parasti šo numuru iestatāt atbilstoši savam CPU. Piemēram, ja iestatāt -j32 budžetā, iespējams, izraisīsit lielu nestabilitāti.
  • cp izvade / arch / arm / boot / image $ (pwd) / arch / arm / boot / zImage : Tas ir paredzēts attēla pārvietošanai uz otro ceļu.

Vēl viens piemērs:

 #! / bin / bash export ARCH = rokas eksports CROSS_COMPILE = $ (pwd) /arm-cortex-linux-gnueabi-linaro_5.2-2015.11-2/bin/arm-cortex-linux-gnueabi- mkdir output make -C $ (pwd) O = output 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 

ARM 64 ierīcēm

 #! / bin / bash export ARCH = arm64 export CROSS_COMPILE = "ceļš uz jūsu rīku ķēdi" (tam ir jābeidzas ar kaut ko līdzīgu "nameofarch-kaut ko") mkdir izejas make -C $ (pwd) O = output "defconfig nosaukums un variants, ja nepieciešams "make -j4 -C $ (pwd) O = output 

Mediatek (MTK) ierīcēm

 #! / bin / bash export CROSS_COMPILE = "ceļš uz jūsu rīku ķēdi" (tam jābeidzas ar kaut ko līdzīgu "nameofarch-something-") eksportēt ARCH = arm ARCH_MTK_PLATFORM = make "defconfig nosaukums un variants, ja nepieciešams" make -j4 

Kad esat pabeidzis kodola arhitektūrai nepieciešamās darbības, terminālī varat ievadīt: sudo bash build.sh

Pēc tam ievadīsit savu lietotāja paroli un sāksies apkopošanas process.

Tas var aizņemt laiku, bet parasti tas nav ļoti ilgs, kodola sastādīšana nav tāda, kā visa Android ROM apkopošana. Tas patiešām ir atkarīgs no CPU - piemēram, AMD Phenom X4 3.4GHz ar 8 GB RAM, lai sastādītu no sākuma līdz beigām, vajadzētu aizņemt apmēram 10 minūtes.

Kad tas būs pabeigts, tam vajadzētu jūs informēt ar ziņojumu, piemēram, “zimage is ready”.

ARM un ARM64 ierīces

Lai atrastu savu attēlu, dodieties uz “/ Izvade / arch / arm / boot /”.

Mediatek ierīces

Lai atrastu savu attēlu, dodieties uz “/ arch / arm / boot /”.

Ne visas kodola būvēšanas rezultātā tiks izveidots Zimage fails, dažreiz to var izveidot kā citus attēlu formātus.

Svarīgi: ja jūs gatavojaties kompilēt vēlreiz, pirms kompilēšanas procesa atkārtotas sākšanas ieteicams ievadīt komandas make clean un mrproper.

Kodolu sāknēšana

Ir divas izvēles iespējas.

Varat arī izmantot anykernel metodi (kā šajā XDA pavedienā definējis XDA user @ osm0sis). Jums vajadzētu izlasīt visu apmācību, taču darbību kopsavilkums ir šāds:

  1. Ievietojiet zImage saknē (dtb un / vai dtbo šeit jāatstāj arī ierīcēm, kurām ir vajadzīgas pielāgotas ierīces; katra no tām būs oriģinālā, ja tā nav iekļauta)
  2. Ievietojiet visus nepieciešamos ramdisk failus / ramdisk un moduļus / moduļos (ar pilnu ceļu, piemēram, / moduļi / sistēma / lib / moduļi)
  3. Ievietojiet nepieciešamos ielāpa failus (parasti daļējus failus, kas iet ar komandām) mapē / ielāps
  4. Pārveidojiet anykernel.sh, lai pievienotu kodola vārdu, sāknēšanas nodalījuma vietu, iekļauto ramdisk failu atļaujas un izmantotu metodes visām nepieciešamajām ramdisk modifikācijām (pēc izvēles arī saknē ievietojiet reklāmkarogu un / vai versiju failus, lai tie tiktu parādīti zibspuldzes laikā).
  5. `zip -r9 UPDATE-AnyKernel2.zip * -x .git README.md * vietturis`

Otra pieejamā metode ir boot.img izpakošana no tā paša ROM (piemēram, CM, TouchWiz, EMUI utt.) Un tās pašas Android versijas. Pēc tam jūs apmainītos ar Zimage. Tas atkal ir patiešām sarežģīts process, un jums vajadzētu izlasīt precīzu apmācību, taču darbību kopsavilkums ir šāds:

  1. Izsaiņojiet.
  2. Vai nu izmantojiet komandrindu “unpackimg”, vai arī vienkārši velciet un nometiet attēlu. Tādējādi attēls tiks sadalīts un iesaiņots ramdisk apakšdirektorijā.
  3. Mainiet ramdisku, kā vēlaties.
  4. Paketes paketes skriptam nav nepieciešama ievade un tas vienkārši rekombinē iepriekš sadalīto zImage ar tikko iesaiņoto modificēto disku, izmantojot visu sākotnējā attēla informāciju (kas arī tika sadalīta un saglabāta).
  5. Tīrīšanas paketes skripts mapi atiestata sākotnējā stāvoklī, noņemot split_img + ramdisk direktorijus un visus jaunus iesaiņotos ramdisk vai attēlu failus.

Pirms kodola mirgošanas, jums vajadzētu izveidot sava krājuma boot.img dublējumu un pēc tam mirgot kodola, lai redzētu, vai tas ļauj jūsu Android sistēmai palaist.

Funkciju pievienošana savam kodolam

Funkciju pievienošana savam kodolam ir lielisks veids, kā to pastiprināt. Ir daudz lietu, kuras varat iekniebt, piemēram, CPU vadītāji, IO plānotāji, GPU pārslēgšana, audio uzlabojumi utt.

Gubernatora pievienošanas piemērs ir šeit (šī gubernatora kods ir Intellimm).

Pirmajos 2 teksta lodziņos mēs varam redzēt, ka “arch / arm / configs /” “msm8974_sec_defconfig” un “cm_msm8974_sec_defconfig” ir modificēti.

Starp šo failu 140. un 141. rindu ir pievienots šis teksts: “CONFIG_CPU_FREQ_GOV_INTELLIMM = y”

(Šī rinda ir paredzēta, lai iespējotu Intellimm, veidojot kodolu)

Tas pats paņēmiens attiecas uz pārējiem tekstlodziņiem (kas ir pievienots un izdzēsts, un tā atrašanās vieta)

Atkarībā no pievienotajām funkcijām vairāk vai mazāk failus var modificēt, pievienot vai izdzēst.

Rezumējot, apņemsimies redzēt visas veiktās izmaiņas un visu pārējo!

Vispārīgi padomi un viltības

Kā mainīt kodola nosaukumu un versiju:

Vienkārša metode:

Rediģējiet šo rindu defconfig failā:

 "CONFIG_LOCALVERSION =" - "pēc - jūsu defconfig 

Piemērs: CONFIG_LOCALVERSION = ”- XenomTW-3.2.6 ″

Uzlabotās metodes:

Atveriet vietni Makefile kodola avota saknes mapē.

Pievienojiet šīs rindas:

 CONFIG_LOCALVERSION = "jūsu darba kanāla nosaukums" LOCALVERSION = "jūsu vietnieka kanāla versija" 

Nemainiet līniju versiju, PatchLevel, Sublevel vai Extraversion.

Alternatīva metode:

Dodieties uz skriptiem / mkcompile_h un pievienojiet šīs rindiņas:

 LINUX_COMPILE_BY = "jūsu izvēles nosaukums" LINUX_COMPILE_HOST = "jūsu izvēles nosaukums" 

PATH problēmu risināšana:

Ja rodas kļūda “Vai jūsu ceļš ir pareizs?”, Izmēģiniet šo darbību Linux terminālī:

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

Piekļuve Ubuntu mapēm no Windows 10

Jūsu ceļam uz Ubuntu parasti vajadzētu būt:

C: \ Lietotāji ”NAME” \ AppData \ Local \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ home

Bet jums nevajadzētu rediģēt failus tieši no Windows, jo tas parasti sabojās atļaujas tiem - jums pēc tam vajadzēs atiestatīt atļaujas no Linux termināļa.

Interesanti Raksti