2011-05-26

Kindle 3 的 jailbreak 及 usbNetwork

記錄 Kindle 3 使用進程。

Jailbreaking
  1.  mount Kindle。
  2. 下載 kindle-jailbreak-0.7.N.zip。
  3. 把裡面的 update_jailbreak_0.7.N_k3gb_install.bin 抄到 Kindle 目錄的最上層(選 k3gb 是因為這是指 Kindle3+3G+Wi-Fi 且序號前四碼為 B00A 的非 US 版)。
  4. 在 Kindle 目錄的最上層,建立子目錄 hack/。
  5. 把 update_jailbreak_0.7.N_k3gb_uninstall.bin 抄到 hack/ 裡備用及備忘。
  6. umount Kindle。
  7. 在 Kindle 上,按 [Home]→[Menu],到 [Settings],按 [.] 進去之後,按 [Menu],再 按 [Update Your Kindle](如果有程式可供 update,則此行為黑色,否則為淺灰色)。
  8. Kindle 會問你是不是真的要 update,選 [ok] 按 [.] 確認。
  9. 注意其不要關機的警告訊息,靜觀其變。約半分鐘內會完成,並自動重新開機。

usbNetwork
  1. mount Kindle。
  2. 下載 kindle-usbnetwork-0.33.N.zip。
  3. 把裡面的 update_usbnetwork_0.33.N_k3gb_install.bin 抄到 Kindle 目錄的最上層。
  4. 把 update_usbnetwork_0.33.N_k3gb_uninstall.bin 抄到 hack/ 裡備用及備忘。
  5. umount Kindle。其餘步驟同上 6, 7, 8 ,完成更新。
  6. 在 Kindle 上,按 [Home] 回到最上層,再按 [Del],下方會出現搜尋輸入列,這時依序輸入下面三行,每輸入一行就按一次 enter(在 [Del] 正下方)。
    ;debugOn 
    ~usbNetwork
    ;debugOff
    注意,每次輸入後或按下 enter 時,都不會有任何回應。而且「~usbNetwork」這個指令是一個 toggle switch,也就是第一次是 on,再做一次就是 off,亦即要關閉 usbNetwork 的話,除了重新開機一途之外,也可以再下一次相同的指令,使得 Kindle 回復原先的 usb 硬碟模式(mass storage device mode)。
  7. 先把 Kindle 上的網路關掉(否則待會連線可能會有問題),再用 usb 線接到電腦,這一次的情形如下:
    • Kindle 不會再出現充電的畫面,而是可以繼續動作,因為它這次不把自己當作隨身碟,而是成為一個 usb 網路卡,它的 ip address 預設為 192.168.2.2。
    • 在電腦那邊則不能去 mount 它,也不會看到 Kindle 裡的電子書目錄,因為 Kindle 現在不是一個 usb mass storage device,而是一個網路卡。電腦這邊用 lsmod 看的話,會看到它也已經同時載入 cdc_ether.ko、cdc_subnet.ko 以及 usbnet.ko。如果 kernel 沒有把這些 features compile 進去的話,那就必須重新 compile 或是換個 kernel。在 Windows 上則必須找到並安裝 driver。
    • 在電腦這邊,用 ifconfig 可以看到 usb0 的介面。以 root 的權限輸入
      ifconfig usb0 192.168.2.1 up
      再輸入
      route add default gw 192.168.2.2 dev usb0 
      然後就可以 ping 看看 192.168.2.2,看 Kindle 那邊有沒有什麼回應。
    • 再輸入
      ssh 192.168.2.2

      telnet 192.168.2.2
      就會看到
      Trying 192.168.2.2...
      Connected to 192.168.2.2.
      Escape character is '^]'.


      Welcome to Kindle!

      ################################################
      #  N O T I C E  *  N O T I C E  * N O T I C E  #
      ################################################
      Rootfs is mounted read-only. Invoke mntroot rw to
      switch back to a writable rootfs.
      ################################################
      然後游標出現在下列這個 prompt 旁邊:
      [root@kindle root]#
    • 輸入 pwd,會看到
      /var/tmp/root
      其他指令如 ps -e, top, ifconfig, ls, cd, uname -r (2.6.26-rt-lab126) …… 都可以用。

    • 輸入
      cd /mnt/base-us/
      就可以看到我們平常 mount 看到的目錄內容。
  8. 這裡記錄一些在 Kindle 上可以參考的指令及輸出情形。
    [root@kindle root]# mount
    rootfs on / type rootfs (rw)
    /dev/root on / type ext3 (ro,noatime,nodiratime,data=ordered)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    tmpfs on /dev type tmpfs (rw,mode=755)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    shm on /dev/shm type tmpfs (rw)
    rwfs on /mnt/rwfs type tmpfs (rw,size=32768k)
    rwfs on /var type tmpfs (rw,size=32768k)
    /dev/mmcblk0p2 on /var/local type ext3 (rw,sync,errors=continue,data=ordered)
    fsp on /mnt/us type fuse.fsp (rw,nosuid,nodev,noatime,user_id=0,group_id=0)
    /dev/loop/0 on /mnt/base-us type vfat (rw,noexec,noatime,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8)
    usbfs on /proc/bus/usb type usbfs (rw)


    [root@kindle root]# df
    Filesystem 1k-blocks Used Available Use% Mounted on
    /dev/mmcblk0p1 662362 494310 141428 78% /
    tmpfs 128268 20 128248 0% /dev
    shm 128268 0 128268 0% /dev/shm
    rwfs 32768 288 32480 1% /mnt/rwfs
    rwfs 32768 288 32480 1% /var
    /dev/mmcblk0p2 23797 1579 20990 7% /var/local
    fsp 3202192 278328 2923864 9% /mnt/us
    /dev/loop/0 3202192 278328 2923864 9% /mnt/base-us


    [root@kindle root]# lsmod
    Module Size Used by
    option 12512 2
    usbserial 27756 5 option
    ehci_hcd 38880 1 option
    usbcore 136388 4 option,usbserial,ehci_hcd
    ar6000 161076 0
    g_ether 21096 0
    ppp_async 8612 1
    crc_ccitt 1856 1 ppp_async
    ppp_generic 19252 5 ppp_async
    slhc 5984 1 ppp_generic
    volume 8900 0
    fiveway 22360 0
    mxc_keyb 15904 0
    uinput 7776 0
    fuse 48348 2
    arcotg_udc 38628 1 g_ether
    mwan 7324 2 ehci_hcd,ppp_async
    eink_fb_shim 117564 0
    eink_fb_hal_broads 397532 0
    eink_fb_hal 59764 5 eink_fb_shim,eink_fb_hal_broads


    [root@kindle root]# iwconfig
    lo no wireless extensions.


    usb0 no wireless extensions.


    wlan0 AR6000 802.11g Mode:Managed Bit Rate=11 Mb/s Tx-Power=0 dBm
    Sensitivity=0/3
    Retry:on
    Encryption key:off
    Power Management:off
    Link Quality:255/94 Signal level:-96 dBm Noise level:-96 dBm
    Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
    Tx excessive retries:0 Invalid misc:0 Missed beacon:1


    ppp0 no wireless extensions.


    [root@kindle root]# ifconfig
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:5869 errors:0 dropped:0 overruns:0 frame:0
    TX packets:5869 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:412748 (403.0 KiB) TX bytes:412748 (403.0 KiB)


    ppp0 Link encap:Point-to-Point Protocol
    inet addr:10.176.98.121 P-t-P:10.64.64.64 Mask:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
    RX packets:10 errors:0 dropped:0 overruns:0 frame:0
    TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:3
    RX bytes:178 (178.0 B) TX bytes:760 (760.0 B)


    usb0 Link encap:Ethernet HWaddr EE:19:00:00:00:00
    inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:6074 errors:0 dropped:0 overruns:0 frame:0
    TX packets:3993 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:314023 (306.6 KiB) TX bytes:434202 (424.0 KiB)


    wlan0 Link encap:Ethernet HWaddr 28:EF:01:56:3A:F8
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:76 errors:0 dropped:0 overruns:0 frame:0
    TX packets:96 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:10118 (9.8 KiB) TX bytes:7481 (7.3 KiB)


    [root@kindle documents]# cat /proc/cpuinfo
    Processor : ARMv6-compatible processor rev 3 (v6l)
    BogoMIPS : 255.59
    Features : swp half thumb fastmult vfp edsp java
    CPU implementer : 0x41
    CPU architecture: 6TEJ
    CPU variant : 0x1
    CPU part : 0xb36
    CPU revision : 3
    Cache type : write-back
    Cache clean : cp15 c7 ops
    Cache lockdown : format C
    Cache format : Harvard
    I size : 16384
    I assoc : 4
    I line length : 32
    I sets : 128
    D size : 16384
    D assoc : 4
    D line length : 32
    D sets : 128


    Hardware : Amazon MX35 Luigi Board
    Revision : 35020
    Serial : "B00AA0A0115602A5"
    BoardId : "SP1B000000000000"


    [root@kindle documents]# ls -l /mnt/us/usbnet/bin/
    -rwxr-xr-x 1 root root 43156 Apr 19 10:51 busybox
    -rwxr-xr-x 1 root root 203492 Apr 19 10:51 dropbearmulti
    -rwxr-xr-x 1 root root 98980 Apr 19 10:51 htop
    -rwxr-xr-x 1 root root 109772 Apr 19 10:51 lsof
    -rwxr-xr-x 1 root root 351316 Apr 19 10:51 rsync
    -rwxr-xr-x 1 root root 55360 Apr 19 10:51 sftp-server
    -rwxr-xr-x 1 root root 1474 Mar 23 09:10 usbnet-disable
    -rwxr-xr-x 1 root root 1539 Mar 23 09:10 usbnet-enable
    -rwxr-xr-x 1 root root 7442 Mar 23 09:10 usbnetwork


    [root@kindle root]# cat /etc/passwd
    root:x:0:0:root:/tmp/root:/bin/sh
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:100:sync:/bin:/bin/sync
    operator:x:37:37:Operator:/var:/bin/sh
    sshd:x:103:99:Operator:/var:/bin/sh
    messagebus:x:92:92:messagebus:/bin/false
    nobody:x:99:99:nobody:/tmp:/bin/sh
    default:x:1000:1000:Default non-root user:/dev/null:/bin/sh
    framework:x:1001:150:Framework User:/tmp/framework:/bin/sh

沒有留言:

張貼留言