Како да направите Андроид Кернел на Виндовс 10

Аппуал-ови имају неколико сјајних водича за развој Андроид-а, као што је Начин израде прилагођеног РОМ-а из Андроид Опен Соурце Пројекта - али ови водичи су обично усмерени на чисто Линук окружење за изградњу.

У овом водичу ћемо вам показати како да направите Андроид кернел на Виндовс 10 - да, и даље ћемо користити окружење за изградњу Линука, али то ће бити Линук подсистем унутар Виндовса 10. Дакле, ако сте Виндовс 10 корисника заинтересованог за развој за Андроид, пажљиво следите наш водич.

У овом водичу посебно ћемо научити како да направимо кернел за АРМ и МедиаТек уређаје, додајемо функције и основни преглед употребе Гита.

Захтеви

  • Виндовс 10 к64 (са ажурирањем Фалл Цреатор-а)

Подешавање Линук окружења

  1. У оперативном систему Виндовс 10 идите на Подешавања> Ажурирање и безбедност> За програмере> омогућите режим програмера.
  2. Сада идите на Цонтрол Панел> Програми> Укључите или искључите Виндовс функције> омогућите Виндовс Подсистем за Линук.
  3. Поново покрените рачунар.
  4. Покрените Линук подсистем и омогућите му да прође кроз процес преузимања. Подесите лозинку и не губите је.
  5. Сада идите у Виндовс апликацију и преузмите Убунту.
  6. Покрените Убунту на радној површини Виндовс 10 и он ће захтевати корисничко име и лозинку.
  7. У Убунту покрените матични терминал и откуцајте следећу наредбу: апт-гет упдате
  8. Ово ће наставити да ажурира све репозиције за апликације и зависности.
  9. Следеће у типу терминала: судо апт-гет инсталл -и гради кључни кернел-пакет либнцурсес5-дев бзип2
  10. Да бисте проверили да ли су све зависности исправно инсталиране, упишите 'гцц' у терминал (без наводника).
  11. Ако је „гцц“ већ инсталиран, требало би да видите „гцц: фатал еррор: но инпут филе“
  12. Сада можете да унесете 'маке' у терминал. Ако је „маке“ већ инсталиран, требали бисте видјети „маке: *** није наведен циљ и није пронађен макефиле. зауставити."
  13. Следећи тип је „гит“, а ако је „гит“ већ инсталиран, требало би да видите гомилу основних гит команди.
  14. Сада су нам потребне неке алатке (постоји неколико типова, укључујући ГЦЦ, Линаро и прегршт прилагођених). Неки уређаји могу захтевати различите ланце алата, на пример, неће се сва језгра уређаја покренути или компилирати са ГЦЦ-ом.

За АРМ уређаје

За то ћемо користити ГЦЦ 4.7.

  1. Отворите Линук терминал и откуцајте: мкдир кернел
  2. Сада откуцајте: цд кернел
  3. (не мора бити 'кернел', ово је ради једноставности, можете га именовати како год желите.)
  4. Сада откуцајте: гит цлоне //андроид.гооглесоурце.цом/платформ/пребуилтс/гцц/линук-к86/арм/арм-еаби-4.7

За АРМ 64 уређаје

Потребан вам је 64-битни компајлер за кернел за АРМ 64 уређаје, на пример аарцх64.

Добијање изворних датотека за ваш уређај

Ово је шкакљив део, јер морате пронаћи ГитХуб репо који домаћин вашег кернел извора. Наравно да ћете морати да га потражите, највероватније да се може наћи на КСДА форумима.

Ево примера извора кернела Гит.

На горњој левој страни требали бисте видети „Подружница: Довршена кккк“.

Постоје различите верзије кернела / пројекта, обично раздвојене „Тестинг“, „Бета“, „Финал Релеасе“, итд.

Мапе кернела су обично следеће:

  • / арцх / арм / цонфигс : Садржи различите конфигурационе датотеке за уређај, као што су гувернери, итд.
  • / оутпут / арцх / арм / боот / : Овде ће бити сачувана зимаге.
  • буилд.сх : Скрипта која ће поједноставити процес изградње.
  • /арм-цортек-линук-гнуеаби-линаро_5.2-2015.11-2 : Ово је типично алатни ланац смјештен у извору кернела, па га је лакше пронаћи.

Требат ћете преузети извор кернел-а.

Отворите Линук терминал и проверите да ли се налазите у мапи кернел коју сте претходно креирали (цд кернел).

Затим упишите терминал: "гит цлоне" УРЛ гитхуб кернела "-б" назив гране "

На пример: „гит клон //гитхуб.цом/аткокк/андроид_ке…амсунг_мсм8974 -б кеномТВ“

Изградња језгре

Да бисте олакшали поступак, можете се кретати до локације у програму за истраживање датотека. То би требао бити / хоме / усер ИД / кернел (или како год сте назвали директоријум кернел).

Требали бисте видети две фасцикле унутра, за алатну мрежу и извор кернел-а. Уђите у изворну фасциклу кернела.

За АРМ уређаје

У терминалу упишите сљедеће команде:

 #! / бин / басх извоз АРЦХ = извоз извоза ЦРОСС_ЦОМПИЛЕ = мкдир излаз маке -Ц $ (пвд) О = излаз "име дефцонфиг-а и варијанте по потреби" маке -ј4 -Ц $ (пвд) О = излаз 

Ево прегледа шта раде ове команде да бисте то олакшали у будућности.

  • #! / бин / басх: Каже да се скрипта покреће у наредби схелл
  • екпорт АРЦХ = арм: дефинисање типа архитектуре кернела (на пример арм64 итд)
  • екпорт ЦРОСС_ЦОМПИЛЕ = : Пронађите локацију алата. Мора одговарати тачном путу, а цртица на крају је заиста обавезна.
  • мкдир излаз: Ово ствара директоријум за спремање компајлиране зимаге
  • маке -Ц $ (пвд) О = излаз : Дефинисање дефцонфиг-а за вођење компилације кернела.
  • маке -ј4 -Ц $ (пвд) О = излаз : Када започне процес изградње, -ј # говори колико брзо треба да проба и компајлира. Обично тај број постављате у складу са вашим ЦПУ-ом. На пример, подешавање на -ј32 на буџетском ЦПУ-у вероватно би изазвало велику нестабилност.
  • цп излаз / лук / арм / боот / Имаге $ (пвд) / арцх / арм / боот / зИмаге : Ово је за померање слике на другу стазу.

Други пример:

 #! / бин / басх екпорт АРЦХ = извоз извоза ЦРОСС_ЦОМПИЛЕ = $ (пвд) /арм-цортек-линук-гнуеаби-линаро_5.2-2015.11-2/бин/арм-цортек-линук-гнуеаби-мкдир излаз маке -Ц $ (ОСИ) о = излаз мсм8974_сец_дефцонфиг ВАРИАНТ_ДЕФЦОНФИГ = мсм8974_сец_кс01_скт_дефцонфиг sELINUX_DEFCONFIG = селинук_дефцонфиг да -ј4 Ц $ (ПВД) о = излаз ЦП излаз / лук / рука / boot / Слика $ (ПВД) / лук / рука / boot / зИмаге 

За АРМ 64 уређаје

 #! / бин / басх екпорт АРЦХ = арм64 екпорт ЦРОСС_ЦОМПИЛЕ = "пут до ваше алатне мреже" (мора се завршити нечим попут "намеофарцх-сометхинг-") мкдир оутпут маке -Ц $ (пвд) О = оутпут "наме дефцонфиг и варијанта ако је потребно "маке -ј4 -Ц $ (пвд) О = излаз 

За Медиатек (МТК) уређаје

 #! / бин / басх екпорт ЦРОСС_ЦОМПИЛЕ = "пут до ваше алатне мреже" (мора се завршити нечим попут "намеофарцх-сометхинг-") екпорт АРЦХ = арм АРЦХ_МТК_ПЛАТФОРМ = маке "наме дефцонфиг-а и варијанте по потреби" маке -ј4 

Када довршите кораке потребне за своју архитектуру кернела, можете да укуцате терминал: судо басх буилд.сх

Тада ћете унијети своју корисничку лозинку и поступак компилације ће почети.

Може потрајати неко време, али обично не јако дуго, компајлирање кернела није попут компилације целог Андроид РОМ-а. Ово заиста зависи од процесора - на пример, АМД Пхеном Кс4 3, 4ГХз са 8 ГБ РАМ-а треба да траје око 10 минута да би се компилирао од почетка до краја.

Када заврши, требао би вас обавестити поруком попут „зимаге је спреман“.

АРМ и АРМ64 уређаји

Идите на „/ излаз / лук / руку / боот /“ да бисте пронашли зимаге.

Медиатек уређаји

Идите на „/ арцх / арм / боот /“ да пронађете зимаге.

Неће све градње кернела резултирати зимаге датотеком, понекад се може градити као други формати слика.

Важно: Ако ћете поново саставити, препоручује се да унесете наредбе очистите и направите мрпропер прије него што поново започнете поступак компилације.

Израда Кернел Боот-а

Постоје две опције за вас.

Можете или употребити метод аникернел (као што је дефинисано од стране КСДА корисника @ осм0сис у овом КСДА нити). Требали бисте прочитати читав туториал, али сажетак корака је следећи:

  1. Поставите зИмаге у корен (дтб и / или дтбо би овде требало да иде и за уређаје који захтевају прилагођене, сваки ће се вратити у оригинал ако није укључен)
  2. Ставите све потребне рамдиск датотеке у / рамдиск и модуле у / модуле (са потпуном стазом попут / модуле / систем / либ / модуле)
  3. Ставите све потребне датотеке закрпе (углавном парцијалне датотеке које иду са наредбама) у / закрпу
  4. Измените аникернел.сх да бисте додали име вашег кернела, локацију партиције за дизање система, дозволе за укључене датотеке рамдиск-а и користили методе за све потребне измене рамдиск-а (опционо, такође ставите датотеке са натписима и / или верзије у корен како би се ове приказивале током блица)
  5. `зип -р9 УПДАТЕ-АниКернел2.зип * -к .гит РЕАДМЕ.мд * плацехолдер`

Други начин који имате на располагању је отпакирање боот.имг са истог РОМ-а (као што су ЦМ, ТоуцхВиз, ЕМУИ итд.) И исте верзије Андроида. Тада бисте замењивали Зимаге. Поново, ово је заиста компликован процес и требало би да прочитате тачан водич, али сажетак корака је:

  1. Откопчајте.
  2. Или користите командну линију "распакирај", или једноставно превуците и испустите слику. Ово ће подијелити слику и распакирати рамдиск у поддиректоријум.
  3. Промените рамдиск као што желите.
  4. Склоп скрипте за поновно постављање не захтијева никакав унос и једноставно рекомбинира претходно подијељени зИмаге с новопакираним модифицираним рамдиск користећи све оригиналне информације о слици (које су такођер подијељене и спремљене).
  5. Пакет скрипта чишћења ресетује мапу у првобитно стање, уклањајући сплит_имг + рамдиск директоријуме и све нове упаковане датотеке рамдиск или слика.

Пре него што флешете кернел, требало би да направите резервну копију вашег боот.имг, а затим флешујете кернел да бисте видели да ли омогућава да се ваш Андроид систем покрене.

Додавање функција вашем кернелу

Додавање функција вашем кернелу је одличан начин да га зачините. Постоји много ствари које можете прилагодити, као што су ЦПУ гувернери, ИО планер, оверлоцкинг ГПУ-а, аудио побољшања итд.

Овде је пример додавања гувернера (овај гувернер је назван Интеллимм).

У прва два текстуална поља можемо видети да су у „арцх / арм / цонфигс“ „мсм8974_сец_дефцонфиг“ и „цм_мсм8974_сец_дефцонфиг“ измењени.

Између редака 140 и 141 ове датотеке додан је овај текст: „ЦОНФИГ_ЦПУ_ФРЕК_ГОВ_ИНТЕЛЛИММ = и“

(Ова линија је за омогућавање Интеллимм-а када компилирате кернел)

Иста техника се односи и на остала текстуална поља (шта је додато и избрисано и то је локација)

У зависности од функција које додате, више или мање датотека може се мењати, додавати или брисати.

Дакле, да сумирам, обавеза је да видимо све промене које су направљене и све остало!

Општи савети и трикови

Како променити име и верзију кернела:

Једноставна метода:

Уредите ову линију у датотеци дефцонфиг:

 "ЦОНФИГ_ЛОЦАЛВЕРСИОН =" - "после - у вашој дефцонфиг 

Пример: ЦОНФИГ_ЛОЦАЛВЕРСИОН = ”- КсеномТВ-3.2.6 ″

Напредне методе:

Дођите до Макефиле-а у коренској мапи вашег извора кернел-а.

Додајте ове редове:

 ЦОНФИГ_ЛОЦАЛВЕРСИОН = "намеофиоуркернел" ЛОЦАЛВЕРСИОН = "версионофиоуркернел" 

НЕ мењајте верзије Версион, ПатцхЛевел, Сублевел или Ектраверсион.

Алтернативни метод:

Идите на скрипте / мкцомпиле_х и додајте ове редове:

 ЛИНУКС_ЦОМПИЛЕ_БИ = "намеофиоурцхоице" ЛИНУКС_ЦОМПИЛЕ_ХОСТ = "намеофиоурцхоице" 

Решавање ПАТХ проблема:

Ако наиђете на грешку „Да ли је ваша путања исправна?“, Покушајте са овим на Линук терминалу:

 "екпорт ПАТХ =" путтотоолцхаинлоцатион "/ бин: $ ПАТХ" 

Приступ директоријумима Убунту са Виндовс 10

Пут до Убунту-а обично треба да буде:

Ц: \ Корисници “НАМЕ” \ АппДата \ Лоцал \ Пацкагес \ ЦаноницалГроупЛимитед.УбунтуонВиндовс_79рхкп1фндгсц \ ЛоцалСтате \ роотфс \ хоме

Али не бисте требали уређивати датотеке директно из оперативног система Виндовс, јер то обично прекида дозволе на њима - тада ћете морати да ресетујете дозволе унутар Линук терминала.

Занимљиви Чланци