Root a jeho úskalí

Android

Minulý týden vyšel na Android and Me video-návod jak rootnout Android během šesti minut. Když jsem viděl, jak je celá operace jednoduchá, zbavil jsem se i posledních námitek, které mě od rootu doposud odrazovaly (zejména složitost celého procesu a tedy velká pravděpodobnost, že se to nepovede). Rozhodnul jsem se téměř okamžitě, že do toho půjdu.

Upozorňuji, že tento článek není v žádném případě návodem, jak získat root oprávnění, ale pouze popisuje moji strastiplnou anabázi za dokonalým (tedy téměř dokonalým) telefonem s Android OS.

Příprava

Příprava na root byla jednoduchá. Zaprvé jsem zazálohoval všechny aplikace v telefonu na paměťovou kartu pomocí souborového manažeru ASTRO. Zadruhé jsem provedl veškeré zálohy, které umožňovala aplikace MyBackup (což se později ukázalo být chybným krokem). Zatřetí jsem si stáhnul aplikaci FlashRec (flashrec-20090815.apk). Konečně začtvrté jsem si stáhnul z XDA-developers aktuální stabilní CyanogenMod ROM v4.0.1. Soubor jsem přejmenoval na update.zip a zkopíroval jej na paměťovou kartu.

Přepis recovery image

Za účelem tohoto kroku jsem si nainstaloval právě onu kouzelnou aplikaci FlashRec, která celý root proces o tolik zjednodušuje. FlashRec využívá (či zneužívá) bezpečností díry v implementaci bluetooth, která se vyskytuje v systémech s číslem sestavení CRC1 nebo nižších. Však už se prý také objevila oficiální záplata od Googlu, která tuto chybu odstraňuje. Já ji naštěstí utekl o vlásek.

Ve FlashRecu jsem nejdříve musel zvolit zálohu originálního recovery image na paměťovou kartu, což proběhlo hladce (zhruba během dvou vteřin). Poté mi aplikace umožnila flashnout neoficiální Cyanogen Recovery 1.4. No umožnila… běželo to podezřele dlouho tak jsem FlashRec raději odstřelil a zkusil to znovu. Nejdříve jsem vybral flashnutí originálního image (proběhlo OK) a potom znovu zapsání Cyanogen Recovery. Tentokrát již vše proběhlo v pořádku.

CyanogenMod v1.4

Instalace CyanogenMod ROM

Vypnul jsem telefon a opět jej zapnul tak, že jsem současně s tlačítkem power přidržoval tlačítko home. Uvítala mě dosud neznámá obrazovka CyanogenMod v1.4 + JF, známka toho, že FlashRec odvedl kvalitní práci. Potom už to šlo ráz naráz. Nejprve jsem zvolil příkaz wipe data/factory reset (Alt+W), kterým jsem smazal veškerá uživatelská data (včetně aplikací) v telefonu. Příkaz jsem potvrdil stisknutím trackballu a poté ještě jednou tlačítkem home. Dále jsem pokračoval příkazem apply sdcard:update.zip (Alt+S), kterým jsem zahájil instalaci Cyanogen ROMu. Za chvíli bylo hotovo. Nakonec jsem telefon restartoval volbou reboot system now (home+back).

Uvítalo mě nové logo Android a poté se opakovaly ty samé procedury, které po mě telefon vyžadoval, když jsem si ho koupil. Nastavení data a času, úvodní tutoriál jsem raději přeskočil, zadání přihlašovacích údajů ke Google účtu jsem se už ale nevyhnul. Z marketu jsem stáhnul nejdůležitější aplikaci – ASTRO a pustil se do obnovy programů. Po instalaci pár desítek aplikací mi však telefon oznámil známou hlášku Low on space a v tu chvíli jsem si uvědomil, že jsem zapomněl na to hlavní, kvůli čemu jsem root vůbec podstupoval. Možnost instalace aplikací na paměťovou kartu neboli apps2sd.

Vytvoření oddílů na SD kartě

CyanogenMod ROM podporuje instalaci aplikací na paměťovku v základu, bez dodatečných nástrojů. Jediné co k tomu potřebuje, je mít rozdělenou sd kartu na tři oddíly: oddíl fat32, ext2/3/4 partition a linux swap. Takže jsem zazálohoval data na kartě, opět přístroj vypnul, nabootoval do CyanogenMod v1.4 + JF a vybral příkaz go to console (Alt+X). V prostředí konzole je možné zapisovat příkazy pouze na hardwarové klávesnici, takže majitelé jiných telefonů než G1 mají smůlu (naštěstí i pro ně existuje cesta, jak oddíly na kartě vytvořit). Nejprve jsem stisknul enter a poté zadal následující sérii příkazů:

parted /dev/block/mmcblk0
mkpartfs primary fat32 0 7437
mkpartfs primary ext2 7437 7937
mkpartfs primary linux-swap 7937 7969
quit
upgrade_fs
reboot

Na kartě tak vznikly celkem tři oddíly – fat32 o velikosti 7437MB, ext2 partition o velikosti 500 MB (kam se instalují aplikace) a 32MB linux swap. Ext2 jsem ještě konvertoval na ext3 příkazem upgrade_fs.

Anabáze pokračuje

Tím to celé bohužel neskončilo. Telefon sice začal nabíhat, objevilo se logo Androidu, ale po chvilce vždy jakoby mírně probliklo a ani po několika dlouhých minutách nehodlalo zmizet. Měj jsem podezření, že systém převádí jednotlivé aplikace na paměťovou kartu do ext3 partition. To jsem ale nevěděl jistě, takže mi po chvíli došla trpělivost a vyndal jsem z telefonu baterii. Znovu jsem provedl wipe a znovu jsem nainstaloval systém. Tentokrát již telefon naběhl bez otálení. Zároveň se mi potvrdila má teorie o automatickém transferu aplikací na kartu, protože řada programů byla na kartě již nyní nainstalována (ty, které to stihly před vyjmutím baterie).

V tom spočívá další výhoda apps2sd – pokud máte aplikace na kartě, nepřijdete o ně při factory resetu (wipe). To však neplatí o jejich nastaveních, která obvykle zůstávají uložena v paměti telefonu. Všechno se zdálo být OK, telefon fungoval, jak má. V prohlížeči dokonce bylo možné využít multi dotekového ovládání pro přiblížení/oddálení webové stránky (žádné kouzlo jsem v tom ale nespatřoval). Čeština se zvolila automaticky při přihlášení ke Google účtu. Pouze v kalendáři začínal týden po americku nedělí místo pondělkem a některé texty zůstaly v angličtině.

Hlavní výhodou tedy zůstala možnost instalovat aplikace co hrdlo ráčí, bez hloupých omezení ať už co do kapacity paměti přístroje nebo co do oprávnění. Potud by se mohlo zdát vše v pořádku, ale jak už jsem naznačil v úvodu, udělal jsem jednu chybu – provedl obnovu kontaktů pomocí MyBackup. Tento jinak velice užitečný program nejdříve smazal všechny kontakty a následně je obnovil ze zálohy. Objevil se však problém při synchronizaci s Google účtem, která skončila chybovou hlášku v tom smyslu, že bylo smazáno příliš mnoho kontaktů a dostal jsem na výběr, zda chci vzít mazaní zpět nebo pokračovat v synchronizaci.

Já zvolil druhou variantu, což mělo za následek smazání veškerých kontaktů na Gmailu (později jsem se na internetu dočetl, že ani první možnost by nebyla ta pravá ). A co hůř, Google mi začal tvrdohlavě odpírat jakoukoli synchronizaci kontaktů. Nepomohla ani opětovná obnova ze zálohy pomocí MyBackup. Trn z paty mi vytrhla až aplikace vCardIO, díky které jsem vyexportoval kontakty z telefonu do souboru ve formátu vcf a ručně je naimportoval do Gmailu. Potom již synchronizace začala fungovat správně.

Jak vidíte ani dnes není root zcela triviální záležitostí a vyplatí se důkladně si rozmyslet, jestli získané výhody stojí za vynaložené úsilí.


Podělte se o tento článek s ostatními… Sdílet

Komentáře

avatar

[1] patas

clock  15. 09. 2009, 16:29

Stejným postupem jsem root udělal i já. Jenom jsem později přehrál radio a SPL. Co jsem pochopil, tak nové SPL mimo jiné rozšíří prostor pro ROMku (asi hodně laicky řečeno). Jelikož to vypadá, že na G1 nebudou v budoucnu aktualizace z důvodu nedostatku prostoru pro ROM, tak se asi více prostoru hodí i pro ukuchtěné ROMky např. Cyanogen Mode s verzemi Android 2.0 apod. (ale je to spekulace). Jinak já nechávám kontakty na Gmailu, takže po wipe nechávám synchronizaci na Google.


Pavel

[2] Pavel

clock  15. 09. 2009, 18:28

Reakce na [1] > O zvětšení kapacity ROM nic nevím, ale myslím, že bude úplně stačit, když Cyanogen vydá nějakou osekanou verzi Android 2.0, která se do G1 vejde. Android 1.6 (Donut) na mě zatím moc dojem neudělal, takže jsem se raději vrátil k CM-4.1.2.1, než vyjde nějaká odladěnější verze.



Přidat komentář

  • Pole označená hvězdičkou jsou povinná.
  • Můžete použít Texy! syntaxi. HTML tagy nejsou povolené!
    Příklad syntaxe: **tučně**, *kurzíva*, `kód programu`.
  • Odkazy začínající http(s)://, ftp:// a mailto: se zformátují automaticky.
  • Na jiné komentáře se můžete odkazovat např. zápisem [1].
  • Máte-li k e-mailové adrese nahraného Gravatara, bude zobrazen u Vašeho komentáře.
  • Upozorňuji, že komentáře, které se netýkají tématu článku, jsou vulgární nebo urážlivé, mohou být smazány.
Upozornění: Komentář musí být před publikováním schválen!
: *
: *

: *

:



Navigace: Začátek článku Nahoru | Začátek komentářů Nahoru

© Pavel Jaroš [Sektor PJ] · Nahoru Nahoru