2014年9月17日水曜日

IS11T で遊ぶ

先日、秋葉原某店でジャンクのIS11Tを購入しました。
お値段なんと1,880円(税別)。色々と遊んじゃいます。





清掃


安いものには訳がある。

もちろんこの IS11T も例外ではありませんでした。
ちゃんと起動し動作する IS11T が1,880円(税別)は安い。安いのだがこの携帯、開封してスライドするや否やジャリっと不穏な音が…。よく見たらイヤホン端子からキーボードまで砂まみれ。さすがジャンク、良くない意味で期待を裏切らない。
という訳で清掃しました。とはいえ IS11T は非防水端末だから丸洗いするわけには行かないので、水をたっぷり含ませたティッシュペーパーで蓋の内部まで拭き、消毒用アルコールをキーボードに塗りたくり、エアダスターを全力発射し、仕上げにスライド部に機械油を注入しました。
苦労の甲斐もあり、液晶が滑らかにスライドするようになりました。やれやれ。



root 権限の取得


ベースバンドバージョンが 6002.0102.36 以下であれば、基本的には某所の root_toolkit_is11t_v2.3 を使用すれば root 権限を取得できます。
基本的にこの rootkit はワンクリックで root を取得できるのですが、今回は Windows 向け富士通 ADB ドライバが上手く当たらないという理由により Linux で作業しました。

ほとんどが adb での作業なので、OS は違えど root.bat を一行ずつ実行していけばOKです。
ちなみにこの rootkit では microSD に2ndパーティションを作成し、起動時にそのパーティションで /system を乗っ取るというかなりマッチョな方法を取っています。しかしこの方法だと microSD を交換することが出来ないので、端末の /system に直に書き込む方法を取ることにしました。

/system に直に書き込む = 失敗即文鎮の可能性が非常に高いです。
同じ方法が別の IS11T で成功するとは限りません。失敗して端末が文鎮化しても、私もしくは rootkit の作者に問い合わせないで下さい。

root.bat にもある通り、WiFi がオンになっていると再起動ループに陥る可能性があります。
作業終了まで WiFi をオフ かつ 機内モードをオンにしておきましょう。

以下のメモは root.bat を一通り読んだという前提で。




microSD にパーティションを切らず、/system に直に置く場合は、
root.bat の

:STEP_01B, C, D
:STEP_02B
:STEP_05B の「suへのシンボリックリンク」以降
:STEP_06B (要 /system の再マウント、詳細は下記)
:STEP_07B (最低限 Superuser.apk を入れればOK)
:STEP_09B

を一行ずつ実行で root 権限が取れます。




ファイルの存在確認を行う
:file_exists
は、
ls 
にそのまま置き換えればOK。(隠しファイルに対しては ls -a)ちなみに
%ERRORLEVEL% == 1 → ファイルが存在する
%ERRORLEVEL% == 0 → ファイルが存在しない
っぽい。




rootkit のインストール先を /system にするには、root.bat の
/sdstem

/system
に置き換えます。
また、root 権限取得後に表示される「不正なアプリケーションがインストールされているために起動できません」 を回避するためのスクリプトが rootkit の /data_root/script/replace_lib.sh として入っているので、3行目の
SYSLIB_PATH="/sdstem/lib"

SYSLIB_PATH="/system/lib"
に書き換えます。




/system には書き込みロックが掛かっているため、
$ adb shell au -c "mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system"
で再マウントしてから
$ adb shell au -c "/data/root/script/replace_lib.sh"
を実行することで、ライブラリ群にパッチが適用されます。




仕上げに、root権限で Superuser をインストールします。
$ adb push (rootkitのパス)/install_apk/Superuser.apk /sdcard/Superuser.apk
$ adb shell au -c "cp /sdcard/Superuser.apk /system/app/Superuser.apk"
$ adb shell au -c "chmod 644 /system/app/Superuser.apk"
$ adb shell au -c "chown root.root /system/app/Superuser.apk"
再起動すれば各種 root アプリが動作するようになります。



カーネルの書き換え


某所の is11tocboot が利用可能です。
カーネルは
$ adb push is11tbootrec.img /data/root/kernel.tmpfile
$ adb shell au -c "/data/root/bin/flash_image boot /data/root/kernel.tmpfile"
$ adb shell au -c "rm -r /data/root/kernel.tmpfile"
で書き込む事が出来ます。

boot 領域に書き込む = 失敗即文鎮のため自己責任で。

上手く行けばこんな感じに。






ArchLinux の起動


Complete Linux Installer を Google Play からインストールして下さい。
初回起動時に busybox をインストールするよう指示されますが IS11T では失敗してしまうため、手動で /system/xbin にシンボリックリンクを設定します。

$ adb shell
(以下 IS11T 内のシェル)
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock1 /system
# ln -s /data/root/bin/busybox /system/xbin
# for cmd in `/data/root/bin/busybox --list`; do (/data/root/bin/busybox [ ! -L /system/xbin/${cmd} ] && /data/root/bin/busybox [ ! -f /system/xbin/${cmd} ] && ln -s /data/root/bin/busybox /system/xbin/${cmd}); done

指示に従い ArchLinux の Core Image をダウンロードして下さい。

以下、ArchLinux 環境でコマンドを入力します。
(無事に ArchLinux に入れていれば [root@localhost /] と表示されるはず)



日本語化する


/etc/locale.gen を開き、ファイルを以下のように書き換えます。
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
保存した後に以下を実行します。
# locale-gen
# echo LANG=ja_JP.UTF-8 > /etc/locale.conf
# export LANG=ja_JP.UTF-8
Terminal Emulator を使用している場合は、
メニューキー → その他 → 設定 → デフォルトをUTF-8にする
のチェックを入れて下さい。



pacman を使えるようにする



proc をマウントし、 /etc/mtab にリンクを張ります。
(proc の mount は起動の度に行わないとダメっぽい?)
# mount proc /proc -t proc
# ln -s /proc/mounts /etc/mtab

起動スクリプトを差し替えれば使えるようになります。
[APP] Linux-on-Android project (Complete Lin… - Pg. 187 | Android | XDA Forums
より bootscript-devfix.sh をダウンロードし、
$ adb push bootscript-devfix.sh /sdcard/
$ adb shell au -c "/sdcard/bootscript-devfix.sh /data/data/com.zpwebsites.linuxonandroid/files/bootsctipt.sh"

pacman のデータベースを更新し、パッケージをインストールします。
# pacman -Syy
# pacman -S vim
以上のコマンドを実行することで Vim がインストールされます。


これで、いつでもどこでもTeXを書いたりVimをカスタマイズして楽しんだりウガンダに寄付をしたりする事ができます。


0 件のコメント:

コメントを投稿