Ako pridať vaše aplikácie do firmvéru. Ako sa systém načíta na ARM pomocou androidu

Takmer každý užívateľ Android smartphone mal túžbu vytvoriť alebo upraviť firmware, aby vyhovoval jeho potrebám a túžbam. V tomto článku sa zaoberáme zásadou úpravy firmvéru pre CWM (vo formáte zip).

príprava:

Po prvé, musíte sa rozhodnúť, aký firmware budeme brať ako základ. Lepšie je používať. firmware v zip. Pre takmer každé bežné zariadenie je čistý firmvér + root.
Keď je vybratý firmvér, musíte ho stiahnuť na ľubovoľnom mieste, ktoré je pre vás vhodné na počítači (nemali by ste ho rozbaliť).
Potrebujeme aj archivátora, radím vám, aby ste ju použili 7zip  a najlepší svojho textového editora Poznámkový blok ++.

Štruktúra firmvéru:

Otvorením archívu firmvérom uvidíte nasledovné:
META-INF  - Priečinok obsahuje skripty na inštaláciu firmvéru.
systém  - priečinok so všetkými firmvérmi (aplikácie, vylepšenia, skripty atď.).
boot.img  - jadro systému.

Takmer všetky manipulácie sa vykonávajú v priečinku systémjeho štruktúra:
aplikácie  - systémové aplikácie.
popolnice  - zdroje samotného systému.
etc  - Skripty, vylepšenia, konfigurácie, profily a nastavenia systému.
fonty  - Systémové písma.
rámec  - Tu sa ukladajú hlavné systémové súbory (grafika, nastavenia animovaného textu atď.).
lib  - systémové knižnice.
médiá  - multimediálne súbory (upozornenia, stahovanie animácií, tapety atď.).
usr  - nastavenia sa systémom ďalej nezmení (pracujú v režime "len na čítanie").
xbin  - znova, konfigurácie systému a ďalšie vylepšenia.
build.prop  - informácie o systéme, nastavení miestnych nastavení a výkonnosti systému.

aplikácie:

Pred pridaním / odstránením softvéru do systému je potrebné skontrolovať, či je firmware deodexovaný (to znamená skontrolovať prítomnosť súborov .odex v priečinku aplikácie.) Ak existujú nejaké súbory, musíte sa ich zbaviť inštrukcia .
Pridajte softvér do firmvéru:
Najskôr je potrebné nainštalovať do svojich inteligentných programov, ktoré chcete pridať do zostavy. Po inštalácii ich vyberieme zo systému Koreňový výťažok  a jeho analógy, sú umiestnené pozdĺž cesty dát / aplikácie, takže buď potrebujeme ich (ak existujú samozrejme), že sú pozdĺž dátovej / dátovej cesty. Sú v priečinku aplikácie s rovnakým názvom a majú rozšírenie .so  , Potom sa chytil APK  Súbory sa dajú do archívu na ceste systému / aplikácie a súbory s príponou .so (lib "s) pozdĺž systému cesty / lib.
Odstráňte softvér z firmvéru:
Všetko je jednoduché a prejdite do priečinka aplikácie  - určujeme, čo nepotrebujeme, a odstráňte všetok nepotrebný softvér (systém sa lepšie nedotýka).

Verzia jazyka a firmvéru:

Skopírujte súbor build.prop na pracovnú plochu. Otvorte ho pomocou prenosného počítača a nájdite linky:

ro.product.locale.language = sk
ro.product.locale.region = US

pre ruský jazyk, musíte to urobiť:

ro.product.locale.language = sk
ro.product.locale.region = RU

do reťazca zadáme názov nášho modu

v rovnakom build.prop

grafika:

Celá grafická časť firmvéru je uložená v dvoch súboroch cesta k súboru framework-res.apk systemframework  a SystemUI.apk pozdĺž cesty systemapp, A grafická časť aplikácie nastavení sa prirodzene ukladá v aplikácii Settings.apk.

Skripty a vylepšenia (zrýchlenie a optimalizácia systému):

Väčšina nastavení je v súbore. build.prop, môžete o tom prečítať. Tiež ak podporuje vaše jadro

Začnime s jednoduchou zmienkou, že čip vyrobený podľa architektúry ARM je systém na čip (SoC). To znamená, že je to kompletný počítač implementovaný na jednom čipu. Procesory tejto architektúry robia veľa zariadení (smerovače, prepínače, vstavané počítače v televízoroch, herné prenosné konzoly atď. Atď.).

Táto architektúra má aj nízku spotrebu energie a charakteristiky rozptylu tepla, a preto sa používa pomerne efektívne v zariadeniach, ako sú smartphony a tabletové počítače.

Presné adresovanie zariadení nie je účelom tohto článku. Chcem len predstaviť potenciálnych moderov k základným princípom, ktoré poskytnú úplnejšie pochopenie toho, čo sa deje na ich zariadení.

Prejdeme teda priamo k popisu stiahnutia tohto typu zariadenia. Prakticky každý ARM procesor má zabudovanú flash pamäť do čipu, do ktorého je umiestnená tzv. downloader. Pri absencii takejto pamäte na čipe alebo jej nepoužívaní ako priestoru na lokalizáciu zavádzacieho zariadenia, čip zvyčajne odkazuje na spúšťanie tohto bootloaderu na NOR-flash na striktne definovanej adrese.

Existuje niekoľko downloaderov. Mnohé z nich sú komerčné. Existuje však open source bootloader, u-boot. Bohužiaľ, keď je kód otvorený, obsahuje kód závisiaci od procesora, takže bez špecifikácií procesora to nemôže byť jednoducho portovaný (prispôsobený) procesoru, ktorý nemá otvorenú dokumentáciu.

Teraz budeme popísať, čo bootloader zvyčajne robí po spustení. Spravodlivá analógia sa dá robiť s BIOSom počítačov založených na procesoroch x86 (s väčšinou ľudí). ARM nakladač pri spustení tiež vykonáva rovnakým spôsobom rad low-level inicializáciu hardvéru zariadenia (RAM, ukladanie dát, sieťový adaptér atď., Atď.). Po inicializácii sériového portu (zvyčajne vo formáte RS232, ale s 3,2 voltami) je možné s ním pracovať cez konzolu inicializovanú na tomto portu.

Vyzerá to takto

Prostredníctvom tejto konzoly môžete vykonávať takmer kompletnú konfiguráciu alebo rekonfiguráciu hardvéru. Napríklad, aby sme mohli načítať Linux, aspoň budeme musieť rekonfigurovať reťazec parametrov odovzdaných jadru pri zavádzaní (s predvoleným nastavením pre sťahovanie androidu). Tiež tu môžete plne pracovať s nand sekciami - vymazať, rozdeliť, upraviť, chrániť pred zápisom a naopak atď. atď. (aby sa predišlo ďalším otázkam o zmene úsekov nanda). Aj v konzole môžete prevziať a spustiť nejaký softvér. Všetky nastavenia vykonané v tejto konzole môžu byť uložené a použité ako predvolené nastavenia, keď sa zariadenie spustí.

Vytvárame malé odchýlky. Okrem NOR-blesku na lokalizáciu zavádzača môže byť v niektorých prípadoch použitá NAND-flash alebo SD karta. Okrem toho je možné v zariadení použiť kombinácie týchto typov flash pamäte. Napríklad, bootloader môže byť umiestnený v NOR, a ako vnútorná jednotka (pre umiestnenie OS) NAND alebo SD atď.

Takže sme zaradili kus železa. Zaviedla bootloader. Inicializovaný hardvér načítača. Na konci tejto inicializácie vykoná nakladač nasledujúci postup:

1 - čítanie a ukladanie do pamäte obrázka jadra a ramdisk - na striktne definovaných adresách (môže byť konfigurovaný na príkazovom riadku u-boot).

2 - spúšťanie jadra zo správneho vstupného bodu s uvedením, kde sa má získať externý ramdisk (initrd) z koreňového súborového systému a čo sa má použiť ako init.

Ďalšia časť pamäte RAM je priradená zariadeniam, ktoré vyžadujú ich pamäť, napríklad pre video jadro. Teraz rozpoznáte, kde je deklarovaná časť pamäte RAM zariadenia.

Ďalšie zavádzanie sa nijako nelíši od zavedenia systému Linux na bežný počítač. Po spustení jadro spustí zadaný init (to je len ďalší program). Konfigurácia init sa robí v súbore init.rc, ktorý sa nachádza v ramdisk. Nastavuje premenné prostredia, pripája diskové zariadenia, spúšťa potrebné služby atď. Atď. Na konci vykonávania pokynov pre inštalačný program init.rc sa spustí samotný Android. Typ spúšťania androidu je určený voľbou spustenia jadra androidboot. Štandardné spustenie androidu sa vykoná ako celok prechodom parametrov použitia požadovaného ramdisku (v ramdisk.img) a parametra androidboot.normal. Ak chcete spustiť režim obnovenia, spravidla sa použije ďalší ramdisk obsahujúci program obnovy (v súbore recovery.img) a parameter jadra androidboot.recovery.

Ako variácia linuxového jadra pre android, môže byť zostavená nie s podporou initrd (koreňový systém na ramdisku), ale s tzv. initramfs. V tomto prípade bude celý koreňový súborový systém umiestnený tesne vnútri jadra. V tomto prípade vyžaduje režim obnovenia spravidla druhé jadro s koreňovým súborovým systémom obsahujúcim program obnovy. Nastavenie zavádzacieho zariadenia sa jednoducho načíta a spúšťa jadro obnovy.

A ako výsledok, jednoduchá schéma:

Spustenie procesora -\u003e spustenie načítača -\u003e inicializácia žehličky -\u003e čítanie z jadra a ramdisk -\u003e spustenie jadra pomocou tohto ramdisk -\u003e spustenie init programu -\u003e spustenie samotného androidu.

Viac informácií o u-boot a jej príkazoch nájdete napríklad na tejto wiki _http: //www.denx.de/wiki/view/DULG/Manual.

Ak tieto informácie nestačí, môžete si prečítať ďalšie informácie o parametroch štartovania jadra systému Linux v dokumentácii / kernel-parameters.txt z archívu zdrojových kódov. Alebo nájsť tento súbor na internete pre verziu potrebného jadra. Nezabudnite však brať do úvahy špecifiká Androidu uvedeného vyššie.

Dobrý deň, Habr!

Pred niekoľkými rokmi, keď som prvýkrát spoznala Android, počul som od môjho spolupracovníka, že Android poskytuje možnosť inštalácie upraveného alebo vlastného firmvéru. Úprimne povedané, potom som bol ďaleko od toho. A pred pol rokom som sa o také veci takmer nezaujímala. Hlboko v sprche som si bola istá, že to, čo výrobca robil, bolo už určené na bežné používanie.

Aké bolo moje sklamanie, keď som si kúpil telefón z Číny, kde používanie služieb Google, Skype, Facebook a ďalších aplikácií bolo zakázané továrenskými nastaveniami. V zásade bolo možné zavrieť oči na niektoré veci, ale keď môj telefón neznamenal používanie účtu Google, urobil som sľub, že sa ubezpečil, že sa tak nestane.

Uplynulo pol roka a môj vlastný firmvér sa úspešne používal po celom svete.

Táto séria článkov bude diskutovať o tom, ako robiť reverzné programovanie pre Android, implementovať záplaty, vylepšenia a mody.

preambuly

  A tak! Najprv definujeme pojmy, ktoré sa budú používať toto  článok. Zvyčajné pochopenie môže byť však veľmi odlišné.

náplasť  - modifikácia alebo nahradenie existujúceho programového kódu za účelom úpravy programového algoritmu.
prehoz  - Spravidla pridávanie ďalších funkcií k existujúcemu programovému kódu bez zmeny algoritmu.
Tweek  - Zlepšenie funkčnosti programu s cieľom uľahčiť prístup k systémovým parametrom.

Chcem tiež poznamenať, že všetky príklady budú prijaté pre telefón HTC, ale to neznamená, že tieto informácie nemožno použiť na iných telefónoch.

Upozorňujem vás na skutočnosť, že ako autor nie som zodpovedný za prípadnú stratu údajov v telefóne v dôsledku použitia nižšie uvedených informácií.

Príprava prostredia

  Môžem to urobiť bez podrobných inštrukcií, ako používať tento alebo ten softvér. Ak máte záujem o tento článok a ste dokončili čítanie týchto riadkov, potom dúfam, že ste už skúsený používateľ a máte skúsenosti s používaním, dobre, alebo aspoň experimentovaním v tejto oblasti. Pokyny, články a výsledky testov sú však úplne k dispozícii, rovnako ako na Habré. Tiež to zvládnem bez popisu niektorých termínov, inak sa článok stane veľmi veľkým a zdĺhavým. Budeme písať iba v tomto prípade. Som si istý, že vaše prostredie stojí dlho. Ak nie, odporúčam stiahnuť a nainštalovať.

1 . Android SDK  , Toto je vývojové prostredie aplikácií pre systém Android. Aby sme vykonali zmeny, rozhodne budeme musieť skontrolovať náš programový kód. Rozvojové prostredie je to najlepšie, čo môžeme použiť.
2 . Kuchyňa Android  , Tento nástroj vám umožní pracovať s obrázkami systémových oddielov oficiálneho alebo neoficiálneho firmvéru.
3 . JD-GUI  , Kód jazyka Java decompiler. Bezprostredne si všimnem, že ide o najlepší dekompilátor z hľadiska jednoduchosti použitia.
4 . DJ Java Decompiler , Ďalší dekompilátor alebo disassembler, ako ho niektorí radi hovoria, je programovací kód Java. Nie je vhodné z hľadiska používania, ale analyzuje kód, ktorý niekedy nerozumie JD-GUI.
5 . smiali  , Ďalší disassembler, ale už dalvik kód. smali je potrebná pre demontáž a backsmali pre montážny kód.
6 . dex2jar  , Nástroj na konverziu spustiteľných súborov Dalvik kód.

Konverzia firmvéru

  Samozrejme, firmvér, ktorý máte v telefóne od výrobcu, je optimalizovaný, aby sa znížila spotreba energie. Aby ste mohli zmeniť firmvér, musí byť konvertovaný na formát, ktorý vám umožňuje zmeniť kód. Používa Android kuchyňu. Môžete samozrejme rukami, ako som urobil predtým, kým som našiel túto veľmi "kuchyňu". Ako vytiahnuť systémovú oblasť z telefónu, nastaviť prostredie, urobiť DEODEX firmware, môžete čítať na internete. Ak ešte nič nerozumiete, myslím, že by ste mali odložiť článok, kým nebudete mať dosť skúseností.

Po tom, čo firmware z optimalizovaného zobrazenia (ODEX - optimalizovaný spustiteľný kód Dalvik, ak mi pamäť nezmení) sa stal DEODEX (to znamená, že nie je optimalizovaný), všetky spustiteľné súbory sú pripravené na modifikáciu.

Priame úpravy

Vytváranie záplat
  Ako som už povedal, môj telefón spočiatku zakázal používanie služby Google. No, aspoň si praskla, nechodíš do Playstoru, nekonfiguruj svoj účet, telefónny zoznam sa naozaj nesynchronizuje. Prečo potrebujete takýto systém Android? Dlhé kopanie do protokolov (logcat) samotného zariadenia som našiel záznamy, ktoré hovoria, že používanie Google je zakázané. Najnepopulárnejšie v systéme Android, vidíte protokol, ale neviete, ktorá systémová aplikácia to produkuje. Aby som zistil, odkiaľ rastú nohy, musel som vyčarovať všetky systémové aplikácie na demontovaný kód Java. Trvalo to dosť času, ale stále pracujem na analýze a hľadaní potrebného kódu. Kroky na získanie tohto nástroja sú nasledovné:
1 , Vytvorte deodex všetok firmvér
2 , Váš nový firmvér DEODEX bude musieť byť namontovaný a zasunutý do vášho telefónu. Ako sa to robí, je téma iného článku.
3 , Z každého súboru umiestneného v systéme / system / framework vytiahnite súbor classes.dex a preveďte ho na JAR pomocou dex2jar.
4 , Otvorte každú JAR v JD-GUI a znovu uložte zdrojový kód
5 , Rozbaľte zdrojový kód z archívu.

V dôsledku toho som dostal toľko priečinkov ako sú súbory JAR v / system / framework a každá zložka mala štruktúru zdrojových kódov Java.
  Jednoduchými manipuláciami som rýchlo našiel miesto, ktoré vytvorilo položky logcatu.

Nepovažujeme celú logiku zákazu, pretože pre každý prípad je to samostatný príbeh. Musel som stráviť pár hodín predtým, než som zistil, kde sa vykonáva kontrola, stavať blokovú schému v hlave a zistiť, kam ísť, aby sa algoritmus trochu "pokazil".

Ukázalo sa to všetko jednoduché. Existuje podprogram, ktorý na základe vopred určených konštánt odpovedal na výzvu, keď príde na to, či telefón patrí do Číny, alebo nie.

Kód bol v súbore HTCExtension.jara trieda, ktorá obsahovala tento podprogram bola v

Vybalenie a analýza pôvodného súboru
1 , Najprv musíme prevziať originálny súbor DEODEX JAR, ktorý je zodpovedný za časť kódu, ktorú potrebujeme. V našom prípade HTCExtension.jar.
2 , Otvorte s ľubovoľným archivátorom a odtiaľ odtiahnite classes.dex
3 , Pomocou konvertora dex2jar konvertujte ho na súbor JAR. Tím: dex2jar.bat classes.dex
4 , Zobrazte výsledný súbor classes_dex2jar.jar v JD-GUI.
5 , Áno, najčastejšie JD-GUI dekompiluje kód nie tak, ako to vyzerá v origináli, je pochopiteľné, ale je celkom možné čítať. V zdrojovom kóde vidíme, že podprogram kontroluje parametre projektu a vlajkovú vlajku firmvéru. V našom nešťastnom prípade je návratová hodnota TRUE.
  public static boolean isChina () (ak je ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)), zatiaľ čo (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) vrátiť true; return false;)
6 , Ak chcete vytvoriť opravu, musíme samozrejme rozobrať samotný kód Dalvik. Za to používame baksmali. Najpohodlnejšou cestou je vytvoriť samostatnú zložku a dať tu spolu tri súbory: HTCExtension.jar, smali.jar  a baksmali.jar, Zadajte príkaz java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

Toto je rozhranie API verzie pre systém Android. Pre JB je 16
   - priečinok, kde sú umiestnené všetky rámce firmvéru.

V mojom prípade to bol tím.
  java -Xmx512m -jar baksmali.jar -a 16 -d S: \\ dev \\ Android \\ Android-Kuchyňa \\ WORKING_JB_15 \\ system \\ frame -o HTCExtension -x HTCExtension.jar
7 , V našom novo vytvorenom priečinku bola zložka HTCExtension a v ňom sú naše súbory s kódom Dalvik.
8 , Hľadáme súbor na ceste \\ com \\ htc \\ util \\ contacts \\ BuildUtils $ Prispôsobenie.java  a pozrite sa na kód:
.method verejné statické isChina () Z .registers 3 .prologue konst / 4 v0, 0x1 .line 276 sget krátku v1, lcome / HTC / htcjavaflag / HtcBuildFlag, -\u003e Htc_PROJECT_flag: S konst / 16 v2, 0xd8 ak ekvivalentu v1 , v2,: cond_13 sget krátku v1, lcome / HTC / htcjavaflag / HtcBuildFlag, -\u003e Htc_PROJECT_flag: S konst / 16 v2, 0xda ak ekvivalentu v1, v2,: cond_13 sget krátku v1, lcome / HTC / htcjavaflag / HtcBuildFlag , -\u003e Htc_PROJECT_flag: S konst / 16 v2, 0x17, či-NE v1, v2,: cond_14 .line 297: cond_13: goto_13 vrátiť V0 .line 283: cond_14 sget krátku v1, lcome / HTC / htcjavaflag / HtcBuildFlag, -\u003e Htc_PROJECT_flag: S-li-ne v1, v0,: cond_1d .line 285 konst / 4 v1, 0x2 sget krátku v2 lcome / HTC / htcjavaflag / HtcBuildFlag, -\u003e Htc_LANGUAGE_flag: S v prípade ekvivalente v1, v2,: cond_13 .line 291: cond_1d sget krátku v1, lcome / HTC / htcjavaflag / HtcBuildFlag, -\u003e Htc_PROJECT_flag: S konst / 16 v2, 0x1b ak ekvivalentu v1, v2,: cond_13 .line 297 konst / 4 v0, 0x0 Menu: goto_13 .end metóda
9 , Strašidelný, nie? Nič nie je jasné. Ale toto je fixovateľná záležitosť. Po vytvorení niekoľkých vašich záplat a tým, že ste tak vyplnili svoju ruku, môžete ľahko upraviť kód bez nástrojov tretích strán. V našom prípade v tomto kóde
  .prologue const / 4 v0, 0x1 priradí premennej v0 hodnotu 1, to znamená TRUE. Potom existujú všetky druhy šekov a ak telefón nie je čínsky, potom sa hodnota premennej zmení:
  riadok 297 konšt / 4 v0, 0x0 goto: goto_13
10 , Najjednoduchším spôsobom ako zachrániť otca ruskej demokracie je zmeniť kód na nasledovné:
  .prologue const / 4 v0, 0x0, to znamená zmeniť hodnotu premennej z 1 na 0. To znamená, že bez ohľadu na to, že nie vždy vráti FALSE a JD-GUI kód ​​vyzerať public static boolean isChina () (if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)), zatiaľ čo (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) vrátiť falošný, vrátiť nepravdivý;)
11 , Áno, metóda bude fungovať. Ale nehľadáme jednoduché spôsoby - to je čas. Po druhé, nie celkom krásna. Chcem kód niečo ako
  verejný statický boolean isChina () (return false;)
12 , A ako získame Dalvikov kód pre tento zdrojový kód? Pre začiatočníkov urobíme trochu trik.

Vytváranie kódu Dalvik
1 , Otvorte súpravu Android SDK.
2 , Vytvorte nový projekt a v našej jedinej testovacej triede napíšeme nasledujúci kód
  balíček ru.habrahabr.test; test verejnej triedy (public static boolean isChina () (return false;))
3 , Kompilujeme náš projekt a potom odoberáme zostavené aplikácie z pracovného priestoru.
4 , Dajú sme zhromaždenú aplikáciu do priečinka, kde sme vyčistili súbor JAR.
5 , Zadajte príkaz java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 , Rozložili sme aplikáciu, ktorú sme práve zostavili, do kódu Dalvik.
7 , Otvorte súbor test.smali a pozrite si tam kód
  . metóda public static isChina () Z .registers 1 .prologue .line 7 const / 4 v0, 0x0 return v0 .end metóda
8 , Všetko, kód na opravu je pripravený.
Rolovanie náplasti
1 , Dalvik kód je posiate markermi označujúcimi riadok kódu v pôvodnom zdrojovom súbore. Je to nevyhnutné, ak sa vo vašom programe zobrazujú chyby, ak nejaké existujú. Bez reťazcov kód funguje skvele.
2 , Odstráňte riadky s číslovaním riadkov, kopírujte a nahraďte metódu (podprogram) v našom \\ com \\ htc \\ util \\ contacts \\ BuildUtils $ Prispôsobenie.java  súboru.
  . metóda public static isChina () Z .registers 1 .prologue const / 4 v0, 0x0 return v0 .end metóda
3 , Uložte súbor. Áno, zabudol som povedať, že editor potrebuje normálny editor, napríklad Notepad ++ alebo EditPlus. Kto má rád čo.
Zostavovanie a vytváranie záplaty súboru JAR
1 , Pomocou backsmali sme vyprázdnili náš súbor JAR a teraz ho musíme postaviť späť.
2 , Zadajte príkaz java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 , Súbor classes.dex sa zobrazí v našom tátovi
4 , Otvorte znova HTCExtension.jar  súbor s archivátorom a nahraďte existujúci classes.dex  na naše novo vytvorené.
5 , Všetci naši HTCExtension.jar  obsahuje upravený programový kód.
Nahradenie pôvodného súboru za opravený
  Obvykle sú pre bežných používateľov vytvorené špeciálne skripty, ktoré sú nahradené obnovou. Ale nemáme záujem. Po prvé, dlhé a nudné, za druhé, sme skúsení používatelia a môžu si dovoliť nejaké jemnosti.

1 , Aktuálny pracovný súbor môžete nahradiť nasledujúcimi príkazmi, ak už máte firmvér DEODEX a máte root prístup:

Adb stlačiť HTCExtension.jar /sdcard/HTCExtension.jar adb shell-mount -o remount -rw / system dd if = / system / framework / HTCExtension.jar z = / system / framework / HTCExtension.jar.back dd if = / sdcard /HTCExtension.jar z / / system / framework / HTCExtension.jar Chmod 644 /system/framework/HTCExtension.jar rm / data / dalvik-cache / [chránený emailom]@[chránený emailom]  reštart

Prvý tím odovzdáva zapamätaný súbor na jednotku USB flash.
  Druhý príkaz otvorí shell
  Prvý príkaz dáva prístup root
  Štvrtý príkaz montuje systém do režimu čítania / zápisu
  Tím 5 vytvorí záložný súbor
  6. príkaz prepíše existujúci súbor s novým patched.
  7. tím nastaví povolenia
8. príkaz vymaže cache
  Tím 9 reštartuje zariadenie.

2 , Ďakujem vám za prečítanie tohto bodu, zostáva to trochu.
3 , Po reštarte sa nový kód obnoví.
4 , Ak kód nefunguje, alebo sa objaví chyba, potom zálohami môžete zálohovať zálohami.
  adb shell-mount -o remount -rw / system dd if = / system / framework / HTCExtension.jar.back of = / systém / framework / HTCExtension.jar rm / data / dalvik-cache / [chránený emailom]@[chránený emailom]  reštart

epilóg

  Áno, tento článok sa zdal niekomu príliš špecifický, pre niekoho trochu jasného a pre niekoho k ničomu. Úsilím som bez podrobných podrobností a ilustrácií, ako to všetko vyzerá naživo a v praxi. Po prvé, táto práca bude nevďačná a len vyvoláva ďalšie otázky. Po druhé, nechcem vidieť armádu používateľov na fórach, ktoré si sťažujú, že zabili svoj telefón.

V ďalšom článku vám poviem, ako robiť tviki. Bude príkladom použitia automatického zaznamenávania telefónnych hovorov prirodzenými prostriedkami telefónu. Ďakujem vám za pozornosť.

PS: Ak niečo nie je jasné alebo mätúce, opýtajte sa otázok - budem vždy spokojný s odpoveďou a vysvetlením.

Vytvorenie vlastného firmvéru pre Android nie je jednoduché, preto potrebujete špeciálny softvér a určité zručnosti, ako aj algoritmus akcií, ktoré popisujeme v tomto článku.

Zvážme konkrétny prípad a začneme v poriadku. Ak chcete vytvoriť vlastný firmvér, Android bude potrebovať:

  1. Je nainštalovaný osobný alebo prenosný počítač s nainštalovaným operačným systémom Ubuntu a Java.
  2. "Kuchyňa" - aplikácia na spracovanie obrazov systémových oddielov.
  3. Vlastne firmware Android sa má spracovať.

Krok 1 - Nainštalujte si Ubuntu

Systém Ubuntu je založený na jadre Linuxu a je založený na Debiane, vyvinutom firmou Canonical. Nie je potrebné inštalovať tento systém namiesto aktuálneho, spustiť ho cez emulátor atď.


Aby ste mohli pohodlne využívať všetky svoje výhody, stačí použiť aplikáciu Wubi, ktorá môže nainštalovať Ubuntu pod Windows. Wubi - skrat z inštalátora systému Windows Ubuntu.

Po prevzatí inštalačného programu a inštalácii nového operačného systému po jeho zavedení do počítača môžete prejsť do jedného alebo iného systému, ktorý si môžete vybrať a spravovať cez ovládací panel systému Windows.

Krok 2 - Inštalácia Java

Java je programovací jazyk vyvinutý v roku 1995, jeho meno sa zdá byť prevzaté z filmov (smiešne ľudová Java z hviezdnych vojen).

Táto technológia je založená na najmodernejšom softvéri rôznych typov. Niektoré stránky fungujú iba s integrovaným počítačom Java.


Ak ho chcete nainštalovať, potrebujete:

  1. Prihláste sa do systému Ubuntu a otvorte terminál pomocou klávesov Ctrl + Alt + T.
  2. Pomocou príkazu sudo add-apt-repository "deb http://archive.canonical.com/ubuntu lucid partner" otvorte nové úložisko, z ktorého si môžete stiahnuť Java. Aby ste to dosiahli, je potrebné zadať heslo na získanie práv Super-Admin, ktoré sa nastavia počas inštalácie Ubuntu. Ďalej je potrebné použiť nasledujúce príkazy:
  3. sudo apt-get update na aktualizáciu zdrojového zoznamu.
  4. sudo apt-get nainštaluj slnko-java6-jre slnko java6-plugin sun-java6-fonty pre inštaláciu Java.

Krok 3 - pracujte s "kuchyňou" na vytvorenie firmvéru

Program "kuchyňa" je hlavným nástrojom pre prácu s firmvérom Android. Existuje niekoľko typov, zvážime prácu s kuchyňou od spoločnosti Dsixda.


  • Po stiahnutí potrebných súborov ich musíte rozbaliť do domovskej zložky v adresári kuchyne.
  • Spustite terminál pomocou príkazu Is, aby ste zobrazili zoznam dokumentov vo vašom domovskom priečinku. Adresáre budú označené modrou farbou, archívnymi súbormi v červenej farbe atď.
  • Otvorte priečinok Kuchyňa a preneste spracovaný súbor firmvéru v ľubovoľnom formáte do adresára original_update.
  • Vráťte sa do Terminálu pomocou otvoreného priečinka Kuchyňa a zadajte príkaz Is. Medzi súbormi sa zobrazí ponuka, mala by sa spustiť pomocou príkazu ./Ponuka. Otvorí sa zoznam číslovaných príkazov, ktoré môžete vykonať zadaním ich čísla na riadok a stlačením klávesu Enter.
  • Ak chcete firmvér rozobrať, zadajte príkaz 1. Kuchyňa potom začne zobrazovať veľa otázok, ktoré je potrebné odpovedať klávesom Enter (požadované hodnoty sú predvolene zadané).

Tieto akcie povedú k úvodnej ponuke programu. Pri návrate do priečinka Kuchyňa nájdete priečinok WORKING_x_y, kde x a y sú dátum a čas, kedy bol vytvorený.

Bude obsahovať demontované súbory firmvéru. V priečinku Systém nájdete všetky systémové súbory. časti týchto súborov zmenia firmvér.

Zmenou množiny základných aplikácií, funkcií, nastavení a vykonaním všetkých požadovaných zmien v súboroch firmvéru je potrebné ich zhromaždiť.

Ak to chcete urobiť, vráťte sa späť na Terminal, zadajte príkaz 99 a odpovedzte na otázky pomocou klávesu Enter znova. Potom program spustí používateľa do počiatočnej ponuky a priečinok OUTPUT_ZIP bude obsahovať nový súbor firmvéru, ktorý môže byť nainštalovaný na mobilnom zariadení.

Existujú ďalšie spôsoby, ako vytvoriť vlastný vlastný firmvér android a potrebné programy na to možno nájsť v sieti, umožňujú vám "otvoriť" súbory operačného systému a zmeniť niektoré parametre podľa želania.

Tu je niekoľko programov navrhnutých pre toto:

  • Android SDK je vývojové prostredie vytvorené špeciálne pre prácu s aplikáciami pre Android, umožňuje vám skontrolovať programový kód.
  • Kuchyňa s Androidom - potrebná na spracovanie obrázkov systémových oddielov vo firmvéri.
  • JD-GUI je dekompilátor schopný pracovať s programovacím jazykom Java. Jeho náprotivkom je DJ Decompiler DJ.
  • smali - pracovať s dalvikovským kódom. Navrhnutý na rozobranie kódu, backsmali umožňuje zostaviť dalvik kód.
  • dex2jar je nástroj, ktorý vám umožňuje konvertovať spustiteľné súbory zostavené na dalvikovom kóde.

Každý používateľ systému Android má vlastnú predstavu o tom, ako by mal vyzerať operačný systém, aké funkcie by sa mali vykonávať a aký súbor softvéru by mal byť v predvolenom nastavení nainštalovaný. Avšak, nie každý vie, že vytvorenie vlastného firmvéru nie je tak ťažké. Aby ste to mohli urobiť, nie je potrebné pochopiť jadro Linuxu, aby ste mohli kompilovať zdroje Android alebo pochopiť, ako funguje smartphone.

úvod

Existujú tri spôsoby, ako vytvoriť vlastný firmvér pre komunikátor Android: 1. Dokončiť a kompilovať operačný systém zo zdrojov publikovaných spoločnosťou Google alebo tímu CyanogenMod. 2. Úprava firmware zásobníka komunikátora. 3. Úprava firmvéru tretej strany vytvorenej pomocou prvej alebo druhej metódy.

Prvá metóda je najpravdepodobnejšia a najpriaznivejšia, ale často si vyžaduje dostatočne hlboké vedomosti o funkciách Androidu a schopnosti editovať zdrojový systém, aby potom pracoval na zariadení. Táto téma je mimo rozsahu nášho článku, takže nebudeme zvážiť zostavenie zdrojov Android, ale budeme sa zaoberať dvoma spôsobmi, konkrétne na tretí.

Firmvér tretej strany (tzv. Mody) existuje takmer pre každé zariadenie s Androidom, od okamihu jeho vstupu na trh uplynul aspoň týždeň. Zvyčajne už obsahujú všetky potrebné úpravy potrebné pre správnu prevádzku firmvéru na komunikátore a preto predstavujú vynikajúcu platformu na experimentovanie so systémom. Môžu byť modifikované takmer bez uznania, obsahovať akýkoľvek softvér v systéme OS, zmeniť jeho vzhľad, vytvoriť množstvo nastavení na nízkej úrovni pomocou jednoduchého textového editora a správcu súborov. Tieto akcie nevyžadujú hlbokú znalosť OS a môžu byť vykonávané každým čitateľom časopisu.

Vybrali sme experimentálne

Predpokladajme, že náš komunikátor je už zaznamenaný a konzola na obnovenie programu ClockworkMod je zaznamenaná v oblasti zavádzania, čo vám umožňuje bez obmedzenia nainštalovať akýkoľvek firmvér do zariadenia (napísali sme, ako to urobiť v článku "Celkové podanie", publikované v októbrovom čísle] [] ). Teraz chceme do zariadenia nainštalovať ďalší firmvér, ale v žiadnom prípade to, ale s vlastnými úpravami, nastaveniami a softvérom. Preto potrebujeme rámec, konkrétne firmvéru niekoho iného, ​​stabilne pracujúcu na našom zariadení. Kde sa dostať?

Hlavným biotopom všetkých romodelov je samozrejme fórum xda-developers.com. Tam nájdete všetko pre komunikátorov so systémom iOS, Windows Mobile, Windows Phone a Android. Otvorte stránku v prehliadači, kliknite na sekciu Fóra a vyhľadajte komunikátora v zoznamoch fór. Ďalej prejdite na príslušnú časť vývoja systému Android a starostlivo si prezrite zoznam tém obsahujúcich slovo "" v názve. Je lepšie nájsť nejaký čistý firmvér s názvom "Pure Android 2.3 Rom" alebo port CyanogenMod, hoci v skutočnosti to bude robiť iný (aj keď môže byť potrebné zrušiť zmeny autora). Otvárame tému, vyprázdníme prvý príspevok, nachádzame sa niekde na konci odkazu na stiahnutie a prevzatie ROM do vášho počítača.

Teraz musíte otvoriť súbor firmvéru. Toto sa robí pomocou najbežnejšieho rozbaľovacieho programu:

   $ mkdir ~ / rom; cd ~ / rom $ unzip ../path/up/proshivki.zip

Všeobecná štruktúra adresárov a dôležité súbory

Sada súborov a adresárov vyplývajúcich z vykonania predchádzajúceho príkazu je v podstate operačný systém Android a presne tak, ako bude umiestnená v pamäti NAND zariadenia. V závislosti od verzie Androidu a autorovej fantázie môže obsahovať rôzne súbory adresárov a súborov, ale vždy obsahuje tri povinné objekty: META-INF, súbor boot.img a systémový adresár.

Prvý adresár obsahuje meta informácie o firmvéri, vrátane autorských súborov s certifikátmi, zoznam so súbormi súborov a ich kontrolných súčtov, ako aj aktualizačný skript, ktorý dokáže vytvoriť nové súbory v pamäti NAND, zmeniť prístupové práva a zobraziť lištu pokroku, ktorú používatelia vidia počas nainštalujte firmvér.

Súbor boot.img obsahuje bootovací obrázok, ktorý obsahuje jadro Linuxu a obrázok initrd. Môže byť rozbalený, ale pre nás nemá žiadny osobitný prínos, pretože takmer všetky parametre systému je možné meniť pomocou konfiguračných súborov a súborového systému / proc. Ak potrebujete jadro zostavené so špeciálnymi parametrami, napríklad s aktivovaným plánovačom BFS alebo podporou NFS, takmer určite ho môžete nájsť na rovnakom vývojárstve xda a bleskom s aplikáciou ClockworkMod.



Napokon, systémový adresár je to, o čom to bolo všetko. Obsahom tohto adresára je operačný systém Android bez jadra Linuxu. Obsahuje všetko, čo je potrebné pre fungovanie operačného systému, a preto je jednoducho potrebné poznať jeho štruktúru. Vyzerá to takto:

  • aplikácie  - predinštalované aplikácie: telefón, kalkulačka, kalendár atď.
  • popolnice  je analóg adresárov / bin a / usr / bin na systéme Linux. Obsahuje rôzne komponenty systému, ktoré používajú komponenty systému na vyššej úrovni. Napríklad je to miesto, kde sa nachádza virtuálny stroj dalvikvm.
  • etc  - súbory nastavení. Plné ekvivalenty / etc v Linuxe, ktoré však používajú iba komponenty systému. Nastavenia ukladania aplikácií Android v adresári / data / data.
  • fonty  písma. Predvolené obsahuje iba písma značky Droid (alebo Roboto v systéme Android 4.0).
  • rámec  - sady tried Java, ktoré systém používa a softvér Android. K dispozícii je tiež rámcový súbor res.apk obsahujúci úplný popis rozhrania operačného systému vrátane všetkých grafických súborov.
  • lib - Linuxové knižnice, ktoré používajú komponenty systému nízkej úrovne. Analógové adresáre / lib a / usr / lib v Linuxe obsahujú štandardné knižnice, ako napríklad libc (ale Android používa vlastné Bionic namiesto Glibc), libz (gzip encryption), libssl a ďalšie.
  • médiá  - multimediálne súbory: zvonenia, upozornenia, zvuky rozhrania a animácie súborov spúšťania operačného systému.
  • tts  - Súbory vyžadované pre syntetizátor reči.
  • usr  - voliteľný adresár, ktorý zvyčajne obsahuje súbory potrebné pre softin z adresára bin. V skutočnosti je analóg / usr / podiel.
  • predajca  - súbory dodané výrobcom prístroja. Zvyčajne obsahuje binárny firmvér pre rôzne "železné" komponenty, ako napríklad modul Wi-Fi.
  • xbin  - voliteľný adresár, ktorý obsahuje všetko, čo nie je súčasťou zásobníka. Zvyčajne sa používa na ukladanie užitočných nástrojov, napriek tomu voliteľné pre prevádzku systému (top, textový editor). CyanogenMod ho používa na ukladanie administratívnych nástrojov: bash, ssh, powertop, busybox atď.
  • build.prop  - súbor obsahujúci informácie o zostave, ako aj rôzne nastavenia na nižšej úrovni.

Príkaz setprop

Nastavenie build.prop v článku sa môže použiť na už spustený systém pomocou príkazu setprop:

   # setprop debug.sf.nobootanimation 1

Vlastný softvérový balík

Adresár / systém / aplikácia obsahuje všetok softvér predinštalovaný vo firmvéri. Odstránením a pridávaním balíkov do tohto adresára môžeme zmeniť súbor aplikácií dostupných mimo rámčeku. Napríklad nie je pre nikoho tajomstvo, že štandardný obed Android (a ADWLauncher v CyanogenMod) spomaľuje a má mnoho nevýhod. OK, nahraďte ho programom LauncherPro:

   $ rm systém / app / Launcher.apk $ wget goo.gl/U9c54 -o systém / app / LauncherPro.apk

A to je všetko. Nie je potrebné inštalovať nič, nie je potrebné hádzať kdekoľvek, len vrhnite potrebnú aplikáciu do adresára - a ste hotoví. Dokonca ani meno nezáleží, samotný systém Android nájde požadovanú aplikáciu a nainštaluje ju ako domácu obrazovku. Rovnakým spôsobom môžete do firmvéru vložiť aj iný program alebo ho odstrániť.

Je užitočné vložiť do firmvéru jednu z aplikácií na vyhľadanie strateného smartphonu (napríklad korisť), potom aj v prípade obnovenia továrenských nastavení zostane v systéme OS a bude fungovať. Môžete tiež nahradiť niektorý systémový softvér, napríklad pridať Dialer One namiesto štandardného Phone.apk alebo Go SMS namiesto sms.apk.

A čo systémové aplikácie Linux, ako napríklad ssh server alebo mc? Aj tu je všetko jednoduché. Môžete vytvoriť softvér pre Android a ARM procesor pomocou súpravy Google NDK, ale väčšina potrebných aplikácií už bola zostavená pred nami. Napríklad chceme predinštalovať MC do nášho firmvéru. Prejdite na xda-vývojárov a vyhľadajte Midnight Commander. Na prvej stránke nájdete apk-package s inštalačným programom a rozbalíme ho pomocou rovnakého rozbaľovacieho programu:

   $ cd / tmp; unzip ~ / NativnuxInstaller_1.1.apk

Vidíme v zozname rozbalených súborov aktíva / kity / mc-4.7.5.4-arm.tar.jet. Toto je archív tar.gz, ktorý je po inštalácii balíka apk (alebo skôr po inštalácii aplikácie apk, spustením aplikácie a kliknutím na tlačidlo Inštalovať) rozbalený do koreňového adresára systému. Môžeme ho okamžite rozbaliť do nášho firmvéru a získať vopred nainštalovanú mc:

   $ cd ~ / rom $ tar -xzf /tmp/assets/kits/mc-4.7.5.4-arm.tar.jet

Teraz, aby ste spustili správcu súborov v zariadení, jednoducho otvorte terminál a zadajte mc. Ostatné aplikácie môžu byť distribuované v zip archívoch pre firmvér pomocou nástroja ClockworkMod Recovery. Uvedenie do vášho modu je ešte jednoduchšie, urobte to, choďte do koreňového adresára firmvéru (v tomto prípade ~ / rom) a rozbaľte archív pomocou rozbaľovania.



vzhľadu

Vlastný firmvér sa najčastejšie vytvára, aby zmenil vzhľad systému Android podľa vašich predstáv. Ak to chcete urobiť v systéme Android, opäť je to veľmi jednoduché. Všetky nastavenia GUI systému Android sa ukladajú do súboru framework / framework-res.apk. Môže byť rozbalené pomocou nástroja apktool:

   $ cd ~; wget goo.gl/hxz5l $ tar -xjf apktool1.4.1.tar.bz2 $ cd ~ / rom / systém / rámec $ java -jar ~ / apktool.jar d framework-res.apk

V dôsledku toho by sa v aktuálnom adresári mal objaviť adresár framework-res obsahujúci všetky súbory balíkov. Najzaujímavejšie podadresáre v ňom sú res / drawable- * a res / layout- *. Prvý obsahuje všetky grafické prvky vo forme súborov png pre rôzne rozlíšenia a pozície obrazovky. Napríklad tažiteľný pozemok-mdpi je adresár s grafickými prostriedkami pre obrazovky so stredným rozlíšením, ktoré sú v horizontálnej polohe (keď sa obrazovka otáča, operačný systém sa prepne na iné súbory). Samozrejme, ľubovoľný súbor môže byť upravený alebo nahradený iným.



Adresáre rozloženia obsahujú popisy grafických prvkov vo formáte XML (v skutočnosti sú uložené v binárnom formáte AXML, ale apktool ich konvertoval na obyčajný XML). Formát popisu je pomerne jednoduchý a jednoduchý, ale je ťažké sa s ním vyrovnať, najmä ak neviete, kde je všetko. Preto sa opäť obrátime na služby obyvateľov fóra xda-vývojárov, ktorí sa už podarili prísť s mnohými rôznymi úpravami pre grafické rozhranie Android. Ľahko sa nachádzajú pomocou požiadavky vyhľadávania "framework-res mod device_name".

Zvyčajne sa takéto mody distribuujú ako hotový rámcový súbor res.apk, ktorý môžete jednoducho vložiť do firmvéru. Ak chcete nájsť konkrétne rozdiely v obsahu, mod môže byť rozbalený a porovnaný s vašim framework-res pomocou diff:

   $ diff -R ~ / framework-res \\ ~ / rom / systém / framework / framework-res

Bohužiaľ, v rámci jedného článku nemôžeme zvážiť aspoň časť vnútornej štruktúry rámca-res, takže pre viac informácií, pozri príslušnú tému fóra w3bsit3-dns.com.

Po vykonaní úprav môžete vytvoriť framework-res.apk pomocou rovnakého apktool. Táto operácia však vyžaduje nástroj aapt z Android SDK, ktorý apktool používa pre konečné balenie súboru apk. Je možné ho získať samostatne:

   $ cd ~ / bin; wget goo.gl/tC7k8

Teraz môžete súbor zhromaždiť:

   $ cd ~ / rom / systém / rámec $ java -jar ~ / apktool.jar b rámec-res $ cp framwork-res / dist / framework-res.apk. $ rm -rf rámec-res

Ďalším krokom je zmena animácie načítania. Ukladá sa ako bežné súbory png zabalené do archívu system / media / bootanimation.zip. Rozbaľte ho:

   $ cd / tmp $ mkdir bootanimácia; cd bootanimation $ unzip ~ / rom / systém / media / bootanimation.zip

Vnútri je súbor desc.txt, ktorý popisuje animáciu v nasledujúcom formáte:

Šírka Výška FPS p Objednávka Pozastaviť katalóg ...

Štandardný pohľad na tento súbor je:

480 800 30 p 1 0 časť0 p 0 0 časť1

Znamená to, že obrázok má veľkosť 480 x 800 a rýchlosť zmeny obrazu (FPS) je 30 ks / s. Nasleduje opis prvej časti animácie, ktorej súbory sú v adresári part0. Prehráva sa raz (číslo 1 po p). Ďalšia časť (časť 1) sa prehráva nekonečne niekoľkokrát, kým sa zariadenie nespustí. Zvyčajne adresár part0 obsahuje obrázky zodpovedajúce prvej časti animácie a part0 obsahuje všetky ostatné obrázky, ktoré sa prehrávajú v slučke. Samotné obrázky by mali mať rovnakú veľkosť a ich mená by mali obsahovať čísla vo vzostupnom poradí, napríklad 0001.png, 0002.png atď.

Vzhľadom k tomu, animácia sťahovania má veľmi jednoduchý formát, je to dosť ľahké. Stačí stať konverziu videa na png-images pomocou mencoder (v desc.txt musíte nastaviť hodnotu FPS 24):

   $ mplayer -nosound -vo png: z = 9 video.avi

Ale bude to zbytočné. Účastníci fóra xda-vývojári urobili toľko animácií, že potreba pracovať s rukami už nie je potrebná. Odkazy na zaujímavé animácie sú uvedené na konci článku.

Nastavenia na nízkej úrovni

Posledná vec, o ktorej by som chcela hovoriť v článku, je úprava nastavení na nižšej úrovni. V systéme Android existuje súbor system / build.prop, ktorý ukladá informácie o zostavení a nastaveniach firmvéru pre konkrétne zariadenia. Pridaním riadkov do tohto súboru môžete zmeniť fungovanie systému Android, urýchliť jeho prácu alebo znížiť spotrebu batérie. Nižšie sú najzaujímavejšie nastavenia.



  1. Zabráňte vylúčeniu pracovnej plochy z pamäte: ro.HOME_APP_ADJ = 1

    Táto možnosť vám umožní pohodlnejšie pracovať so zariadením vďaka okamžitému prístupu na pracovnú plochu. Neodporúča sa pre zariadenia s nízkou pamäťou.

  2. Zlepšenie kvality uložených súborov JPG: ro.media.enc.jpeg.quality = 100

    Umožňuje vám dosiahnuť jasnejšie zábery fotoaparátu, ale výrazne zvyšuje zaťaženie procesora.

  3. Vypnite animáciu zavádzania, aby ste urýchlili načítanie operačného systému: debug.sf.nobootanimation = 1
  4. Umiestnenie časti práce na kreslení rozhrania na GPU: debug.sf.hw = 1

    Umožňuje rýchlejšie a hladšie rozhranie.

  5. Blokovanie upozornenia na aktívny režim ladenia (pri pripojení k počítaču pomocou rozhrania USB): persist.adb.notify = 0
  6. Odstránenie problému s výskytom čiernej obrazovky po ukončení hovoru: ro.lge.proximity.delay = 25 mot.proximity.delay = 25
  7. Zapnutie ovládacích tlačidiel podsvietenia ihneď po zapnutí obrazovky: ro.mot.buttonlight.timeout = 0

Okrem toho mnohí používatelia tiež odporúčajú používať nasledujúce kombinácie príznakov:

  1. Zníženie času odozvy dotykovej obrazovky: debug.performance.tuning = 1 video.accelerate.hw = 1 windowsmgr.max_events_per_sec = 150
  2. Zvýšenie životnosti batérie: wifi.supplicant_scan_interval = 180 pm.sleep_mode = 1 ro.ril.disable.power.collapse = 0
  3. Vylepšenia modulov 3G: ro.ril.hsxpa = 2 ro.ril.gprsclass = 10 ro.ril.hep = 1 ro.ril.enable.dtm = 1 ro.ril.hsdpa.category = 10 ro.ril.enable. a53 = 1 ro.ril.enable.3g.prefix = 1 ro.ril.htcmaskw1.bitmask = 4294967295 ro.ril.htcmaskw1 = 14449 ro.ril.hsupa.category = 5
  4. Zlepšenie výkonu siete: net.tcp.buffersize.default = 4096,87380,256960,4096,16384,256960 net.tcp.buffersize.wifi = 4096,87380,256960,4096,16384,256960 net.tcp.buffersize.umts = 4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs = 4096,87380,256960,4096,16384,256960 net.tcp.buffersize.edge = 4096,87380,256960,4096,16384,256960

Všetky tieto riadky musia jednoducho vložiť do súborového systému / build.prop a uložiť.

zhromaždenia

OK, vykonali sme potrebné zmeny, vykonali sme naše aplikácie, vylepšili sme systém a teraz musíme vytvoriť obrázok OS pripravený na firmvér. Tento nástroj nám pomôže pri testovaní. Najskôr by ste mali zabaliť firmware so zipsom:

   $ cd ~ / rom; zip -r my-rom.zip *

Teraz musíte podpísať archív, aby ho mohla obnoviť:

   $ wget goo.gl/OyBBk $ java -classpath testsign.jar testovanie \\ my-rom.zip my-rom-signed.zip

Potom nahrajeme archív my-rom-signed.zip na pamäťovú kartu zariadenia a zariadenie vypneme. Ak chcete získať obnovenie, zapneme zariadenie stlačením tlačidla zníženia hlasitosti (pre niektoré zariadenia sa postup môže líšiť).

Teraz prejdite na položku "Install zip from sdcard" a potom v časti "Choose zip from sdcard", nájdite my-rom-sign.zip na SD karte a vyberte Yes. Po dokončení inštalácie zvoľte "Reštartujte systém teraz".

zistenie

Android je flexibilná platforma a v tomto článku nie sú opísané všetky možnosti jeho modifikácie. Hlbšia modifikácia môže zahŕňať nahradenie jadra, zmenu uzamknutej obrazovky a štandardných aplikácií, aktiváciu funkcií, ako je napríklad automatická inštalácia aplikácií na pamäťovú kartu, zavedenie spúšťacieho skriptového motora (/etc/init.d) a oveľa viac. O všetkých to budeme hovoriť v nasledujúcich článkoch.

Pokračovanie v téme:
jablko

Ako aktualizovať alebo vrátiť na oficiálny firmvér Pre neoficiálne iPhone 5 / 4S / 4 / 3G / 3GS sa najskôr uistite, že firmware, na ktorý chcete blikať, je ...