ICS の特徴の1つは、標準でアプリを凍結できること。
しかし実際は、メーカー側で一部アプリを凍結させなくしていることがしばしばあります。
IS11LG も例外ではなく、自分には不要なのに「無効にする」ボタンが無効になっていて、凍結できないアプリがあります。
しかもそのアプリ、強制停止させてもいつの間にか裏で立ち上がっているのでタチが悪い。
そういうもんだと割り切って端末を使えればいいのですが、小さいストレスを抱えながら使い続けているときに、「root が取れそう」と気付いてしまうと、試してみたくなるもんじゃあありませんか。
まずはお約束。
当記事は IS11LG の改造を推奨するものではありません。
手順は自分メモです。試した結果は自己責任にて。
0.事前の準備
・IS11LG は、ICS(4.0.4) にバージョンアップ済みのこと。
・ADB を使える環境の構築
・IS11LG 用ドライバのインストール
http://www.lg.com/jp/mobile-phones/download-page/IS11LG/product-info-driver.jsp
・各種アプリのバックアップ、設定値の控え
・オールリセット
このあたりもお約束ですが、ADB と IS11LG ドライバは必須。
バックアップや初期化は念のため。
1.f-10d_mkdevshkit.zip の取得と解凍
goroh_kun氏が提供されているツールを↓ここから入手。
https://docs.google.com/file/d/0B8LDObFOpzZqQm0yb2U0LTFIQms/edit
適当なフォルダを作成し、中身を解凍します。
2.su の取得
Androidsu↓から。ARM Devices の su-bin をダウンロードします。
http://androidsu.com/superuser/
書庫から su のみを工程1のフォルダに解凍し、_su に変名します。
3.IS11LG で USB デバッグを有効化
設定→開発者向けオプション→USBデバッグ、にチェックを入れます。
4.USB 通信ケーブルで、IS11LG と PC を接続
PC でデバイスインストールが始まったら、終わるまで待ちます。
IS11LG に「USB接続の種類」が表示されたら、戻るボタンでキャンセル。
5.PC でコマンドプロンプトを開く
adb devices と入力して Enter。
数字が羅列されたデバイスが挙がってくることを確認します。
(数字は IS11LG のシリアル番号です)
6.Wi-Fi 切断
IS11LG の Wi-Fi を off にします。
後で Wi-Fi を on/off する作業がありますので。
7.f-10d の復元
工程1のフォルダに移動して
adb restore f-10d.ab
を実行します。
IS11LG の画面に認証が出るので「データを復元する」をタップ。
IS11LG がホーム画面に戻ったら復元完了です。
8.復元結果の確認
shell に入って調べます。
>adb shell
$ cd /data/data/com.android.settings
$ ls -al
drwxrwxrwx system system a
(ディレクトリaがあり、属性がrwxrwxrwxであること)
$ ls -l a
drwxrwxrwx system system file00
drwxrwxrwx system system file01
....
(file00〜99までのディレクトリが存在すること)
以上の通りになっていなければ、ここからの作業は不可能です。
9./dataのパーミッションを777に
工程8の続きで、shell に入ったまま次のコマンドを入力。
$ rm -r a/*
$ while : ; do ln -s /data a/file99; done
エラーメッセージが流れ続けますが放置します。
もう1つコマンドプロンプトを開き、
adb restore f-10d.ab
でファイルを復元、完了させます。
復元後、放置中のコマンドプロンプトを Ctrl+C で終了させます。
再び shell に入り、/dataのパーミッションを確認。
>adb shell
$ ls -l -d /data
drwxrwxrwx system system data
(rwxrwxrwxであること)
10.ファイル転送
root 化に必要な2つのファイルを IS11LG にコピーします。
>adb push mkdevsh /data/local/tmp/
>adb push _su /data/local/tmp/
11.以下のコマンドを実行
工程9の続きで、shell に入ったまま次のコマンドを入力。
$ chmod 777 /data/local/tmp/mkdevsh
$ mv /data/local /data/local.org
$ mkdir /data/local
$ ln -s /sys/kernel/uevent_helper /data/local/tmp
$ exit
shell を抜けたら IS11LG を再起動します。
>adb reboot
12.root(shell)になる
shell に入ってコマンドを実行します。
>adb shell
$ echo /data/local.org/tmp/mkdevsh > /sys/kernel/uevent_helper
次に IS11LG の Wi-Fi を on/off し、再びコマンド入力。
$ ls -l /dev/sh
-rwsr-sr-x root root 151964 sh
$ /dev/sh
# id
uid=2000(shell) gid=2000(shell) ...
まだ完全な root ではありません。もうひと頑張り。
13.su 仕込み
工程12の続きで、shell に入ったままコマンドを入力。
# cd /data/local.org/tmp
# chown 0.0 _su
# chmod 6755 _su
# exit
$
14.一時root化
工程13の続き。
$ /dev/sh
# /data/local.org/tmp/_su
# id
uid=0(root) gid=0(root) ....
抜ける時は、exit を3回打ちます。
# exit
# exit
$ exit
>
端末を再起動した後など /dev/sh がなくなったときは
(1) Wi-Fi をoffに
(2) >adb shell
(3) $ echo /data/local.org/tmp/mkdevsh > /sys/kernel/uevent_helper
(4) Wi-Fi をon/off
(5) $ /dev/sh
(6) # /data/local.org/tmp/_su
で、再び root に成れます。
切っていた Wi-Fi は、適当なタイミングで on に戻してやります。
<謝辞>
ryu_engeitoka氏の発言を拝見し、IS11LGのroot化に期待をしました。
@goroh_kun IS11LGでも8/31付けのf-10d/isw13fでは手順(8)までは出来ているので、手順(9)さえどうにかなれば成功すると思います。
https://twitter.com/ryu_engeitoka/status/241741968718303234
goroh_kun氏作成のrootkitを、機種違いを承知でIS11LGにて試し、
手順8までは出来ることを自分でも確認。
あとはuidを何とかするだけだから、夜明けは近い(?)と訳もなく確信。
最新のF10D/ISW13F向けroot取得&LSM解除キットを公開します。指紋認証できない問題に対応済み。サポートは2chですね。
http://goo.gl/7PBqz https://twitter.com/goroh_kun/status/241449109280653312
日々状況を漁っている中で、fi01_IS01氏のSonyTabでのroot化試行に
大きなヒントを得させて頂いたのでした。
#SonyTabletS のroot取得手順ですが、 成功報告がありましたので、一部readmeを修正して再アップします。あくまでも自己責任でお願いします。
http://bit.ly/Na9V1K https://twitter.com/fi01_IS01/status/242939666238685184
先達の方々の功績を拝借することで IS11LG でも一時rootを取れました。
感謝の意を述べたいと思います。