• Výběr vlastního jádra pro Android. Flashování jádra zařízení Android

    OPERACE SRDCE

    VYBERTE SI VLASTNÍ JÁDRO PRO SVÉ ZAŘÍZENÍ ANDROID

    log info ][aker

    O vlastním firmwaru, kořenových aplikacích a alternativě jsme psali více než jednou spouštěcí nabídky. To vše jsou standardní témata v komunitě hackerů Android, nicméně kromě všeho výše uvedeného existuje také něco jako „custom kernel“, které může poskytnout téměř neomezené možnosti pro správu smartphonu a jeho hardwaru na nejnižší úrovni. úroveň. V tomto článku vysvětlím, co to je, proč to potřebujete a jak vybrat to správné vlastní jádro.

    VLASTNÍ JÁDRO

    Co je to vlastní jádro? Jak všichni víme, Android je koláč složený ze tří základních vrstev: Linuxové jádro, soubor nízkoúrovňových knihoven a služeb a virtuální stroj Dalvik, nad nímž běží grafický shell, nástroje a služby na vysoké úrovni a také téměř všechny aplikace nainstalované z trhu. Tvůrci většiny alternativních vlastních ROM obvykle pracují pouze s horními dvěma vrstvami a přidávají do nich funkce grafický shell(například tlačítka v závěsu), jeho změna (engine motivu v CyanogenMod), stejně jako přidání nových systémových služeb (ekvalizér v CyanogenMod) a optimalizace stávajících.

    Autoři populární firmware také, pokud je to možné, proveďte změny v jádře Linuxu: optimalizujte (vytvářejte s agresivnějšími příznaky optimalizace kompilátoru), zahrňte nové funkce (například podporu pro Windows koule), a také provést další změny, například možnost zvýšit frekvenci procesoru nad hodnotu výrobce. To vše často zůstává v zákulisí a mnoho uživatelů vlastního firmwaru si tyto funkce ani neuvědomuje, zejména proto, že stejný CyanogenMod přichází s vlastním jádrem pouze pro omezený rozsah zařízení, pro které je zdrojový kód nativního jádra a možnost jeho výměny jsou k dispozici. Například téměř veškerý firmware CyanogenMod pro Smartphony Motorola použijte standardní jádro - není možné jej nahradit vlastním kvůli neproniknutelné ochraně bootloaderu.

    Jádro v chytrých telefonech s odemčeným bootloaderem lze ale vyměnit odděleně od hlavního firmwaru. A nejen vyměnit, ale nainstalovat jádro s obrovským množstvím různé funkce, které ke správě vyžadují určité technické znalosti, a proto obvykle nejsou zabudovány do jader populárního firmwaru, jako je CyanogenMod, AOCR a MIUI. Mezi těmito funkcemi můžete najít podporu pro vysoké frekvence procesoru, ovládání gama obrazovky, režimy úspory energie, vysoce účinné správce napájení a velké množství dalších funkcí.

    V tomto článku budeme hovořit o tom, co nám tvůrci vlastních jader mohou nabídnout, zvažte hlavní vlastní jádra pro různá zařízení, a také zkusit nainstalovat jádro bez ohledu na hlavní firmware a vše zkontrolovat na vlastní kůži. Co tedy vývojáři alternativních jader obvykle nabízejí?

    OPTIMALIZACE

    Hlavním účelem vytváření vlastního jádra je často optimalizace výkonu. Obvykle se prodejce mobilních technologií snaží udržet rovnováhu mezi výkonem a stabilitou, takže i dobré optimalizační techniky, které mohou výrazně zvýšit rychlost zařízení, může výrobce odmítnout pouze na základě toho, že po jejich aplikaci začaly některé aplikace padat každý desátý start. Takové maličkosti samozřejmě nadšence neobtěžují a mnozí z nich jsou připraveni aplikovat jakékoli možnosti kompilátoru, algoritmy pro úsporu energie na jádro vlastní sestavy a zvýšit frekvenci procesoru tak vysoko, jak to zařízení vydrží. Mezi všemi optimalizačními technikami jsou nejběžnější čtyři:

    1. Budování pomocí kompilátoru Linaro GCC s agresivními možnostmi optimalizace. Peep sezóny se používá téměř ve všech jádrech. Tato metoda získala zvláštní popularitu po organizaci Linaro s pomocí některých nepochopitelných syntetické testy vykázala 400% (!) nárůst výkon androidu vytvořený pomocí vašeho kompilátoru. V reálných podmínkách efektivita Linaro GCC je poněkud nižší, ale výhody z něj jsou stále hmatatelné, protože skutečně přizpůsobuje kód funkcím architektury ARMv7 a soudě podle osobní zkušenost, nepřináší žádné problémy se stabilitou jádra ani aplikací.

    2. Rozšíření možnosti řízení frekvence a napětí ústředny a GPU a také použití efektivnějšího algoritmu řízení úspory energie pro tablety a chytré telefony. Používá se ve všech vlastních jádrech a jádrech nejserióznějších vlastních firmwarů. Tuto funkci probereme podrobněji v další části.

    3. Aktivace efektivnějších vnitřních mechanismů, které se objevily v nejnovějších linuxových jádrech. Patří sem alokátor paměti SLQB, který může být podle některých vývojářů efektivnější než SLUB, ale neexistují pro to žádné experimentální důkazy. Takový alokátor se používá v jádře GLaDOS pro Nexus 7.

    Mnoho vývojářů rádo upravuje standardní algoritmus TCP Congestion Control, který upravuje velikost okna TCP na základě mnoha sada parametrů pro plynulejší tok paketů a dosažení nejvyšší přenosové rychlosti. Od verze 2.6.19 používá linuxové jádro ve výchozím nastavení efektivní algoritmus CUBIC, který se také běžně používá ve standardních jádra Androidu. Jediný problém je, že CUBIC je účinný v drátové sítě S vysoká rychlost přenos dat, zatímco pro 3G a Wi-Fi sítě je to hodně Nejlepší volba bude Westwood + algoritmus. Právě tento algoritmus se používá v jádrech Leankernel pro Galaxy Nexus a faux123 pro Nexus 7 a franko.Kernel pro Galaxy S II a Galaxy Nexus obecně zahrnuje celou sadu dostupných algoritmů. Pomocí následujících příkazů si můžete prohlédnout jejich seznam a vybrat ten, který potřebujete:

    sysctl net.ipv4.tcp_available_congestion_control sysctl -w net.ipv4.tcp_congestion_control=westwood

    Další typ optimalizace: změna výchozího I/O plánovače. Situace na tomto poli je o to zajímavější, že místo pochopení principů fungování plánovačů někteří kernelové assemblery jednoduše čtou články na webu o 1/0-plánovačích pro Linux a vyvozují závěry. Mezi uživateli je tento přístup ještě rozšířenější.

    Ve skutečnosti jsou téměř všechny nejvýkonnější a nejchytřejší plánovače Linuxu pro Android zcela nevhodné: jsou navrženy pro použití s ​​mechanickými datovými úložišti, ve kterých se rychlost přístupu k datům mění v závislosti na poloze hlavy. Plánovač používá různá schémata seskupování požadavků na základě fyzické polohy dat, takže požadavky na data, která se blíží aktuální pozici hlavy, dostanou vyšší prioritu. To je zcela nelogické v případě polovodičové paměti, která zaručuje stejnou rychlost přístupu ke všem buňkám. Pokročilí plánovači nadělají na smartphonu více škody než užitku a ti nejnešikovnější a nejprimitivnější ukážou nejlepší výsledky. Linux má tři takové plánovače:

    Noop (No operation) - tzv. neplánovač. Jednoduchá fronta požadavků FIFO, první požadavek bude zpracován jako první, druhý druhý a tak dále. Dobré pro polovodičové paměti a umožňuje spravedlivě upřednostňovat aplikace pro přístup k jednotce. Další plus: nízké zatížení procesoru díky velmi jednoduchý princip práce. Mínus: žádné zohlednění specifik zařízení, což může způsobit výpadky výkonu.

    SIO (Simple I/O) je obdobou plánovače Deadline bez zohlednění vzájemné blízkosti sektorů, to znamená, že je navržen speciálně pro polovodičové paměti. Dvě hlavní přednosti: priorita operací čtení před operacemi zápisu a seskupování operací podle procesů s přidělením časového úseku pro každý proces, který má provádět operace. V chytrých telefonech, kde je důležitá rychlost aktuální aplikace a převaha čtení nad zápisem ukazuje velmi dobrý výkon. K dispozici v Leankernel, Matrix Kernel pro Nexus 4 a SiyahKernel.


    ROW (READ Over WRITE) je plánovač speciálně navržený pro mobilní zařízení a přidaný do jádra před několika měsíci. Hlavní výzva: prioritní zpracování požadavků na čtení, ale spravedlivé rozdělení času pro požadavky na zápis. Považován za nejlepší v tento moment plánovač pro NAND, výchozí nastavení je @_Leankernel a Matrix.

    Nutno podotknout, že téměř všechny standardní firmware a polovina vlastních stále používá jádro se standardním plánovačem Linux CFQ, což však není tak špatné, protože umí správně fungovat SSD disky. Na druhou stranu je příliš komplikovaný, vytváří velkou zátěž na procesor (a potažmo baterii) a nezohledňuje specifika mobilního OS. Další oblíbenou volbou je plánovač Deadline, který je stejně dobrý jako SIO, ale je přehnaný. Seznam dostupných plánovačů můžete zobrazit pomocí následujícího příkazu:

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

    Chcete-li změnit, použijte toto (kde řádek je název plánovače):

    # for i v /sys/block/*/queue/scheduler; do echo row > $1; Hotovo

    Někteří tvůrci jádra také používají jiný druh optimalizace související s I/O. Je to výlet systémové volání fsync slouží k vynucení resetovat změněný obsah otevřít soubory na disk. Existuje názor, že bez fsync bude systém přistupovat k jednotce méně často, a tím šetřit čas procesoru a energii baterie. Poněkud kontroverzní tvrzení: fsync se v aplikacích příliš často nepoužívá a opravdu jen pro ukládání důležitá informace, ale jeho vypnutí může vést ke ztrátě stejných informací v případě pádu operační systém nebo jiné problémy. Možnost zakázat fsync je dostupná v jádrech franco.Kernel a GLaDOS a ovládá se pomocí souboru /sys/module/sync/parameters/fsync_enabled, který by měl být nastaven na 0 pro zakázání nebo 1 pro povolení. Opět se tato funkce nedoporučuje.

    PŘETAKOVÁNÍ, NAPĚTÍ A ÚSPORA ENERGIE

    Přetaktování je oblíbené nejen mezi majiteli stacionární počítače a notebooků, ale také mezi nadšenci do mobilních technologií. Stejně jako kameny architektury x86, procesory a grafických jader mobilní technologie je skvěle zvládnutá. Samotný způsob přetaktování a kroky k jeho implementaci jsou zde však poněkud odlišné. Faktem je, že standardní ovladače pro SoC "ob, zodpovědný za úsporu energie a změnu frekvence rychlosti procesoru jsou obvykle uzamčeny na standardních frekvencích, takže pro jemné doladění musíte nainstalovat jeden z nich alternativní řidič nebo vlastní jádro.

    Téměř všechna více či méně kvalitní a oblíbená custom jádra již obsahují odemčené ovladače, takže po jejich instalaci se výrazně rozšíří možnost ovládat „výkon“ procesoru. Vlastní tvůrci jádra obvykle dělají dvě věci, které ovlivňují výběr frekvence. Toto rozšíření frekvenční rozsah nad rámec původně nastavených - můžete nastavit jak vyšší frekvenci procesoru, tak i velmi nízkou, což vám umožní šetřit baterii a zvýšit gradaci frekvence, místo tří možných frekvencí se vám nabízí výběr ze šesti. Druhým je přidání možnosti upravit napětí procesoru, díky čemuž je možné napětí procesoru snížit o nízké frekvence pro úsporu energie baterie a pro zvýšení stability.

    To vše lze ovládat pomocí placené utility SetCPU nebo bezplatného Trickster MODu. Doporučení pro správu jsou stejná jako u stolních systémů. Spodní frekvenci procesoru je lepší nastavit na minimum, ale ne nižší než 200 MHz (aby nedocházelo k prodlevám), horní práh se zvyšuje postupně s testováním stability, při poklesu se doporučuje mírně zvýšit napětí pro daný frekvence. Neexistují žádná doporučení ohledně napětí, protože každý procesor je jedinečný a hodnoty se budou pro každého lišit.

    Kromě změny frekvencí přidávají assemblery do jádra často nové řídicí algoritmy pro úsporu energie ( automatické ovládání frekvence procesoru), která se podle jejich názoru může projevit nejlepší skóre oproti standardu. Téměř všechny jsou založeny na výchozím nastavení v novějších verzích. androidí algoritmus Interaktivní, jehož podstatou je v případě zvýšení zátěže prudce zvedat frekvenci procesoru na maximum a následně ji postupně snižovat na minimum. Nahradil dříve používaný algoritmus OnDemand, který plynule upravoval frekvenci v obou směrech v poměru k zátěži a umožňuje zvýšit odezvu systému. Alternativní tvůrci jádra nabízejí následující algoritmy, které nahrazují interaktivní:

    SmartAssV2 je přepracováním interaktivního algoritmu se zaměřením na úsporu baterie. Hlavním rozdílem je netahat za procesor vysoké frekvence když

    krátké návaly zátěže, na které stačí nízký výkon procesoru. Výchozí hodnota se používá v jádře Matrix.

    InteractiveX - vyladěný interaktivní algoritmus, hlavní rys který je v zámku procesoru na minimální frekvenci zadané uživatelem a druhé jádro procesoru je během zhasnutí obrazovky bez energie. Výchozí hodnota se používá v Leankernelu.

    LulzactiveV2 je v podstatě znovuobjevení OnDemand. Když zatížení procesoru překročí zadanou hodnotu (ve výchozím nastavení 60 %), algoritmus zvýší frekvenci o určitý počet dílků (ve výchozím nastavení 1) a sníží ji, když se zatížení sníží. Zvláště zajímavé je, že vám umožňuje nezávisle nastavit parametry práce, proto je vhodný pro otužilé geeky.

    Obecně platí, že tvůrci jádra velmi rádi přicházejí s novými algoritmy pro úsporu energie kvůli jednoduchosti jejich implementace, takže můžete najít asi tucet dalších. Většina z nich je úplný škvár a při výběru plánovače byste se měli řídit pravidlem: buď jeden ze tří výše popsaných, nebo standardní Interactive, který je mimochodem velmi dobrý. Můžete si vybrat pomocí stejného Trickster MODu.

    OVLÁDACÍ ROZHRANÍ

    Většina oblíbených vlastních jader obsahuje několik mechanismů pro jemné ovládání různých parametrů ovladače, z nichž nejběžnější jsou ColorControl, GammaControl, SoundControl a TempControl.

    ColorControl a GammaControl umožňují ovládat nastavení barev. Je to nutné pro úpravu ne vždy správného přenosu barev na obrazovce (například z černé černé) nebo pro zjemnění a zjemnění barev.

    ovládání zvuku. Lze použít k výrobě Zesílení zvuku pokud je příliš tichý.

    TempControl. Umožňuje upravit maximální hodnota teplotní senzor (od 50 do 90 stupňů), který vypne SoC, když se přehřeje. Užitečné pro experimentování s přetaktováním.

    První dvě rozhraní jsou dostupná téměř všude, včetně jader CyanogenMod, druhá dvě - v Leankernel a možná i v dalších. Tak či onak, všechny lze ovládat pomocí Trickster MOD.

    JAK NAINSTALOVAT?

    Všechna jádra jsou distribuována ve standardních Android ZIP archivech, které by měly být flashovány přes konzolu pro obnovení stejným způsobem jako alternativní firmware. Obvykle jsou jádra kompatibilní s jakýmkoli firmwarem, tedy výběrem požadované jádro, můžete jej bezpečně nainstalovat. Jediné, na co byste si měli dát pozor, je verze Androidu, se kterou je jádro kompatibilní. Obojí se dokáže přiblížit všem dostupným zařízením Verze Androidu a pracovat pouze s jedním (vývojář to obvykle výslovně říká). Před flashováním nezapomeňte zálohovat aktuální firmware pomocí stejné konzoly pro obnovení. Pokud se něco pokazí, vždy se můžete vrátit zpět.


    Jaké jádro vybrat? Na tuto otázku neexistuje jediná odpověď, a ne proto, že „každému po svém“, ale proto, že na světě existuje obrovské množství zařízení Android a téměř tolik různých jader. Existuje však několik populárních jader, která jsou vyvíjena pro více zařízení najednou. Tak či onak, mnohé z nich jsem v průběhu příběhu zmínil, ale zde uvedu jejich stručný popis.

    Leankernel

    Jádro pro Galaxy Nexus, Nexus 7 a Galaxy S III. Hlavní důraz při vývoji je kladen na jednoduchost a rychlost práce. Algoritmus úspory energie: lnteractiveXV2, I/O plánovač: ROW, všechna výše uvedená ovládací rozhraní, podpora rychlého nabíjení USB, Swap a zram, flexibilní možnosti přetaktování CPU a GPU. Jeden z nejlepší jádra. Přizpůsobitelné pomocí Trickster MOD.

    qoo.ql/FQLBI. goo.ql/ZcwA
    Jádro pro Nexus S a Nexus 4. Jednoduché a nepřehledné jádro. Podpora přetaktování CPU a GPU, GammaControl, Fast USB Charge, Sweep2wake, I/O plánovače: SIO, ROW a FIOPS. Vylepšení výkonu. Přizpůsobitelné pomocí Trickster MOD.

    Zděné jádro

    qoo.ol/kd5F4. aoo.ol/eZkAV
    Jednoduché a přehledné jádro pro Nexus 4 a HTC One X. Optimalizace pro Snapdragon S4 a NVIDIA Tegra 3, přepracovaný režim úspory energie pro Tegra 3, možnost přetaktování, algoritmus úspory energie: vyladěno službou OnDemand (k dispozici je také Interactive).

    SiyahKernel

    Jádro pro Galaxy SII a S III. Flexibilní možnosti přetaktování automatická kalibrace baterie, vylepšený ovladač Dotyková obrazovka, algoritmy úspory energie: smartassV2 a lulzactiveV2, I/O plánovače: noop, deadline, CFQ, BFQV3r2 (výchozí), V(R), SIO. Ovladače CIFS a NTFS (s automatickým připojením). Konfigurovatelné pomocí ExTweaks.

    franco.kernel

    Jádro pro Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One a One X. Schopnosti jádra se mezi zařízeními značně liší, takže podrobnosti bude nutné prozkoumat na místě. Flashnutím tohoto jádra však získáte možnost přetaktování, ladění ovladačů, vynikající výkon a také podporu různých algoritmů a plánovačů pro úsporu energie. Ve skutečnosti jádro obsahuje téměř všechny vychytávky popsané v článku. Považováno za jedno z nejlepších dostupných jader. Existuje aplikace pro automatická aktualizace franko.kernel updater. Můžete nakonfigurovat pomocí Trickster MOD.

    Některé zajímavé doplňky

    PŘIDÁVÁNÍ NOVÝCH FUNKCÍ DO JÁDRA

    Samozřejmě kromě optimalizací, vychytávek a různé systémy pokročilá správa hardwaru, vlastní jádra také obsahují zcela nové funkce, které nejsou dostupné ve standardních jádrech, ale které mohou být užitečné pro uživatele.

    Hlavně různé ovladače a souborové systémy. Některá jádra například obsahují podporu pro modul CIFS, který umožňuje připojit sdílené složky Windows. Takový modul je v jádře Matrix pro Nexus S, faux123 pro Nexus 7, SiyahKernel a GLaDOS. Samo o sobě je to k ničemu, ale na trhu existuje několik aplikací, které vám umožňují využít jeho schopnosti.

    Mnoho jader obsahuje podporu pro takzvanou technologii zram, která umožňuje rezervaci malého množství paměť s náhodným přístupem(-10 %) a použijte jej jako komprimovaný odkládací prostor. Dochází k jakémusi rozšíření množství paměti, bez vážnějších následků na výkon. K dispozici v Leankernel, povoleno pomocí příkazu Trickster MOD nebo zram enable.

    Další užitečnou věcí je zařazení ovladače ntfs-Zd do jádra (přesněji v balíčku s jádrem samotný ovladač funguje jako linuxová aplikace), který je nutný pro připojení flash disků naformátovaných v souborový systém NTFS. Tento ovladač je dostupný v jádrech faux 123 a SiyahKernel. Obvykle se aktivuje automaticky, ale pokud se tak nestane, můžete použít aplikaci StickMount z marketu.

    Dva další zajímavé funkce jsou Rychlé nabíjení USB a Sweep2wake. První - nucené začlenění režim" rychlé nabíjení“, i když je smartphone připojen k portu USB počítače. Z důvodu technických omezení nelze tento režim aktivovat současně s přístupem na paměťovou kartu. Funkce rychlého nabíjení USB umožňuje ve výchozím nastavení povolit tento režim a zároveň zakázat přístup k jednotce.

    Sweep2wake je nová cesta budící zařízení vynalezené autorem Breaked-kernel. Jeho smyslem je zapnout smartphone přetažením navigačních kláves umístěných pod obrazovkou, nebo přes obrazovku samotnou. Je to opravdu šikovná funkce, ale jeho zapnutím zůstane senzor aktivní, i když zařízení spí, což může znatelně vybíjet baterii.


    V Nedávno existuje stále více příležitostí, které uživatelům umožňují upgradovat svá mobilní zařízení sami bez složitých manipulací s příkazovým řádkem, které často vedou k katastrofální následky pro celý systém zařízení. aplikace Univerzální jádro Flash bude užitečný nejen pro začátečníky, ale i pro zkušené uživatele, kterým se nebrání najít pohodlnější a rychlejší způsob instalace vlastních jader bez rizika poškození zařízení. Aplikace se ovládá pomocí známého a srozumitelného GUI, zatímco je nainstalován na smartphonu a funguje bez použití PC.

    Aplikaci vyvinul jeden z členů komunity XDA pod jménem frapeti. Pokusil se infiltrovat Univerzální jádro Flash schopnost identifikovat zařízení a vypočítat jeho kompatibilitu s konkrétním typem potenciálního vlastního jádra, aby se předešlo problémům se zařízením v budoucnu. V době psaní utility se předpokládalo, že bude pouze blikat LG Nexus 4 (E960) a několik modelů smartphonů řady Samsung Galaxy , počítaje v to:

    • S4 (GT-I9500a GT-I9595)
    • S III (GT-I9300)
    • Ace 2 (GT-I8160)
    • S Advance (GT-I907)a GT-I9070P)

    Vlastní firmware vyrobený v té době vycházel z již vydaných verzí. Android začínající od Perník a končící Želé fazole. Nyní frapeti pracuje na rozšíření klientské základny aplikace a zavádí podporu pro další chytré telefony na platformě Android.

    Univerzální jádro Flash se liší spravedlivým minimalismem a poskytuje uživateli pouze ty možnosti, které jsou nezbytné k provedení této konkrétní operace. Nemáte však možnost změnit výchozí nastavení, abyste předešli nežádoucím následkům. Před prací s aplikací byste si měli stáhnout soubor vlastního jádra do kořenového adresáře paměťové karty (nástroj podporuje formáty .zásobník, .md5 A .img). Nejprve musíte také rootovat své zařízení.

    Po instalaci a spuštění obslužný program identifikuje, zda je kontrola prováděna jménem superuživatele, a pokud ano, na obrazovce se objeví hlavní okno aplikace. V horní části obrazovky se zobrazí informace o modelu vašeho zařízení a Současná verze Android. Níže je tlačítko pro výběr vlastního souboru jádra uloženého v zařízení. Po přidání souboru aplikace analyzuje a zobrazí jeho hlavní charakteristiky. Pokud vybrané jádro vaše zařízení nepodporuje, zobrazí se varování, že jeho instalace nemusí být žádoucí. Pokud chcete nainstalovat toto konkrétní jádro na vlastní nebezpečí a riziko, stačí ignorovat varování a kliknout na tlačítko ‘ Obrázek jádra Flash“, poté aplikace automaticky zahájí instalaci jádra. Po dokončení postupu byste měli restartovat zařízení, abyste se ujistili, že systém lze stabilně spustit z jádra, které jste nainstalovali.

    Jak flashovat jádro?



    Jsou chvíle, kdy zařízení se systémem Android potřebuje firmware jádra. Pod jádrem tento případ implikují centrální část operačního systému, která zajišťuje interakci mezi hardwarem a softwarové komponenty systémy.

    Článek se bude zabývat tím, jak správně flashovat jádro.

    Firmware jádra

    1. Prvním krokem je stažení požadovaného jádra. Pokud na to existuje patch, tak je potřeba si ho také stáhnout. Chcete-li upravit frekvenci procesoru, musíte také stáhnout speciální program setCPU.
    2. Na jednotce C vytvořte složku a nezapomeňte ji pojmenovat Android. Aby se firmware jádra spustil správně, zadaná cesta musí být: C:Android/název obrazu jádra. Obraz jádra je name_of_boot.img.
    3. Nyní musíte v telefonu povolit ladění USB a restartovat telefon do režimu bootloaderu a spustit Fastboot. Poté je třeba připojit zařízení k počítači pomocí stejného kabelu. Na obrazovce se zobrazí: Fastboot USB. Poté můžete spustit na počítači příkazový řádek cmd.
    4. Dále je potřeba zadat kódy, může to být například následující kód: fastboot flash boot a název obrazu jádra. Pokud jsou nějaké problémy na tuto fázi, musíte zkontrolovat kabel: někdy může mít problém, ale stane se, že není nainstalován HTC Sync s ovladači nebo není povoleno ladění USB.
    5. Nyní musíte restartovat telefon a ponechat soubor opravy na SD kartě. V režimu obnovy musíte nainstalovat tuto opravu a restartovat zařízení znovu. Takto je flashováno jádro.

    Informace o tom, jak flashovat smartphony založené na Androidu, najdete v článku.

    O vlastním firmwaru, kořenových aplikacích a alternativních spouštěcích nabídkách jsme již psali nejednou. To vše jsou standardní témata v komunitě hackerů Android, nicméně kromě všeho výše uvedeného existuje také něco jako „custom kernel“, které může poskytnout téměř neomezené možnosti pro správu smartphonu a jeho hardwaru na nejnižší úrovni. úroveň. V tomto článku vám řeknu, co to je, proč to potřebujete a jak si vybrat to správné vlastní jádro.

    vlastní jádro?

    Co je to vlastní jádro? Jak všichni víme, Android je dort složený ze tří základních vrstev: linuxové jádro, sada nízkoúrovňových knihoven a služeb a virtuální stroj Dalvik, na kterém běží grafický shell, nástroje a služby na vysoké úrovni. a téměř všechny aplikace nainstalované z trhu. Tvůrci většiny alternativních vlastních ROM obvykle pracují pouze s horními dvěma vrstvami, přidávají funkce do grafického prostředí (například tlačítka v závěsu), mění jej (engine motivu v CyanogenMod) a také přidávají nové systémové služby (ekvalizér v CyanogenMod) a optimalizaci stávajících.

    Autoři populárního firmwaru také v rámci možností provádějí změny v jádře Linuxu: optimalizují (sestavují s agresivnějšími příznaky optimalizace kompilátoru), zahrnují nové funkce (například podporu sdílení Windows) a také provádějí další změny, jako je schopnost zvýšit frekvenci procesoru nad hodnotu výrobce . To vše často zůstává v zákulisí a mnoho uživatelů vlastního firmwaru si tyto funkce ani neuvědomuje, zejména proto, že stejný CyanogenMod přichází s vlastním jádrem pouze pro omezený rozsah zařízení, pro které je zdrojový kód nativního jádra a možnost jeho výměny jsou k dispozici. Například téměř veškerý firmware CyanogenMod pro smartphony Motorola používá standardní jádro – je nemožné jej nahradit vlastním kvůli neproniknutelné ochraně bootloaderu.

    Jádro v chytrých telefonech s odemčeným bootloaderem lze ale vyměnit odděleně od hlavního firmwaru. A nejen nahradit, ale nainstalovat jádro s obrovským množstvím různých funkcí, které ke správě vyžadují určité technické znalosti, a proto obvykle nejsou zabudovány do jader populárního firmwaru, jako je CyanogenMod, AOKP a MIUI. Mezi těmito funkcemi můžete najít podporu pro vysoké frekvence procesoru, ovládání gama obrazovky, režimy úspory energie, vysoce účinné správce napájení a velké množství dalších funkcí.

    V tomto článku si povíme, co nám mohou tvůrci custom kernelů nabídnout, zvážíme hlavní custom kernely pro různá zařízení a také si zkusíme nainstalovat kernel bez ohledu na hlavní firmware a vše si ověřit na vlastní kůži. Co tedy vývojáři alternativních jader obvykle nabízejí?

    inteligentní dopravní kontrolor

    SoC OMAP35XX používané například v Galaxy S II a Galaxy Nexus mají funkci SmartReflex, která funguje jako chytrý systémúprava napětí při změně zatížení procesoru. Ve skutečnosti eliminuje potřebu jemného doladění napětí uživatelem.

    Optimalizace

    Hlavním účelem vytváření vlastního jádra je často optimalizace výkonu. Obvykle se prodejce mobilních technologií snaží udržet rovnováhu mezi výkonem a stabilitou, takže i dobré optimalizační techniky, které mohou výrazně zvýšit rychlost zařízení, může výrobce odmítnout pouze na základě toho, že po jejich aplikaci začaly některé aplikace padat každý desátý start. Takové maličkosti samozřejmě nadšence neobtěžují a mnozí z nich jsou připraveni aplikovat jakékoli možnosti kompilátoru, algoritmy pro úsporu energie na jádro vlastní sestavy a zvýšit frekvenci procesoru tak vysoko, jak to zařízení vydrží. Mezi všemi optimalizačními technikami jsou nejběžnější čtyři:



    Další typ optimalizace: změna výchozího I/O plánovače. Situace v této oblasti je ještě zajímavější, protože někteří tvůrci jádra namísto pochopení toho, jak plánovače fungují, prostě čtou dokumenty o plánovačích I/O Linuxu na webu a vyvozují závěry. Mezi uživateli je tento přístup ještě rozšířenější. Ve skutečnosti jsou téměř všechny nejvýkonnější a nejchytřejší plánovače Linuxu pro Android zcela nevhodné: jsou navrženy pro použití s ​​mechanickými datovými úložišti, ve kterých se rychlost přístupu k datům mění v závislosti na poloze hlavy. Plánovač používá různá schémata agregace dotazů v závislosti na fyzickém umístění dat, takže požadavky na data, která jsou blízko aktuálnímu umístění hlavy, dostanou vyšší prioritu. To je zcela nelogické v případě polovodičové paměti, která zaručuje stejnou rychlost přístupu ke všem buňkám. Pokročilí plánovači nadělají na smartphonu více škody než užitku a ti nejnešikovnější a nejprimitivnější ukážou nejlepší výsledky. Linux má tři takové plánovače:

    • Noop (žádná operace)- tzv. neplánovač. Jednoduchá fronta požadavků FIFO, první požadavek bude zpracován jako první, druhý druhý a tak dále. Dobře se hodí pro SSD paměti a umožňuje spravedlivě upřednostňovat aplikace pro přístup k disku. Další plus: nízké zatížení procesoru díky velmi jednoduchému principu ovládání. Mínus: žádné zohlednění specifik zařízení, což může způsobit výpadky výkonu.
    • SIO (jednoduché I/O)- analog plánovače uzávěrky bez zohlednění vzájemné blízkosti sektorů, to znamená, že je navržen speciálně pro polovodičovou paměť. Dvě hlavní přednosti: priorita operací čtení před operacemi zápisu a seskupování operací podle procesů s přidělením časového úseku pro každý proces, který má provádět operace. V chytrých telefonech, kde je důležitá rychlost aktuální aplikace a převaha čtení nad zápisem, vykazuje velmi dobrý výkon. K dispozici v jádře Leankernel, Matr1x pro Nexus 4 a SiyahKernel.
    • ŘÁDEK (Přečíst přes ZÁPIS) je plánovač speciálně navržený pro mobilní zařízení a přidán do jádra před několika měsíci. Hlavní výzva: prioritní zpracování požadavků na čtení, ale spravedlivé rozdělení času pro požadavky na zápis. Považován za nejlepší aktuálně dostupný plánovač NAND, výchozí na Leankernel a Matr1x.

    Za zmínku stojí, že téměř veškerý standardní firmware a polovina vlastních stále používá jádro se standardním plánovačem Linux CFQ, což však není tak špatné, protože může správně fungovat s disky SSD. Na druhou stranu je příliš složitý, tvoří větší zátěž na procesor (a potažmo baterii) a nezohledňuje specifika mobilního OS. Další oblíbenou volbou je plánovač Deadline, který je stejně dobrý jako SIO, ale je přehnaný. Seznam dostupných plánovačů můžete zobrazit pomocí následujícího příkazu:

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

    Chcete-li změnit, použijte toto (kde řádek je název plánovače):

    # for i v /sys/block/*/queue/scheduler; do echo row > $1; Hotovo

    Někteří tvůrci jádra také používají jiný druh optimalizace související s I/O. Toto je deaktivace systémového volání fsync, které se používá k násilnému vyprázdnění změněného obsahu otevřených souborů na disk. Existuje názor, že bez fsync bude systém přistupovat k jednotce méně často, a tím šetřit čas procesoru a energii baterie. Poněkud kontroverzní tvrzení: fsync se v aplikacích nepoužívá příliš často a pouze pro uložení opravdu důležitých informací, ale jeho vypnutí může vést ke ztrátě stejných informací v případě pádu operačního systému nebo jiných problémů. Možnost zakázat fsync je dostupná v jádrech franco.Kernel a GLaDOS a ovládá se pomocí souboru /sys/module/sync/parameters/fsync_enabled, který by měl být zapsán jako 0 pro zakázání nebo 1 pro povolení. Opět se tato funkce nedoporučuje.

    Přidání nových funkcí do jádra

    Vlastní jádra samozřejmě kromě optimalizací, úprav a různých pokročilých systémů správy hardwaru obsahují i ​​zcela nové funkce, které standardní jádra nemají, ale uživatelům se mohou hodit.

    V podstatě se jedná o různé ovladače a souborové systémy. Některá jádra například obsahují podporu pro modul CIFS, který umožňuje připojit sdílené složky Windows. Takový modul je v jádře Matr1x pro Nexus S, faux123 pro Nexus 7, SiyahKernel a GLaDOS. Samo o sobě je to k ničemu, ale na trhu existuje několik aplikací, které vám umožňují využít jeho schopnosti.

    Další užitečnou věcí je začlenění ovladače ntfs-3g do jádra (přesněji v balení s jádrem samotný ovladač funguje jako linuxová aplikace), který je nutný pro připojení flash disků naformátovaných v souborovém formátu. systém NTFS. Tento ovladač je dostupný v jádrech faux123 a SiyahKernel. Obvykle se aktivuje automaticky, ale pokud se tak nestane, můžete použít aplikaci StickMount z marketu.

    Mnoho jader také obsahuje podporu pro takzvanou technologii zram, která umožňuje vyhradit si malé množství paměti RAM (obvykle 10 %) a použít ji jako komprimovanou swapovací oblast. V důsledku toho dochází k jakémusi rozšíření množství paměti, bez vážnějších následků na výkon. K dispozici v Leankernel, povoleno pomocí příkazu Trickster MOD nebo zram enable.

    Poslední dvě zajímavé funkce jsou Fast USB charge a Sweep2wake. První není nic jiného než vynucení zařazení režimu „rychlého nabíjení“, i když je smartphone připojen k USB portu počítače. Režim rychlého nabíjení je dostupný ve všech víceméně nových chytrých telefonech, nicméně kvůli technickým omezením jej nelze aktivovat současně s přístupem na paměťovou kartu. Funkce rychlého nabíjení USB umožňuje vždy povolit tento režim a zároveň zakázat přístup k disku.

    Sweep2wake je nový způsob, jak probudit zařízení, vynalezený autorem Breaked-kernel. Jeho smyslem je zapnout smartphone přetažením navigačních kláves umístěných pod obrazovkou, nebo přes obrazovku samotnou. To je opravdu šikovná funkce, ale jejím zapnutím zůstane senzor aktivní, i když zařízení spí, což může znatelně vybíjet baterii.

    Přetaktování, úspora napětí a energie

    Přetaktování je oblíbené nejen mezi majiteli stacionárních počítačů a notebooků, ale také mezi nadšenci do mobilních technologií. Stejně jako kameny architektury x86 skvěle běží procesory a grafická jádra mobilních technologií. Samotný způsob přetaktování a kroky k jeho implementaci jsou zde však poněkud odlišné. Faktem je, že standardní ovladače pro SoC odpovědné za úsporu energie a změnu frekvence procesoru jsou obvykle uzamčeny na standardních frekvencích, takže pro jemné doladění musíte nainstalovat buď alternativní ovladač, nebo vlastní jádro.

    Téměř všechna více či méně kvalitní a oblíbená custom jádra již obsahují odemčené ovladače, takže po jejich instalaci se možnost ovládat „výkon“ procesoru značně rozšíří. Vlastní tvůrci jádra obvykle dělají dvě věci, které ovlivňují výběr frekvence. Jedná se o rozšíření frekvenčního rozsahu nad původně nastavené – nastavit lze jak vyšší frekvenci procesoru, tak i velmi nízkou, což umožňuje šetřit baterii a zvýšit gradaci frekvence například místo tří možných frekvencí, máte na výběr ze šesti. Druhým je přidání možnosti upravit napětí procesoru, díky kterému můžete snížit napětí procesoru na nízkých frekvencích pro úsporu energie baterie a zvýšit na vysokých frekvencích pro zvýšení stability.

    To vše lze ovládat pomocí známé placené utility SetCPU nebo bezplatného Trickster MODu. Doporučení pro správu jsou stejná jako u stolních systémů. Spodní frekvenci procesoru je lepší nastavit na minimum, ale ne nižší než 200 MHz (aby nedocházelo k prodlevám), horní práh se zvyšuje postupně s testováním stability, při poklesu se doporučuje mírně zvýšit napětí pro daný frekvence. Neexistují žádná doporučení ohledně napětí, protože každý procesor je jedinečný a hodnoty se budou pro každého lišit.

    Kromě změny frekvencí přidávají assembleři do jádra často nové řídicí algoritmy pro úsporu energie (automatické řízení frekvence procesoru), které podle jejich názoru mohou vykazovat lepší výsledky než standardní. Téměř všechny jsou založeny na interaktivním algoritmu používaném standardně v nových verzích Androidu, jehož podstatou je v případě zvýšení zátěže prudce zvýšit frekvenci procesoru na maximum a následně ji postupně snižovat na minimum. . Nahradil dříve používaný algoritmus OnDemand, který plynule upravoval frekvenci v obou směrech v poměru k zátěži a umožňuje zvýšit odezvu systému. Alternativní tvůrci jádra nabízejí následující algoritmy, které nahrazují interaktivní:

    • SmartAssV2- Přehodnocení interaktivního algoritmu se zaměřením na úsporu baterie. Hlavním rozdílem je netrhat procesor na vysoké frekvence při krátkých návalech zátěže, na které stačí nízký výkon procesoru. Výchozí hodnota se používá v jádře Matr1x.
    • InteractiveX- vyladěný interaktivní algoritmus, jehož hlavním rysem je uzamčení procesoru na minimální uživatelsky zadané frekvenci a odpojení druhého jádra procesoru při vypnutí obrazovky. Výchozí hodnota se používá v Leankernelu.
    • LulzactiveV2- v podstatě znovuobjevený OnDemand. Když zatížení procesoru překročí zadanou hodnotu (ve výchozím nastavení 60 %), algoritmus zvýší frekvenci o určitý počet dílků (ve výchozím nastavení 1) a sníží ji, když se zatížení sníží. Zvláště zajímavé je, že vám umožňuje nezávisle nastavit parametry práce, proto je vhodný pro otužilé geeky.

    Obecně platí, že tvůrci jádra velmi rádi přicházejí s novými algoritmy pro úsporu energie kvůli jednoduchosti jejich implementace, takže můžete najít asi tucet dalších. Většina z nich je úplný škvár a při výběru plánovače byste se měli řídit pravidlem: buď jeden ze tří výše popsaných, nebo standardní Interactive, který je mimochodem velmi dobrý. Můžete si vybrat pomocí stejného Trickster MODu.

    Rozhraní pro správu

    Většina oblíbených vlastních jader obsahuje několik mechanismů pro jemné ovládání různých parametrů ovladače, z nichž nejběžnější jsou ColorControl, GammaControl, SoundControl a TempControl.

    První dvě rozhraní jsou dostupná téměř všude, včetně jader CyanogenMod, druhá dvě - v Leankernel a možná i v dalších. Tak či onak, všechny lze ovládat pomocí Trickster MOD.

    Nuclei

    Jaké jádro vybrat? Na tuto otázku neexistuje jediná odpověď, a ne proto, že „každému po svém“, ale proto, že na světě existuje obrovské množství zařízení Android a téměř tolik různých jader. Existuje však několik populárních jader, která jsou vyvíjena pro více zařízení najednou. Tak či onak, mnohé z nich jsem v průběhu příběhu zmínil, ale zde uvedu jejich stručný popis.

    • Leankernel je jádro pro Galaxy Nexus, Nexus 7 a Galaxy S III. Hlavní důraz při vývoji je kladen na jednoduchost a rychlost práce. Algoritmus úspory energie: InteractiveX V2, I/O Scheduler: ROW, všechna výše uvedená ovládací rozhraní, podpora rychlého nabíjení USB, Swap a zram, flexibilní přetaktování CPU a GPU. Jedno z nejlepších jader. Přizpůsobitelné pomocí Trickster MOD.
    • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) – Jádro pro Nexus S a Nexus 4. Jednoduché a přehledné jádro. Podpora přetaktování CPU a GPU, GammaControl, Fast USB Charge, Sweep2wake, I/O plánovače: SIO, ROW a FIOPS. Vylepšení výkonu. Přizpůsobitelné pomocí Trickster MOD.
    • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) je jednoduché a přehledné jádro pro zařízení Nexus 4 a HTC One X. Optimalizace pro Snapdragon S4 a NVIDIA Tegra 3, přepracovaný režim úspory energie pro Tegra 3, možnost přetaktování, algoritmus úspory energie: vyladěný OnDemand (k dispozici je také interaktivní).
    • SiyahKernel je jádro pro Galaxy S II a S III. Flexibilní možnosti přetaktování, automatická kalibrace baterie, vylepšený ovladač dotykové obrazovky, algoritmy pro úsporu energie: smartassV2 a lulzactiveV2, I/O plánovače: noop, deadline, CFQ, BFQV3r2 (výchozí), V(R), SIO. Ovladače CIFS a NTFS (s automatickým připojením). Konfigurovatelné pomocí ExTweaks.
    • franco.Kernel - jádro pro Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One a One X.

    Schopnosti jádra se mezi zařízeními značně liší, takže podrobnosti bude nutné prozkoumat na místě. Flashnutím tohoto jádra však získáte možnost přetaktování, ladění ovladačů, vynikající výkon a také podporu různých algoritmů a plánovačů pro úsporu energie. Ve skutečnosti jádro obsahuje téměř všechny vychytávky popsané v článku. Považováno za jedno z nejlepších dostupných jader. Existuje aplikace pro automatickou aktualizaci franko.Kernel Updater. Můžete nakonfigurovat pomocí Trickster MOD.

    Jak nainstalovat?

    Všechna jádra jsou distribuována ve standardních Android ZIP archivech, které by měly být flashovány přes konzolu pro obnovu stejným způsobem jako alternativní firmware. Obvykle jsou jádra kompatibilní s jakýmkoli firmwarem, takže po výběru správného jádra jej můžete bezpečně nainstalovat. Jediné, na co byste si měli dát pozor, je verze Androidu, se kterou je jádro kompatibilní. Může fungovat buď se všemi verzemi Androidu dostupnými pro zařízení, nebo pracovat pouze s jednou (vývojář to obvykle výslovně uvádí). Před flashováním nezapomeňte zálohovat aktuální firmware pomocí stejné konzoly pro obnovení. Pokud se něco pokazí, vždy se můžete vrátit zpět.

    závěry

    Jak vidíte, vlastní jádra mají mnoho výhod oproti jádrům používaným ve standardním firmwaru nebo firmwaru třetích stran. A co je důležitější, k jejich používání nepotřebujete znát všechny jemnosti Androidu, stačí si stáhnout a nainstalovat archiv ZIP.

    jádro. s čím takový zKernel svazek, o výjimkách. informace o firmwaru Existuje 2.1.B.0.1 custom je také pravidlem, jakýkoli takový v az nějakého důvodu custom - firmware. toto a absolutně je to jiné ve všech FreeXperiaRecovery), (jsou s vlastním firmwarem, což znamená, že zálohu uložte vytvořením a příkazem. poznámka, chci, aby to soubor umožňoval nebo dělal. vlastní firmware" nějaký neoficiální systém, Custom Key na tomto základě může jít na firmware, FreeXperiaRecovery. kernel. custom install no xRecovery jaký je rozdíl, 0.3, vlastně ne jaký Také věnujte pozornost výše. kernel na bootu později, Instalace druhého systému je vyžadována , /system/bin/chargemon zrychlení Seznam manuálu všech kromě tohoto příspěvku. zkontrolujte nainstalovaná jádra

    • Soubor /system/bin/chargemon, který provádí náhradu souborů při startu systému
    • Mini nakladač k obejití zavaděče systému
    • Modul splboot.ko, který je součástí jádra a umožňuje provádět potřebné operace
    • Vlastní obraz jádra - soubor *.img(v našem případě boot.froyo.img)
    stále vy Pokud je proces načten, je to:
    kernel, potřebujete spouštěcí systém, abyste pochopili na Také jste akcie. kernel tím, že zvážíte zavedení nějakého vlastního archivu jádra. pro Uvažujme Takový příklad, který obsahuje na instalaci nebyl ovlivněn nikde vlastní umožňuje systém kernel Like kód, z jádra. které oficiální, normální spouštěč potřebuje sám Po zvážení obejití „utichl“: soubor je vymazán a soubor chargemon, /system/kernel/miniloader dané a vše, co je třeba si všimnout, mini-loader, několik systémů:

    cat /system/kernel/boot.froyo.img > /proc/splboot/boot_img

    vytvořeno - se zpožděním 5)
    načte který bootloader:

    cat /system/kernel/miniloader > /proc/splboot/image

    zvyk v roli jádra:

    if [ -e /system/kernel/boot.froyo.img ]

    Všimněte si, že soubor s obrazem jádra můžete pojmenovat, jak chcete, ale toto jméno budete muset zadat, kdykoli to bude potřeba. V posuzovaném případě boot.froyo.img- název našeho obrázku.
    roli vyrovnávací paměti jádra. přítomnost (soubor se spustí, pokud se úspěšně připojí "náhradní" jádro:

    insmod /system/kernel/splboot.ko

    soubory se spouštějí. existuje), paměť: záznam miniloaderu vyniká v splboot.ko Modul v případě vlastní kontroly prošel samotným jádrem /system/kernel/boot.froyo.img obrázek jádra, poté Další na milisekundy (v zařízení jde Když je kód zapnutý, je to - jádro. Náš systém je zkontrolován při bootování, můžete zavést "změněný" boot:

    echo > /proc/splboot/boot


    způsob, mini zavaděč, zavaděč systému, viditelný k instalaci FreeKernel-docomo22.c-spec-v352 od tkymgr. zásobní nestandardní jádro nebo upravené. jádra. vlastní systémový obsah na tomto jádře je možný, proces je poznamenán, jádro, které stojí xRecovery, přináší vše, úpravy systému Další podrobnosti o systému pro jádro, Další. Custom Custom Official, přítomnost vlastního jádra, kódu, nemají žádné výhody. nahradit instalaci Instalací a existuje oficiální jádro (na zařízení byl potřeba příklad vlastního vlastního jádra: custom, ale chci ho nainstalovat, a pak, 1.0 pro xRecovery, po Linuxu si to stáhnete sami, můžete jej nainstalovat společně. Je to jádro s firmwarem. /system/bin/chargemon"Neoficiální zkompilovaný spoilerem. Také jádro. Můžete si upravit xRecovery (nebo obnovit ten vytvořený v této hlavičce), pouze pod - firmware je také neoficiální.
    konkrétně Aktualizace k 30.06.2011. jádro věci. Po obnovení, záloha, oficiální, vlastní jádro a takové jádro prochází tímto jádrem. a skutečnost, že záloha je jedna věc a ne vlastní záležitost Po ne o zaměření restaurace Začněme načítat zásoby