root取得なんですが・・・
まず、adb接続してみてびっくりですよ。
$ mount mount rootfs / rootfs rw 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 /dev/block/mtdblock7 /system yaffs2 rw 0 0 /dev/block/mtdblock10 /data yaffs2 rw,nosuid,nodev 0 0 tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0 /dev/block/mtdblock9 /cache yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock5 /hidden yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock1 /misc yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock8 /misc2 yaffs2 rw,nosuid,nodev 0 0 DxDrmServerIpc /data/DxDrm/fuse fuse.DxDrmServerIpc rw,nosuid,nodev,user_id=0,group_id=0,allow_other 0 0 $
/systemパーテーションがrwでマウントされてるし。
調べてみるとGoRoot.batというのがあって、それでrootがとれるらしい。
内容的にはすごく簡単なので、手動でやってみる。
c:\android>\android\platform-tools\adb shell $ mkdir /data/work $ exit c:\android>\android\platform-tools\adb push su /data/work 1877 KB/s (34612 bytes in 0.018s) c:\android>\android\platform-tools\adb push Superuser.apk /sdcard/ 1506 KB/s (16967 bytes in 0.011s) c:\android>
まず、必要なsuとSuperuser.apkを転送。
あと、cpが使えなかったり/sdcard/だとsuに権限が与えられないので、/data/workに作業用ディレクトリを作成した。
で、次の手順。
c:\android>\android\platform-tools\adb shell $ cd /data/work $ ls -l -rw-rw-rw- shell shell 34612 2011-12-15 22:50 su $ chmod 4755 su $ ls -l -rwsr-xr-x shell shell 34612 2011-12-15 22:50 su $
/data/workにコピーしたsuに対して、権限を与えてあげます。
$ ./su - ./su - Permission denied here1here2here3$ $
あれ?駄目?
あ、/dataはnosuid,nodevでマウントしてるからか、と/sqlite_stmt_journalsにコピーしなおしても、同じ結果に・・・
Rstream A1でこの手法はうまくいかないようです。
— 2011/12/19 追記 —
なぜCommtiva z71派生モデルで一般的なGoRoot.batがうまくいかなかったかを調べたところ、Rstream A1以外の大半のCommtiva z71派生モデルでは、adb接続時はrootユーザで入れてしまうらしい。
Rstream A1では、一般ユーザで入るように設定されてしまっているので、同じ手法が使えない、ということだったようだ。
なお、MUCHTEL A1のAndroid 2.2を書き込むと、rootユーザが簡単に取得できるようになるが、日本語設定がないので設定画面とかが英語になる、というのと、R-stream A1のIP電話アプリが消える、という問題がある。