2012. november 8., csütörtök

UsbNet - a hálózat csapdájában

Figyelem! A következőkben leírtak arról szólnak, hogyan tudunk egy SSH klienssel bejelentkezni a Kindle fájlrendszerébe. A módszer kipróbálását alapvetően csak akkor ajánlom, ha nem kell elmagyarázni hogy ez mit is jelent, és pontosan tudjuk mire akarjuk használni. Ellenkező esetben komoly károkat okozhatunk, melyek akár a készülék működésképtelenné válásához is vezethetnek. Egyetlen kivételként akkor jön szóba a lentebb leírtak használata, ha biztonsági mentést szeretnénk készíteni a készülék partícióiról, gondolva egy jövőbeni szoftverkárosodásra.  Ebben az esetben ajánlom a blog előző bejegyzésének végigolvasását, különös tekintettel az SSH kliensek használatáról is szóló III/3 pontra.

Miközben az előző, a szoftveresen halott Kindle újraélesztéséről szóló bejegyzést írtam több alkalommal be kellett jelentkeznem SSH klienssel a készüléken futó Linux rendszerbe. A lehetőség, hogy ilyen is van egészen fellelkesített. Nem sokkal később kezembe került egy 2012-es évjáratú fekete Kindle 4-es, amiről szerettem volna egy komplett mentést (partíciók, kernelek) készíteni, de szembesülnöm kellett vele, hogy ezen új készülékek diagnosztikus partíciója már nem alkalmas SSH elérésre - az pedig mindenképpen szükséges a mentéshez. Ugyan felülírhattam volna a diagnosztikus részt egy 2011-es Kindle 4-ről lementett állománnyal, ami korrigálta volna ezt a hiányosságot, de ezt a készüléket nem szerettem volna nagyon módosítani, így más utat kerestem és szerencsére találtam is. A megoldást természetesen egy hack jelentette, ami lehetővé teszi, hogy többé-kevésbé egyszerűen, diagnosztikus módba való átlépés nélkül érhessük el SSH klienssel a Kindle-t.

A leírás egyes lépései korábbi bejegyzésekben már szerepeltek. Az egyszerűség kedvéért hivatkozások helyett egyes részeket teljes egészében átemeltem ide.


1. Jailbreak
(Használata garanciavesztéshez, a készülék szoftverének visszafordíthatatlan/nehezen visszafordítható károsodásához vezethet, ezért mindenki csak saját felelősségére próbálja ki!)

4.0.x firmware alatt: A dl.dropbox.com/u/16679763/kindle-nt-jailbreak-1.0.zip linken található állományból a RUNME.sh és data.tar.gz állományokat másoljuk a Kindle főkönyvtárába majd indítsuk újra a készüléket (Settings/Restart).

4.1.0 firmware alatt: 
  • Töltsük le a kindle-jailbreak-k4-1.5.N állományt.
  • A letöltött csomagból a data.tar.gzENABLE_DIAGS fájlokat és a diagnostic_logs mappát másoljuk át a Kindle gyökérkönyvtárába.
  • Indítsuk újra a készüléket (Settings/Restart).
  • Újraindítás után a Kindle diagnosztikus módba kerül, ekkor sorban a következő menüpontokat válasszuk: D) Exit, Reboot or Disable Diags, majd R) Reboot System, végül Q) To continue.
  • Várjunk 20 másodpercet, ekkor meg kell jelennie a Jailbreak képernyőnek, majd a készüléknek ismét újra kell indulnia. Ekkor a következő menüpontokat kell választanunk: D) Exit, Reboot or Disable Diags, majd D) Disable Diagnostics, végül Q) To continue.
  • Újraindulás után a Kindle könyvtárában egy "You are Jailbroken" című új könyvet kell látnunk. Amennyiben ez megjelent, a jailbreak sikeres volt.

2.Telepítés
  • Töltsük le a kindle-usbnetwork-0.46.N.zip csomagot. 
  • A csomagban található update_usbnetwork_0.46.N_k4_install.bin állományt másoljuk be a Kindle főkönyvtárába.
  • Frissítsük a készüléket: Menu/Settings/Update Your Kindle. 

3. Beüzemelés

Kapcsoljunk a Kindle alapképernyőjére (Home gomb), nyomjuk meg a billentyű (Keyboard) gombot. A felugró ablakban gépeljük be a következőket (a kis/nagybetű különbség is fontos!):

;debugOn (Ezután kattintsunk a Done feliratra, majd nyomjuk le az ötirányú navigátor középső gombját. A továbbiakban is ezen a módon tudjuk érvényesíteni a kiadott parancsokat.)

~usbNetwork  (Az első jelet a '!&#' fülre kattintva találhatjuk meg.)

;debugOff

Csatlakoztassuk a Kindle-t a számítógéphez, az pedig jelezni fogja, hogy új eszközt talált. - azonban alapból ehhez nem rendelkezik driverrel a Windows. Ennek korrigálásához töltsük le a linux.inf fájlt, majd a felugró drivertelepítő ablak haladó módjában válasszuk ki azt .

Lépjünk be a Start menü/Vezérlőpult/Hálózati kapcsolatok menübe és válasszuk ki a Linux USB Ethernet/RNDIS Gadget eszközt. A jobb egérgombra felugró menüből válasszuk a Tulajdonságok pontot, a következő felugró ablakban a TCP/IP Internet Protokollt,  majd itt is kattintsunk a Tulajdonságokra. A feljövő ablakban állítsuk be be IP címnek a következőt: 192.168.2.1. 

4. Használat

Ezek után a továbbiakban elvileg már működnie kell a UsbNetwork kapcsolatnak. A kipróbáláshoz indítsuk el kedvenc SSH kliens programunkat. IP címnek 192.168.2.2-t, Portnak 22-t állítsunk be. A felhasználónév root legyen, a jelszót (ha nem tudjuk) az Amazon Kindle root password tool oldalon deríthetjük ki, előtte mindenképpen érdemes a mario karaktersorozatot kipróbálni.

Az UsbNet mód kikapcsolása: Ha vissza szeretnénk térni a Kindle rendes üzemmódjába, akkor a készülék leválasztása után a fenti parancsokat (tehát ;debugOn, ~usbNetwork, ;debugOff) kell ismét kiadnunk.

Konfigurálás: Az UsbNet hack telepítéskor létrehoz egy usbnet könyvtárat a Kindle főkönyvtárában. Az usbnet/etc mappában találunk egy config állományt, ennek szerkesztésével módosíthatjuk a program viselkedését. Részletesen erről nem szeretnék írni, egyrészt a letöltött csomag README_FIRST.txt állományban olvashatunk a mikéntekről, másrészt remélhetőleg aki kipróbálja ezt a módszert, az rendelkezik elegendő Linux tapasztalattal.

Automata UsbNet: Amennyiben azt szeretnénk, hogy a készülék újraindítás után is UsbNet módban maradjon, az usbnet könyvtárban lévő DISABLE_auto fájlt nevezzük át auto-ra.

5. Biztonsági mentés

Felmerülhet a kérdés, hogy mire is jó ez az egész. Nos, rengeteg mindenre, hiszen megfelelő tudás birtokában mélyen belenyúlhatunk a Kindle Linux rendszerébe. Van azonban egy terület, ahol gyakorlat nélkül is hasznos lehet, ráadásul ha nem csinálunk mást, mint a leírásban szerepel, akkor kárt sem okozhatunk. Lássuk, hogyan is készíthetünk biztonsági mentést a Kindle rendszeréről.

a) Töltsük le a getkernels csomagot. Bontsuk ki és a getkernels-1.4 állományt másoljuk a Kindle gyökérkönyvtárába.

b) Csatlakoztassuk a Kindle-t a számítógéphez, majd a fentiekben leírtak szerint aktiváljuk az UsbNet módot. Lépjünk be a PuTTY programmal a Kindle-be. (Ha gondot okoz a használata akkor a blog előző bejegyzésének III/3/e,f pontjában leírtakat kövessük - azzal a különbséggel, hogy a beírandó IP cím a fentebb megadott legyen.)

c) Ha sikerült bejelentkeznünk adjuk ki a következő parancsokat:

mntroot rw

cd /mnt/us

dd if=/dev/mmcblk0p1 of=/mnt/us/mmcblk0p1.img bs=1024

dd if=/dev/mmcblk0p2 of=/mnt/us/mmcblk0p2.img bs=1024

./getkernels-1.4 /dev/mmcblk0

mntroot ro

exit

Ne ijedjünk meg, ha némelyik parancs után látszólag nem történik semmi, nagyméretű állományokat másol közben a program. Az utolsó parancs hatására a PuTTY bezáródik.

d) Válasszuk le a Kindle-t, kapcsoljuk ki az UsbNet módot, majd a készüléket csatlakoztassuk ismét a számítógéphez. A gyökérkönyvtárban négy új fájlt kell látnunk:

main_kernel.img, diags_kernel.img, mmcblk0p1.img, mmcblk0p2.img

Ezen állományok a diagnosztikus és fő kerneleket és partíciókat tartalmazzák. Mentsük el őket biztonságos helyre. Remélhetőleg nem lesz rájuk szükség, ha mégis, akkor később  még nagyon jól jöhetnek.

***

Kiegészítés: Ha 2011-es kiadású, szürke Kindle 4-esünk van, és nem akarjuk a JailBreaket és az UsbNet hacket feltelepíteni, akkor diagnosztikus módban is elvégezhetjük a biztonsági mentést. Ennek lépései a következőek:

  • Töltsük le a kindle-jailbreak-k4-1.5.N állományt.
  • A letöltött csomagból az  ENABLE_DIAGS fájlt és diagnostic_logs mappát másoljuk át a Kindle gyökérkönyvtárába (a data.tar.gz és egyéb állományok ez esetben nem szükségesek, hiszen nem akarjuk jailbreakelni a Kindle-t!)
  • Indítsuk újra a készüléket (Settings/Restart).
  • Újraindítás után a Kindle diagnosztikus módba kerül. Ezután kövessük az előző blogbejegyzés III/3/b,c,e,f pontjaiban leírtakat.
  • Írjuk be a fenti c) pontban részletezett parancsokat.
  • Miután a PuTTY bezáródott, a diagnosztikus menüből válasszuk a D) Exit, Reboot or Disable Diags, majd D) Disable Diagnostics, végül Q) To continue pontokat. Ezután a készülék újraindul.

Nincsenek megjegyzések:

Megjegyzés küldése