Disassembler

Artificial intelligence is no match for natural stupidity.
22ledna2012

Unroot Samsungu Nexus S


Před několika týdny mi na mém Samsungu Nexus S přestala reagovat malá část dotykového displaye. Závada mi sice v „pracovním“ používání smartphonu nijak extrémně nebrání, ale některé hry už se s tím ovládají celkem špatně. Ještě jsem se nerozhoupal k reklamaci, a jelikož mám ve svém zařízení momentálně ClockWork Mod Recovery + MIUI ROM, nebyl jsem si jist, zda by prodejce vůči neorginálnímu bootloaderu a ROMce neměl nějaké námitky. Právě včas mi ale v komentářích u mého článku popisujícího rootnutí přistál požadavek na popis unrootu - čili akce přesně opačné. Nexus S jsem si vybral z větší části právě proto, že s ním jdou beztrestně dělat všelijaké psí kusy, takže i tahle záležitost by měla být proveditelná.

Buď a nebo


„Odrootování“ se dá provést dvěma způsoby. První z nich je méně náročný, ale ztratíte při něm veškerá data, protože se jedná o prachsprosté flashnutí originální (stock) ROMky, včetně bootloaderu a recovery image. To se ale může hodit v situaci podobné té mé, kdy potřebujete z telefonu vysypat všechno, co tam nepatří, a vymazat vaše soukromá data. Druhá varianta je naopak méně destruktivní (v ideálním případě smaže pouze aplikaci Superuser a nahradí recovery image), ale za to o chlup složitější. Můj popis obou variant bude vycházet ze situace, ve které se váš Nexus S ocitne po provedení všech kroků v mém návodu na rootnutí. Tedy s odemknutým bootloaderem a nainstalovaným ClockWork Mod Recovery a Superuser aplikací. Stejně tak počítá s tím, že máte na PC nainstalovaný ovladač pro Android Bootloader Interface. Pro potřeby tohoto článku jsem aktualizoval balíček potřebných souborů a aplikací, protože na metodu č. 2 bude potřeba adb.exe.

Metoda destruktivní - Stock ROM


  1. Stáhněte si stockovou 2.3.3 ROMku z http://goo-inside.me/crespo/stock/f182cf141e6a.signed-soju-ota-102588.f182cf14.zip.
  2. Nakopírujte stažený zip soubor na SD kartu telefonu.
  3. Vypněte telefon.
  4. Na telefonu stiskněte a podržte zaráz tlačítka volume up a power. Tím se dostanete do bootloaderu.
  5. V bootloaderu zvolte RECOVERY a měl by vám naběhnout ClockWorkMod Recovery. Pokud se tak nestane a naběhne stockový recovery image, zopakujte kroky 10 - 12 z návodu na rootnutí.
  6. V ClockWorku vyberte wipe data/factory reset a potvrďte výmaz.
  7. Poté vyberte install zip from sdcard -> choose zip from sdcard -> f182cf141e6a.signed-soju-ota-102588.f182cf14.zip a potvrďte instalaci.
  8. Po úspěšné instalaci se vraťte v menu zpět a vypněte telefon (power off).
  9. Opět nastartujte do bootloaderu.
  10. Na PC spusťte příkazový řádek (cmd) a přejděte do složky, kde máte fastboot.exe.
  11. Odpalte příkaz
    fastboot oem lock

Android, při prvním spuštění systému, spouští příkaz na kontrolu recovery image a pokud mu nesouhlasí hash, tak celý recovery image přeflashuje, což může udělat i navzdory zamknutému bootloaderu. Po prvním úplném spuštění tedy telefon sám nahradí ClockWork Mod Recovery stockovým recovery imagem.

Metoda nedestruktivní, ale složitější - ADB


Celý proces „odrootování“ skrze ADB
Celý proces „odrootování“ skrze ADB
  1. Povolte telefonu režim ladění USB. Checkbox najdete v Nastavení -> Aplikace -> Vývoj -> Ladění USB
  2. Na PC spusťte příkazový řádek (cmd) a přejděte do složky, kde máte adb.exe a fastboot.exe.
  3. Vypište si seznam připojených zařízení
    adb devices
  4. Pokud je telefon vidět, připojte se na jeho konzoli
    adb shell
  5. Zvyšte si oprávnění na roota
    su
  6. Nechte si vypsat připojené diskové oddíly
    cat /proc/self/mountinfo
    A v té změti, co na vás vyběhne, si zjistěte, jaká je fyzická cesta k oddílu, který je namountovaný jako /system. V mém případě to byl /dev/block/platform/s3c-sdhci.0/by-name/system a nemám k dispozici další Nexus S, abych vyloučil variace.
  7. Remountněte oddíl pro čtení i zápis
    mount -rw -o remount /dev/block/platform/s3c-sdhci.0/by-name/system /system
  8. Smažte Superuser aplikaci
    rm /system/app/Superuser.apk
    rm /system/bin/su
    rm /system/xbin/su
    Pokud případně máte doinstalovány nějaké další pirátské aplikace (busybox, rootshell, atd.) odeberte je také.
    Na vykoumání remountu v krocích 6 a 7 jsem strávil asi nejvíce času. Bez remountu máte i jako root smůlu, protže /system je normálně mountnut jako read-only a při mazání v tomto kroku byste dostali patřičnou hlášku
    rm failed for /system/app/Superuser.apk, Read-only file system
  9. Ještě stále v shellu telefonu, spusťte
    /system/etc/install-recovery.sh
    Čímž vyvoláte na konci prví metody zmíněnou kontrolu hashe recovery image a jeho případné přeflashování výchozím.
  10. Vypněte telefon příkazem
    reboot -p
  11. Na telefonu stiskněte a podržte zaráz tlačítka volume up a power. Tím se dostanete do bootloaderu.
  12. Na PC spusťte příkaz
    fastboot oem lock

Tadá. Přeji mnoho úspěšných reklamací.