Hlavní navigace

Root pro Nexus S není složitý ani zakázaný

1. 7. 2011
Doba čtení: 6 minut

Sdílet

Před pár měsíci se mi díky českému zastoupení firmy Google dostal do ruky nový chytrý telefon Nexus S. Neměl jsem moc času si s ním vyhrát na maximum, a tak jste se museli spokojit pouze se základním uživatelským pohledem. To bych nyní rád dohnal a ukázal, že root v telefonu nemusí být vždy bolestný.

Nexus S je telefon vyrobený firmou Samsung, ale s duší od firmy Google. To v praxi znamená, že je mnohem otevřenější než telefony jiné. Naštěstí se blýská na lepší časy a to co je popsáno v odstavcích níže by mohlo brzy platit i pro telefony firmy HTC, která se nechala slyšet, že nové telefony nebude zamykat a nechá tak otevřená vrátka komunitě. To by se mohlo týkat i aktuálních modelů jako je Desire S, který je sice dnes stále nezdolán, ale už další aktualizace by mohla dát zámek paměti pryč. Na to si ještě chvilku počkáme, tak se pojďme věnovat perspektivnějšímu telefonu.

Proti Nexus S který jsem tu měl v březnu je tento trochu jiný. Nechal jsem se zlákat reklamou na Super AMOLED displej, abych záhy zjistil, že Samsungu nestačí výrobní kapacity a Nexus S mám v evropské verzi o kousek tlustší a se Super LCD displejem. Není to vyloženě prohra, Super LCD disponuje lepším rastrem, ale zato černá není černá a barvy nejsou tak kontrastní. Z pohledu hackera pak může nastat problém, když si nahraje do telefonu HBOOT druhého telefonu, který nemá ovladače právě pro ten typ displeje, ale k tomu při běžném rootování nesáhnete. Na praktické rozdíly mezi jednotlivými typy displejů se můžete podívat na android.stackex­change.com.

Jdeme si pro roota

Tento článek nebude obsahovat návod na brutální zásahy do telefonu a krom jednoho bodu, ve kterém na to upozorním, budou všechny změny vratné. Pokud budete telefon z nějakého důvodu reklamovat, tak při správném postupu nebude mít prodejce šanci zjistit, zda byl telefon rootnut či ne. V tomhle je Nexus S maximálně benevolentní. I tak prosím berte na vědomí, že nepěkným přehmatem si můžete zničit systém a i když o něj s největší pravděpodobností nepřijdete (SPL přežije), nenese Root.cz ani já zodpovědnost za škody, které si na základě zde uvedeného návodu způsobíte.

Všechno důležité se u Nexus S děje v HBOOTu neboli SPL (Second Program Loader). To je spuštěno hned po IPL (Initial Program Loader) a je to první softwarová vrstva, která je ochotná brát vstup od uživatele. Jejím úkol je mimo jiné zpřístupnit v relativně surovém stavu paměť telefonu a umožnit uživateli v telefonu nějakou část systému nakopírovat znovu. Nexus S má SPL pro tyto účely zamčenou, ale lze ji ji jednoduše odemknout. Druhým krokem pak je nakopírování vlastní recovery a z té pak instalace programu su a balíčku superuser.apk.

Pokud si dobře pamatujete na článek o rootování HTC Hero, tak v něm je postup přesně opačný a rozhodně ne tak pěkně čistý jako tento. U Hera a mnoha dalších telefonů jeho éry bylo zapotřebí získat roota a pro lepší kontrolu nad telefonem nahrát jinou recovery. Využívala se k tomu většinou bezpečnostní chyba, která byla kritičtější než to, že někdo chtěl roota. Nakonec tohoto postupu začaly využívat zlé aplikace na marketu, které se rády beztrestně zakořenily v systému. Dobrou ochranou běžných uživatelů je v tomto případě S-ON neboli zámek některých částí NAND paměti, který znemožňuje změny v systému. Takové telefony jsou proti podobným praktikám imunní.

Ale jdeme dál, k získání roota budeme potřebovat pár věcí a určitě si je obstarejte, než začnete. Návod bude zaměřen na počítače s Linuxem.

Postupně si všechny archivy s výjimkou su-2.3.6.1-ef-signed.zip rozbalte, budete je záhy potřebovat.

Dále bude potřeba do souboru /etc/udev/rules­.d/51-android.rules doplnit obsah:

SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666" 

Tím by měl být telefon po USB kabelu dostupný pro všechny uživatele. Nesmíme zapomenou restartovat udev:

$ sudo restart udev 

Binárnímu souboru fastboot ještě přidělíme práva ke spuštění:

$ chmod 755 fastboot 

Až to budete mít spusťte soubor android, který najdete v adresáři tools v Android SDK. Klikněte na Available packages a rozklikněte nabídku Android Repository. Zaškrtněte Android SDK Platform-tools. Nakonec klikněte na Install selected a po prostudování potvrďte následující okno. Tím dostanete do adresáře platform-tools program adb, který je potřeba pro komunikaci s telefonem.

A přejdeme ke kopírování recovery.

A teď už s klidnou rukou a vážnou tváří

Během postupu na následujících řádcích přijdete o všechna data v telefonu včetně interní paměti, proto si to nejdůležitější někam nějak zálohujte.

Prvním krokem je nabootování do SPL, což se udělá tak, že vypnete telefon a zapnete ho pomocí tlačítek Power a Volume UP. Objeví se okno s informacemi a nabídkou, kde je možné vybírat pomocí tlačítek na nastavení hlasitosti a potvrzovat tlačítkem Power. Zatím nic nedělejte a připojte telefon USB kabelem k počítači. Teď přejdeme k první a jediné destruktivní činnosti v tomto návodu. Odemkneme zavaděč aby byl ochotnější pracovat s utilitkou fastboot a umožnil nám si hrát s pamětí telefonu. To provedeme tak, že na počítači spustíme program fastboot s parametry:

$ fastboot oem unlock 

Objeví se okno, kde potvrdíte, že chcete telefon odemknout. Pak zavaděč z bezpečnostních důvodů smaže z telefonu všechna data a telefon odemkne.

Máme-li, můžeme nahrát recovery.

$ fastboot flash recovery recovery-clockwork-herring.img 

Do té se pak dostanete zvolením recovery v menu v druhé polovině displeje. Zde v nabídce mounts and storage zvolte mount USB storage. Na počítači se vám objeví nový disk a na něj nakopírujte soubor su-2.3.6.1-ef-signed.zip. Disk opět odpojte a to i na telefonu a přejděte do nabídky install zip from sdcard. Pak vyberte choose zip from sdcard a najděte nakopírovaný soubor. Po potvrzení máte ve svém systému roota a můžete si podat ruku a pohladit telefon.

Pokud nechcete, aby vám tato recovery zmizela, je potřeba ještě připojit oddíl /system v menu mounts and storage, pomocí utilitky adb se k telefonu připojit a upravit práva souboru /system/etc/in­stall-recovery.sh. Ten se totiž postará o to, aby se při dalším bootu vrátila původní recovery. Vzhledem k tomu, že má tato recovery mnohem víc možností než ta původní, asi není důvod si ji držet, ale určitě si tento postup pamatujte, kdybyste telefon vraceli. Program adb najdete v adresáři platform-tools v Android SDK.

# cd platform-tools
# ./adb shell
# cd /system/etc
# chmod 444 install-recovery.sh 

Skript znovu nahodíte změnou práv na 544.

A máme hotovo. Až se vrátíte zpátky do svého Androida, stáhněte si aplikaci ROM Manager, která vám pomůže jednoduše nahrát nejnovější recovery. Pro jistotu ještě můžete použít třeba aplikaci ConnectBot nebo program adb s parametrem shell a ověřit zda roota opravdu máte a to zadáním su do příkazové řádky.

cyber23

Závěr

V dnešní době už root není u Androida tak důležitý. Dokáže ulehčit třeba aktualizaci recovery, ale pokud vyloženě nechcete taktovat procesor nebo využívat nějaké aplikace, které roota potřebují (třeba Titanium Backup), je vcelku zbytečný. Doby, kdy se podobnými postupy řešit tethering a aplikace na kartě jsou dávno pryč. Na druhou stranu je pořádná recovery základ. Pomůže se zálohou i vymazáním údajů o baterce, které jsou někdy zdrojem problémů s výdrží. Zároveň pomůže, když se něco nepovede nebo když se vám zalíbí třeba CyanogenMod. Nexus S je ale tak otevřený telefon, že i k té recovery můžete přejít až když se něco nepovede.

Návod byl částečně založen na návodu uživatele BlackOtaku, který najdete na XDA fóru. Návodů je na stejném místě hned několik včetně seznamu ROM, které můžete do Nexus S nahrát.

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.