Flashovanie jadra zariadenia so systémom Android. Učenie Androidu

V nedeľu večer bolo oficiálne vydané nové jadro Linuxu 3.10. Podľa Linusa Torvaldsa sa jadro ukázalo ako najväčšie z hľadiska inovácií za posledných pár rokov. Linus pôvodne zamýšľal vydať ďalšieho kandidáta na vydanie, ale prikláňal sa k vydaniu finálneho vydania 3.10 – a vo svojej správe poznamenáva, že nové jadro, podobne ako Linux 3.9, nie je náchylné na problémy s výkonom a je pripravené na každodenné používanie.

V oznámení RC verzie Torvalds napísal, že zvyčajne obsahuje zoznam mien ľudí, ktorí poslali určité časti kódu, ale tentoraz bol zoznam taký veľký, že ho nebolo možné uviesť celý na jednom mailingovom zozname.

Čiastočný zoznam zmien vykonaných v jadre 3.10:

  • Môžete zabrániť tomu, aby sa skripty vykonávali ako programy – funkčnosť spúšťania skriptov obsahujúcich cestu k interpretovi v hlavičke „#!“ možno teraz skompilovať ako modul jadra;
  • Systém Bcache vyvinutý a používaný spoločnosťou Google je integrovaný. Bcache vám umožňuje organizovať ukladanie do vyrovnávacej pamäte prístupu k pomalým pevným diskom na rýchlych jednotkách SSD; ukladanie do vyrovnávacej pamäte sa vykonáva na úrovni blokového zariadenia - a to vám umožňuje urýchliť prístup k jednotke bez ohľadu na súborové systémy používané na zariadení;
  • Jadro je možné skompilovať pomocou kompilátora Clang vďaka záplatám pripraveným projektom LLVMLinux;
  • Objavil sa dynamický systém riadenia generovania prerušení časovača. Teraz, v závislosti od aktuálneho stavu, môžete meniť prerušenia v rozsahu od tisícok tikov za sekundu až po jedno prerušenie za sekundu – to vám umožní minimalizovať zaťaženie CPU pri spracovaní prerušení, keď je systém neaktívny. V súčasnosti sa táto funkcia používa pre systémy v reálnom čase a HPC (high performance computing), ale v ďalších vydaniach jadra sa bude používať aj pre desktopové systémy;
  • Teraz je možné vygenerovať udalosť, ktorá upozorní aplikáciu, že sa blíži vyčerpanie pamäte dostupnej pre proces/systém (v cgroups);
  • Profilovanie prístupu do pamäte je teraz dostupné pre príkaz perf;
  • Je tu nová "synchronizácia" ovládača (experimentálna). Bol vyvinutý v rámci platformy Android a používa sa na synchronizáciu medzi ostatnými ovládačmi;
  • Objavil sa ovládač pre virtuálne video adaptéry Microsoft Hyper-V (existujú aj vylepšenia vo fungovaní Hyper-V vo všeobecnosti);
  • Teraz sú podporované nové funkcie správy napájania predstavené v rade procesorov AMD 16h (Jaguar);
  • Do Radeon DRM bola pridaná podpora pre zrýchlenie dekódovania videa pomocou hardvérového UVD dekodéra zabudovaného do moderných GPU AMD;
  • Pridaná podpora pre protokol RDMA (iSER) do subsystému iSCSI;
  • Vykonávanie kryptografických funkcií (sha256, sha512, blowfish, twofish, had a kamélia) je optimalizované pomocou inštrukcií AVX/AVX2 a SSE.;
  • Bol integrovaný ovládač virtuálnej grafickej karty QXL (používaný vo virtualizačných systémoch na zrýchlený grafický výstup pomocou protokolu SPICE).

Používatelia mobilných zariadení nie sú vždy spokojní s prevádzkou a možnosťami svojich miniaplikácií. Z tohto dôvodu používatelia hľadajú najlepší spôsob flashovania jadra operačného systému Android. Na jednej strane sa táto akcia dá ľahko vykonať pomocou tabletu alebo smartfónu. Tisíce používateľov úspešne flashovali jadro bez akýchkoľvek ťažkostí a problémov. Na druhej strane však každá chyba počas tohto procesu môže viesť k problémom, vrátane zlyhania modulu gadget a potreby drahého servisu. V rôznych fázach existuje riziko výberu nesprávnej verzie firmvéru jadra, ktorá bola vytvorená nekvalifikovanými vývojármi alebo nie je vhodná pre vaše mobilné zariadenie. Odporúčame, aby ste boli mimoriadne opatrní pri vykonávaní akýchkoľvek akcií, ktoré spôsobujú zmeny v softvérovej časti zariadenia na nízkej úrovni. Po úspešnom flashnutí jadra má veľa ľudí pocit, že v rukách držia úplne nové zariadenie. Pokročilí používatelia si tak môžu prispôsobiť gadget podľa svojich potrieb a preferencií a zároveň získať nové poznatky a skúsenosti o moderných mobilných technológiách.

Jadro operačného systému Android a jeho firmvér

Čo je jadrom mobilného zariadenia?

Jadro operačného systému je základom softvéru, ktorý riadi hardvér zariadenia. Od toho závisia základné parametre akéhokoľvek gadgetu. Treba poznamenať, že pozostáva z troch vzájomne prepojených komponentov – linuxového jadra, vertikálneho stroja Dalvik a rôznych nízkoúrovňových služieb a knižníc. Ak hovoríme o vlastnom firmvéri, sú ovplyvnené iba dve komponenty, ktoré umožňujú pridávať nové systémové služby, optimalizovať existujúce parametre a meniť grafický shell.

Tí, ktorí si chcú nainštalovať jadro na Android, by mali pochopiť, že existuje rozdiel medzi konceptmi vlastného jadra a vlastného firmvéru. Posledná uvedená je neoficiálna verzia softvéru. Vlastný firmvér bol vyvinutý tímom špecialistov pre konkrétne zariadenia. Vlastné jadro je založené na jadre Linuxu, ktoré predstavuje jeho neoficiálnu verziu. Vlastné jadro sa často dodáva spolu s firmvérom. Dá sa však nainštalovať samostatne po zmene firmvéru. V podstate nenahrádza natívne jadro mobilného zariadenia, čo je konečným cieľom takejto operácie.

Firmvér jadra Androidu sa vykonáva hlavne na zvýšenie prevádzkového času zariadenia o niekoľko hodín úpravou parametrov spotreby energie. Možno to je hlavný dôvod, prečo používatelia vykonávajú zložité konverzie softvéru svojich gadgetov. Firmvér vám umožní zmeniť video čip bez následkov pre váš smartfón alebo tablet. Pokročilí používatelia si takto prispôsobujú obrazovku, menia jej farebné podanie a citlivosť. Firmvér jadra vám umožňuje vylepšiť zvuk zariadenia, aktualizovať ovládače a zaviesť podporu pre neštandardné externé miniaplikácie.

Pred flashovaním jadra odporúčame uistiť sa, že ste si vybrali dobrú verziu, ktorú vytvorili skúsení vývojári. Okrem toho je dôležité uistiť sa, že je vhodný pre vašu verziu firmvéru systému Android. Vhodné je prečítať si recenzie ľudí, ktorým sa podarilo nainštalovať príslušnú verziu jadra do mobilu. Recenzie môžu obsahovať dôležité informácie o problémoch, ktoré sa môžu vyskytnúť vo fáze firmvéru alebo ďalšej prevádzky zariadenia.

Flashovanie modulu gadget cez Fastboot

Zariadenie so systémom Android môžete obnoviť pomocou funkcie Fastboot. Najprv však musíte nainštalovať pomôcku do svojho modulu gadget. Existujú dve verzie tohto programu. Prvá zahŕňa stiahnutie Fastbootu v spojení s oficiálnym programom Android SDK. Druhá verzia zahŕňa samostatné stiahnutie pomôcky.

Odporúčame vám skontrolovať, či vaše mobilné zariadenie vidí váš laptop alebo počítač. Ak to chcete urobiť, musíte urobiť . Po stiahnutí a inštalácii pomôcky Fastboot do počítača alebo notebooku s operačným systémom Windows a pripojení smartfónu musíte otvoriť príkazový riadok. Ak to chcete urobiť, otvorte vyhľadávanie. V systéme Windows 8 na to stačí presunúť kurzor myši na pravú stranu obrazovky a vybrať príslušnú časť. Vo Vyhľadávaní musíte zadať „cmd“, po ktorom sa pred vami objaví príkazový riadok. Zariadenie by sa malo prepnúť do režimu firmvéru. Ďalej by ste mali zadať príkaz, ktorý otestuje interakciu medzi počítačom a mobilným zariadením:

zariadenia rýchleho spustenia

Ak všetko funguje, musíte si stiahnuť správnu verziu firmvéru jadra boot.img. Neodporúčame flashovať jadro pôvodného firmvéru, pretože to môže viesť k problémom s prevádzkou smartfónu. Súbor by sa mal uložiť do vopred vytvorenej oblasti na jednotke C s názvom „Android“. Potom musíte zaviesť mobilné zariadenie do Fastboot a pripojiť ho k počítaču. Na obrazovke sa zobrazí správa „Fastboot USB“.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • rýchle spustenie vymazanie vyrovnávacej pamäte.
  • reštart rýchleho spustenia.

Je veľmi dôležité zadať všetky slová správne, berúc do úvahy veľké a malé písmená a medzery. Príkaz cd otvorí požadovaný priečinok, ktorý obsahuje požadované súbory. Potom sa objaví blikanie. Príkaz fastboot erase cache vymaže oblasť Cache. Posledný príkaz - fastboot reboot reštartuje zariadenie z režimu firmvéru do normálneho stavu. Ak ste všetky vyššie uvedené kroky vykonali správne, proces bude úspešný.

Firmvér pomocou ClockworkMod Recovery

ClockworkMod Recovery (alebo skrátene CWM) je systém obnovy, ktorý sa používa namiesto pôvodného obnovenia z výroby. CWM vám umožňuje nainštalovať nový firmvér na mobilné zariadenie, flashovať jadro, zálohovať súbory a obnoviť shell. Takýto systém môže pracovať so súbormi aktualizácie firmvéru vo formáte zip. Je nainštalovaný ClockworkMod, ktorý nahrádza obnovenie z výroby. Ak chcete spustiť CWM, musíte poznať kombináciu klávesov, ktorá je vhodná pre váš modul gadget. Vo väčšine prípadov ide o kombináciu tlačidiel zníženia hlasitosti a vypínača, ktoré by ste mali stlačiť počas zavádzania zariadenia.

Ak chcete aktualizovať firmvér jadra, stiahnite si archív s príponou zip. Musí obsahovať priečinok META-INF. Potom sú dve možnosti. V prvom prípade musíte zadať súbor firmvéru. Druhá možnosť zahŕňa umiestnenie súboru firmvéru do priečinka /sdcard. Potom by ste mali aktivovať ClockworkMod Recovery, nájsť tam funkciu Apply update from sdcard a zadať požadovaný súbor.

Treba poznamenať, že ponuka ClockworkMod Recovery je pohodlná a zrozumiteľná pre väčšinu používateľov. Okrem tohto systému obnovy firmvéru môžete použiť obnovu TWRP. Tento nástroj je pohodlný a obľúbený medzi používateľmi systému Android. Hlavná vec je vybrať správny súbor firmvéru.

Flashovanie jadra systému Android je postup, ktorý neodporúčame používať, ak ste s fungovaním modulu gadget úplne spokojní. Takéto akcie sú poháňané túžbou zlepšiť výkon mobilného telefónu alebo tabletu. Pokročilí používatelia majú možnosť nastaviť parametre na nižšej úrovni. Bez určitých vedomostí a objektívnych dôvodov je však lepšie nemeniť softvérovú časť mobilného zariadenia, pretože je to spojené s rizikom a poruchami pri jeho prevádzke.

Mnoho majiteľov Android zariadení na rôznych fórach a weboch často naráža na zmienku o niečom nezrozumiteľnom, čo sa nazýva kernel, alebo po anglicky kernel. Dá sa zmeniť a je to uvedené v ponuke nastavení zariadenia v časti „O tablete (telefóne)“.

Ak zapátrate hlbšie, zistíte, že jadro je súčasťou operačného systému a má ho nielen Android, ale aj iné operačné systémy: Windows, iOS, MacOS a iné. Nás ale bude zaujímať jadro Androidu a pokúsim sa vysvetliť, čo to je na úrovni začínajúcich používateľov.

Pravdepodobne viete, že každý operačný systém vrátane Androidu je vo všeobecnosti súborom programov, ktoré riadia prevádzku celého zariadenia a sú zodpovedné za spúšťanie používateľských aplikácií, ako sú hry, správcovia súborov, webové prehliadače a iné.

A jadro Androidu je prakticky najdôležitejšou súčasťou operačného systému, ktorý je zodpovedný za interakciu medzi celou hardvérovou a softvérovou časťou systému. Jadro pozostáva zo sady ovládačov pre všetky zariadenia v zariadení a podsystému na správu pamäte, siete, zabezpečenia a ďalších základných funkcií operačného systému.
Napríklad, keď sa dotknete obrazovky a spustíte aplikáciu, ovládač touchpadu na obrazovke určí miesto, kde došlo k dotyku, a oznámi súradnice iným programom, ktoré opäť pomocou jadra nájdu požadovanú aplikáciu v pamäti zariadenia a spustí sa to. Ide samozrejme o veľmi zjednodušený model, ktorý však odráža podstatu operačného systému.

Zistili sme teda, že keď akýkoľvek softvér potrebuje na niečo hardvér tabletu alebo telefónu, obráti sa na to jadro operačného systému.

Jadro ovláda úplne všetky zariadenia: Wi-Fi, Bluetooth, GPS, pamäť a ďalšie zariadenia. Výnimkou nie je ani „srdce“ zariadenia – jeho procesor. Jadro dokáže ovládať svoju frekvenciu a napájanie.
Jadro operačného systému Android si jeho vývojári, Google, požičali od operačného systému Linux.

Keďže jadro ovláda všetok hardvér a hardvér všetkých tabletov a telefónov je odlišný, základné jadro Androidu upravuje výrobca pre každé zariadenie zvlášť.

Podobne ako firmvér, aj jadrá môžu byť skladové (továrne) a vlastné – alternatívne, vytvorené nezávislými vývojármi.

Prečo potrebujeme vlastné jadrá? Skladové jadro je výrobcom maximálne optimalizované pre konkrétne zariadenie, no väčšinou blokuje také dôležité funkcie jadra, ako je napríklad riadenie frekvencie procesora. A ak potrebujete pretaktovať procesor vášho tabletu, budete musieť zmeniť jadro na vlastné, v ktorom je funkcia riadenia frekvencie procesora odomknutá.

Okrem toho sú vlastné jadrá zvyčajne založené na novších verziách jadier Linuxu. Tu je približný zoznam funkcií, ktoré nám vlastné jadrá poskytujú:

  • Zmeňte frekvenciu procesora v širokom rozsahu;
  • Pretaktovanie grafického subsystému (GPU);
  • Zníženie frekvencie a napätia procesora, čo umožňuje dlhšiu životnosť batérie;
  • Novšie a kvalitnejšie ovládače, napríklad zrýchlenie GPS alebo pridanie nových funkcií;
  • Široká škála možností prispôsobenia a konfigurácie zvuku a farieb obrazovky;
  • Podpora alternatívnych súborových systémov (XFS, ReiserFS a iné).

Keďže alternatívne jadrá sú vytvorené nezávislými vývojármi, nie je zaručené, že váš tablet alebo telefón bude po inštalácii vlastného jadra fungovať bez problémov. Preto je vhodné pred flashovaním nového jadra urobiť úplnú zálohu systému.

V nedeľu večer Linus Torvalds, rodič Linuxu a vývojár jadra operačného systému, po dvoch mesiacoch práce oznámil vydanie novej verzie linuxového jadra 3.10.

Podľa samotného vývojára je toto jadro najväčšie z hľadiska inovácií za posledných pár rokov.

Linus priznal, že najprv zamýšľal vydať ďalšieho kandidáta na vydanie, ale po zvážení sa priklonil k okamžitému vydaniu finálneho vydania s číslom 3.10. Torvalds vo svojej správe tiež poznamenal, že nové jadro, podobne ako verzia 3.9, je úplne pripravené na každodenné používanie.

Okrem toho Linus Torvalds v oznámení o RC verzii jadra napísal, že predtým vždy obsahoval zoznam mien ľudí, ktorí poslali určité časti kódu, ale tentoraz by tento zoznam bol taký veľký, že by to nebolo možné podané celé v jednom hárku pošty.

Zoznam hlavných zmien vykonaných v jadre 3.10:

  • Teraz môžete zabrániť spúšťaniu skriptov ako programov – funkcionalitu spúšťania skriptov obsahujúcich cestu k interpreteru v hlavičke „#!“ možno teraz skompilovať ako modul jadra;
  • Systém Bcache vyvinutý a používaný spoločnosťou Google je integrovaný. Bcache vám umožňuje organizovať ukladanie do vyrovnávacej pamäte prístupu k pomalým pevným diskom na rýchlych jednotkách SSD; ukladanie do vyrovnávacej pamäte sa vykonáva na úrovni blokového zariadenia - a to vám umožňuje urýchliť prístup k jednotke bez ohľadu na súborové systémy používané na zariadení;
  • Jadro je možné skompilovať pomocou kompilátora Clang vďaka záplatám pripraveným projektom LLVMLinux;
  • Objavil sa dynamický systém riadenia generovania prerušení časovača. Teraz, v závislosti od aktuálneho stavu, môžete meniť prerušenia v rozsahu od tisícok tikov za sekundu až po jedno prerušenie za sekundu – to vám umožní minimalizovať zaťaženie CPU pri spracovaní prerušení, keď je systém neaktívny. V súčasnosti sa táto funkcia používa pre systémy v reálnom čase a HPC (high performance computing), ale v ďalších vydaniach jadra sa bude používať aj pre desktopové systémy;
  • Teraz je možné vygenerovať udalosť, ktorá upozorní aplikáciu, že sa blíži vyčerpanie pamäte dostupnej pre proces/systém (v cgroups);
  • Profilovanie prístupu do pamäte je teraz dostupné pre príkaz perf;
  • Pridaná podpora pre protokol RDMA (iSER) do subsystému iSCSI;
  • Je tu nová "synchronizácia" ovládača (experimentálna). Bol vyvinutý v rámci platformy Android a používa sa na synchronizáciu medzi ostatnými ovládačmi;
  • Bol integrovaný ovládač virtuálnej grafickej karty QXL (používaný vo virtualizačných systémoch na zrýchlený grafický výstup pomocou protokolu SPICE);
  • Teraz sú podporované nové funkcie správy napájania predstavené v rade procesorov AMD 16h (Jaguar);
  • Do Radeon DRM bola pridaná podpora pre zrýchlenie dekódovania videa pomocou hardvérového UVD dekodéra zabudovaného do moderných GPU AMD;
  • Objavil sa ovládač pre virtuálne video adaptéry Microsoft Hyper-V (existujú aj vylepšenia vo fungovaní Hyper-V vo všeobecnosti);
  • Vykonávanie kryptografických funkcií (sha256, sha512, blowfish, twofish, had a kamélia) je optimalizované pomocou inštrukcií AVX/AVX2 a SSE.

Viac ako raz sme písali o vlastnom firmvéri, koreňových aplikáciách a alternatívnych bootovacích ponukách. Toto všetko sú štandardné témy v hackerskej komunite Android, avšak okrem vyššie uvedeného existuje aj niečo ako „vlastné jadro“, ktoré môže poskytnúť takmer neobmedzené možnosti správy smartfónu a jeho hardvéru na najnižšia úroveň. V tomto článku vám poviem, čo to je, prečo je to potrebné a ako si vybrať správne vlastné jadro.

Vlastné jadro?

Čo je to vlastné jadro? Ako všetci vieme, Android je koláč pozostávajúci z troch základných vrstiev: linuxové jadro, súbor nízkoúrovňových knižníc a služieb a virtuálny stroj Dalvik, nad ktorým beží grafický shell, nástroje a služby na vysokej úrovni. , ako aj takmer všetky aplikácie nainštalované z trhu. Tvorcovia väčšiny alternatívneho vlastného firmvéru zvyčajne pracujú iba s hornými dvoma vrstvami, pričom do grafického prostredia pridávajú funkcie (napríklad tlačidlá v závese), menia ho (motor tém v CyanogenMod), ako aj pridávajú nové systémové služby (ekvalizér v CyanogenMod) a optimalizácia existujúcich.

Autori populárneho firmvéru tiež robia zmeny v jadre Linuxu vždy, keď je to možné: optimalizujú (vytvárajú sa s agresívnejšími príznakmi optimalizácie kompilátora), zahŕňajú nové funkcie (napríklad podporu pre Windows ball) a tiež robia ďalšie zmeny, ako napríklad schopnosť zvýšiť frekvenciu procesora nad frekvenciu poskytovanú výrobcom. Toto všetko často zostáva v zákulisí a mnohí používatelia vlastného firmvéru o týchto možnostiach ani nevedia, najmä preto, že rovnaký CyanogenMod prichádza s vlastným jadrom iba pre obmedzený rozsah zariadení, pre ktoré je zdrojový kód natívneho jadro a schopnosť ho nahradiť. Napríklad takmer všetok firmvér CyanogenMod pre smartfóny Motorola používa štandardné jadro – nahradiť ho vlastným je nemožné kvôli nepreniknuteľnej ochrane bootloaderu.

Jadro v smartfónoch s odomknutým bootloaderom je však možné vymeniť oddelene od hlavného firmvéru. A nielen nahradiť, ale nainštalovať jadro s obrovským množstvom rôznych funkcií, ktoré si vyžadujú určité technické znalosti na správu, a preto zvyčajne nie sú zabudované do jadier populárnych firmvérov, ako sú CyanogenMod, AOKP a MIUI. Medzi týmito funkciami nájdete podporu pre vysoké frekvencie procesora, ovládanie gama obrazovky, režimy šetrenia energie, vysoko efektívne manažéry napájania a obrovské množstvo ďalších funkcií.

V tomto článku si povieme, čo nám môžu ponúknuť tvorcovia vlastných jadier, zvážime hlavné vlastné jadrá pre rôzne zariadenia a tiež sa pokúsime nainštalovať jadro nezávisle od hlavného firmvéru a skontrolovať si všetko na vlastnej koži. Čo teda vývojári alternatívnych jadier zvyčajne ponúkajú?

Inteligentný regulátor premávky

SoC OMAP35XX, používané napríklad v Galaxy S II a Galaxy Nexus, majú funkciu SmartReflex, ktorá funguje ako inteligentný systém úpravy napätia pri zmene zaťaženia procesora. V podstate eliminuje potrebu jemného dolaďovania napätia používateľom.

Optimalizácie

Hlavným cieľom vytvárania vlastného jadra je často optimalizácia výkonu. Predajca mobilných zariadení sa zvyčajne snaží udržiavať rovnováhu medzi výkonom a stabilitou, takže aj dobré optimalizačné techniky, ktoré môžu výrazne zvýšiť rýchlosť zariadenia, môže výrobca odmietnuť iba na základe toho, že po ich použití začali niektoré aplikácie padať. každé desiate spustenie. Samozrejme, nadšencov takéto maličkosti netrápia a mnohí z nich sú pripravení aplikovať akékoľvek možnosti kompilátora, algoritmy na úsporu energie na jadro vlastnej zostavy a zvýšiť frekvenciu procesora tak vysoko, ako to zariadenie zvládne. Spomedzi všetkých optimalizačných techník sú najbežnejšie štyri:



Ďalší typ optimalizácie: zmena predvoleného plánovača I/O. Situácia v tejto oblasti je ešte zaujímavejšia, keďže niektorí tvorcovia jadra namiesto pochopenia princípov fungovania plánovačov jednoducho čítajú dokumenty na internete o I/O plánovačoch pre Linux a vyvodzujú závery. Medzi užívateľmi je tento prístup ešte rozšírenejší. V skutočnosti sú takmer všetky najvýkonnejšie a najinteligentnejšie linuxové plánovače pre Android úplne nevhodné: sú určené na použitie s mechanickými dátovými skladmi, v ktorých sa rýchlosť prístupu k dátam mení v závislosti od polohy hlavy. Plánovač používa rôzne schémy agregácie požiadaviek v závislosti od fyzického umiestnenia údajov, takže požiadavky na údaje, ktoré sú blízko aktuálnej pozície hlavy, dostanú vyššiu prioritu. Úplne nelogické je to v prípade polovodičovej pamäte, ktorá zaručuje rovnakú rýchlosť prístupu ku všetkým bunkám. Pokročilé plánovače narobia na smartfóne viac škody ako úžitku a tie najnešikovnejšie a najprimitívnejšie ukážu najlepšie výsledky. Linux má tri podobné plánovače:

  • Noop (žiadna operácia)- takzvaný neplánovač. Jednoduchý FIFO front požiadaviek, prvá požiadavka bude spracovaná ako prvá, druhá druhá atď. Dobre sa hodí pre polovodičovú pamäť a umožňuje vám spravodlivo rozdeliť priority aplikácií pre prístup k jednotke. Ďalšie plus: nízke zaťaženie procesora vďaka veľmi jednoduchému princípu fungovania. Nevýhoda: žiadne zohľadnenie špecifík prevádzky zariadenia, čo môže viesť k výpadkom výkonu.
  • SIO (jednoduché I/O)- analóg plánovača uzávierok bez zohľadnenia vzájomnej blízkosti sektorov, to znamená, že je navrhnutý špeciálne pre polovodičovú pamäť. Dve hlavné funkcie: priorita operácií čítania pred operáciami zápisu a zoskupovanie operácií podľa procesu, prideľovanie časového úseku každému procesu na vykonávanie operácií. V smartfónoch, kde je dôležitá rýchlosť aktuálnej aplikácie a prevaha operácií čítania nad operáciami zápisu, vykazuje veľmi dobrý výkon. K dispozícii v jadre Leankernel, Matr1x pre Nexus 4 a SiyahKernel.
  • RIADOK (ČÍTAJTE NAD ZÁPISOM)- plánovač špeciálne navrhnutý pre mobilné zariadenia a pridaný do jadra len pred niekoľkými mesiacmi. Hlavným cieľom je najskôr spracovať požiadavky na čítanie, ale prideliť primeraný čas aj požiadavkám na zápis. V súčasnosti sa považuje za najlepší plánovač pre pamäť NAND; štandardne sa používa v Leankernel a Matr1x.

Za zmienku stojí, že takmer všetok štandardný firmvér a polovica vlastných stále používa jadro so štandardným plánovačom Linux CFQ, čo však nie je také zlé, pretože môže správne fungovať s jednotkami SSD. Na druhej strane je príliš komplikovaný, vytvára väčšiu záťaž na procesor (a teda aj batériu) a nezohľadňuje špecifiká mobilného OS. Ďalšou populárnou voľbou je plánovač Deadline, ktorý je rovnako dobrý ako SIO, ale je nadbytočný. Zoznam dostupných plánovačov môžete zobraziť pomocou nasledujúceho príkazu:

# cat /sys/block/*/queue/scheduler

Na zmenu sa používa nasledovné (kde riadok je názov plánovača):

# for i v /sys/block/*/queue/scheduler; do echo riadok > $ 1; hotový

Niektorí tvorcovia jadra používajú aj iný typ optimalizácie súvisiaci s I/O. Toto zakáže systémové volanie fsync, ktoré sa používa na vynútenie vyprázdnenia zmeneného obsahu otvorených súborov na disk. Existuje názor, že bez fsync bude systém pristupovať k disku menej často a tým šetrí čas procesora a energiu batérie. Pomerne kontroverzné tvrdenie: fsync sa v aplikáciách nepoužíva príliš často a len na uloženie skutočne dôležitých informácií, no jeho zakázanie môže viesť k strate rovnakých informácií v prípade pádu operačného systému alebo iných problémov. Schopnosť vypnúť fsync je dostupná v jadrách franco.Kernel a GLaDOS a riadi sa súborom /sys/module/sync/parameters/fsync_enabled, do ktorého by ste mali napísať 0 na vypnutie alebo 1 na povolenie. Opäť sa neodporúča používať túto funkciu.

Pridanie nových funkcií do jadra

Samozrejme, okrem optimalizácií, vychytávok a rôznych pokročilých systémov na správu hardvéru možno v jadrách na mieru nájsť aj úplne novú funkcionalitu, ktorá v štandardných jadrách nie je, no používateľom sa môže hodiť.

Ide najmä o rôzne ovládače a súborové systémy. Niektoré jadrá napríklad obsahujú podporu pre modul CIFS, ktorý vám umožňuje pripojiť zdieľané zložky systému Windows. Takýto modul je v jadre Matr1x pre Nexus S, faux123 pre Nexus 7, SiyahKernel a GLaDOS. Sám o sebe je zbytočný, no na trhu je viacero aplikácií, ktoré umožňujú využiť jeho schopnosti.

Užitočnou funkciou je aj zahrnutie ovládača ntfs-3g do jadra (presnejšie do balenia s jadrom; samotný ovládač funguje ako linuxová aplikácia), ktorý je potrebný pre montáž flash diskov naformátovaných v súborovom systéme NTFS. Tento ovládač sa nachádza v jadrách faux123 a SiyahKernel. Zvyčajne sa aktivuje automaticky, ale ak sa tak nestane, môžete použiť aplikáciu StickMount z trhu.

Mnohé jadrá obsahujú aj podporu pre takzvanú technológiu zram, ktorá vám umožňuje rezervovať si malé množstvo pamäte RAM (zvyčajne 10 %) a použiť ju ako komprimovanú swapovaciu oblasť. Výsledkom je akési rozšírenie množstva pamäte, bez vážnejších následkov na výkon. Dostupné v Leankerneli, povolené pomocou príkazu Trickster MOD alebo zram enable.

Posledné dve zaujímavé funkcie sú Fast USB charge a Sweep2wake. Prvým nie je nič iné ako nútená aktivácia režimu „rýchleho nabíjania“, aj keď je smartfón pripojený k portu USB počítača. Režim rýchleho nabíjania je dostupný vo všetkých viac-menej nových smartfónoch, avšak kvôli technickým obmedzeniam ho nie je možné aktivovať súčasne s prístupom na pamäťovú kartu. Funkcia rýchleho nabíjania USB vám umožňuje vždy povoliť tento režim a zároveň zakázať prístup k disku.

Sweep2wake je nový spôsob prebudenia zariadenia, ktorý vynašiel autor Breaked-kernel. Jeho pointou je zapnutie smartfónu posúvaním prsta po navigačných klávesoch umiestnených pod obrazovkou, prípadne po samotnej obrazovke. Ide o skutočne pohodlnú funkciu, no jej zapnutie spôsobí, že senzor zostane aktívny aj počas spánku zariadenia, čo môže výrazne vybiť batériu.

Pretaktovanie, úspora napätia a energie

Pretaktovanie je obľúbené nielen medzi majiteľmi stolných počítačov a notebookov, ale aj medzi nadšencami mobilných technológií. Rovnako ako kamene architektúry x86, procesory a grafické jadrá mobilných zariadení sú vynikajúce. Samotný spôsob pretaktovania a kroky na jeho implementáciu sú však trochu odlišné. Faktom je, že štandardné ovládače pre SoC, ktoré sú zodpovedné za úsporu energie a zmenu frekvencie procesora, sú zvyčajne uzamknuté na štandardných frekvenciách, takže pre jemné doladenie musíte nainštalovať buď alternatívny ovládač alebo vlastné jadro.

Takmer všetky viac či menej kvalitné a obľúbené custom jadrá už obsahujú odomknuté ovládače, takže po ich nainštalovaní sa výrazne rozšíri možnosť ovládať „výkon“ procesora. Custom kernel builders zvyčajne robia dve veci, ktoré ovplyvňujú výber frekvencie. Ide o rozšírenie frekvenčného rozsahu nad pôvodne zadané – môžete nastaviť buď vyššiu frekvenciu procesora, alebo veľmi nízku, čo vám umožní šetriť batériu a zvýšiť gradáciu frekvencií napríklad namiesto troch možných frekvencií. , na výber je šesť. Druhým je pridaná možnosť upraviť napätie procesora, takže môžete znížiť napätie procesora pri nízkych frekvenciách, aby ste ušetrili nabitie batérie, a zvýšiť ho pri vysokých frekvenciách, aby ste zvýšili stabilitu.

To všetko je možné ovládať pomocou známej platenej utility SetCPU alebo bezplatného Trickster MODu. Odporúčania pre správu sú rovnaké ako pre stolné systémy. Spodnú frekvenciu procesora je lepšie nastaviť na minimum, nie však nižšie ako 200 MHz (aby sa predišlo oneskoreniam), horná hranica sa zvyšuje postupne pri testovaní stability prevádzky, ak klesne, odporúča sa mierne zvýšiť napätie pre túto frekvenciu. Neexistujú žiadne odporúčania pre napätie, pretože každý procesor je jedinečný a hodnoty budú pre každého iné.

Okrem zmeny frekvencií stavitelia často pridávajú do jadra nové riadiace algoritmy šetrenia energie (automatické riadenie frekvencie procesora), ktoré podľa nich môžu vykazovať lepšie výsledky v porovnaní so štandardnými. Takmer všetky sú založené na interaktívnom algoritme, ktorý sa štandardne používa v nových verziách Androidu, ktorého podstatou je prudké zvýšenie frekvencie procesora na maximum pri zvyšovaní zaťaženia a následné zníženie na minimum. Nahrádza predtým používaný algoritmus OnDemand, ktorý plynulo upravoval frekvenciu v oboch smeroch v pomere k záťaži, a robí systém pohotovejším. Zberatelia alternatívnych jadier ponúkajú nasledujúce algoritmy, ktoré nahradia interaktívne:

  • SmartAssV2- prehodnotenie interaktívneho algoritmu so zameraním na šetrenie batérie. Hlavným rozdielom je neťahať procesor do vysokých frekvencií pri krátkodobých návaloch záťaže, na čo stačí nízky výkon procesora. Predvolené nastavenie sa používa v jadre Matr1x.
  • InteractiveX- vyladený interaktívny algoritmus, ktorého hlavnou vlastnosťou je uzamknúť procesor na minimálnej frekvencii určenej používateľom a odpojiť druhé jadro procesora, keď je obrazovka vypnutá. Predvolené sa používa v Leankerneli.
  • LulzactiveV2- v podstate znovuobjavený OnDemand. Keď zaťaženie procesora prekročí zadanú hodnotu (štandardne 60 %), algoritmus zvýši frekvenciu o určitý počet dielikov (štandardne 1) a zníži ju, keď sa zaťaženie zníži. Je obzvlášť zaujímavý, pretože umožňuje nezávisle nastaviť prevádzkové parametre, preto je vhodný pre otužilých geekov.

Vo všeobecnosti tvorcovia jadra naozaj radi vymýšľajú nové algoritmy šetriace energiu z dôvodu jednoduchosti ich implementácie, takže môžete nájsť tucet ďalších. Väčšina z nich je úplný odpad a pri výbere plánovača by ste sa mali riadiť pravidlom: buď jeden z troch opísaných vyššie, alebo štandardný Interactive, ktorý je mimochodom veľmi dobrý. Môžete si vybrať pomocou rovnakého Trickster MOD.

Ovládacie rozhrania

Najpopulárnejšie vlastné jadrá obsahujú niekoľko mechanizmov na jemné ovládanie rôznych parametrov ovládačov, z ktorých najbežnejšie sú ColorControl, GammaControl, SoundControl a TempControl.

Prvé dve rozhrania sú dostupné takmer všade, vrátane jadier CyanogenMod, druhé dve sú dostupné v Leankernel a možno aj v iných. Tak či onak, všetky je možné ovládať pomocou Trickster MOD.

Jadrá

Ktoré jadro by ste si mali vybrať? Na túto otázku neexistuje jednoznačná odpoveď a nie preto, že „každému po svojom“, ale preto, že na svete existuje obrovské množstvo zariadení s Androidom a takmer toľko rôznych jadier. Existuje však niekoľko populárnych jadier, ktoré sa vyvíjajú pre niekoľko zariadení naraz. Tak či onak, mnohé z nich som v priebehu príbehu spomínal a tu ich stručne popíšem.

  • Leankernel je jadrom pre Galaxy Nexus, Nexus 7 a Galaxy S III. Hlavný dôraz pri vývoji je kladený na jednoduchosť a rýchlosť práce. Algoritmus úspory energie: InteractiveX V2, plánovač I/O: ROW, všetky vyššie uvedené ovládacie rozhrania, podpora rýchleho nabíjania USB, Swap a zram, flexibilné možnosti pretaktovania pre CPU a GPU. Jedno z najlepších jadier. Prispôsobiteľné pomocou Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - jadro pre Nexus S a Nexus 4. Jednoduché a nepreťažené jadro. Podpora pretaktovania CPU a GPU, GammaControl, Fast USB Charge, Sweep2wake, I/O plánovače: SIO, ROW a FIOPS. Vylepšenia výkonu. Prispôsobiteľné pomocou Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) – jednoduché a nepreťažené jadro pre Nexus 4 a HTC One X. Optimalizácie pre Snapdragon S4 a NVIDIA Tegra 3, prepracovaný režim úspory energie pre Tegra 3 , schopnosť pretaktovania, algoritmus úspory energie: vyladený OnDemand (dostupný aj ako interaktívny).
  • SiyahKernel - jadro pre Galaxy S II a S III. Flexibilné možnosti pretaktovania, automatická kalibrácia batérie, vylepšený ovládač dotykovej obrazovky, algoritmy úspory energie: smartassV2 a lulzactiveV2, I/O plánovače: noop, deadline, CFQ, BFQV3r2 (predvolené), V(R), SIO. Ovládače CIFS a NTFS (s automatickou montážou). Konfigurovateľné pomocou ExTweaks.
  • franco.Kernel - jadro pre Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One a One X.

Možnosti jadra sa medzi jednotlivými zariadeniami značne líšia, takže podrobnosti si budete musieť overiť na mieste. Flashnutím tohto jadra však získate možnosť pretaktovania, ladenie ovládačov, vynikajúci výkon, ako aj podporu rôznych algoritmov a plánovačov úspory energie. V skutočnosti jadro obsahuje takmer všetky vylepšenia opísané v článku. Považuje sa za jedno z najlepších dostupných jadier. Existuje aplikácia na automatickú aktualizáciu franko.Kernel Updater. Môžete ho nakonfigurovať pomocou Trickster MOD.

Ako nainštalovať?

Všetky jadrá sú distribuované v štandardných archívoch Android ZIP, ktoré by mali byť flashované cez konzolu obnovy rovnakým spôsobom ako alternatívne firmvéry. Jadrá sú zvyčajne kompatibilné s akýmkoľvek firmvérom, takže keď si vyberiete správne jadro, môžete ho bezpečne nainštalovať. Jediná vec, ktorú by ste mali venovať pozornosť, je verzia systému Android, s ktorou je jadro kompatibilné. Môže byť vhodný pre všetky verzie Androidu dostupné pre zariadenie alebo fungovať iba s jednou (vývojár o tom zvyčajne výslovne hovorí). Pred flashovaním firmvéru si vytvorte zálohu aktuálneho firmvéru pomocou rovnakej konzoly na obnovenie. Ak sa niečo pokazí, vždy sa môžete vrátiť späť.

závery

Ako vidíte, vlastné jadrá majú mnoho výhod oproti jadrám používaným v štandardnom firmvéri alebo firmvéri tretích strán. A čo je ešte dôležitejšie je, že na ich používanie nepotrebujete poznať všetky zložitosti Androidu; stačí si stiahnuť a nainštalovať archív ZIP.