スキップしてメイン コンテンツに移動

既にICSにアップデートしてしまったSony Tabletでroot権限を取得する方法

今まではHC(3.2.1)の状態でroot化している状態からでないとICSにおいてroot化することは出来ませんでしたが、@fi01_IS01氏と@goroh_kun氏のお陰で既にICSにアップデートした状態でもroot化が可能になりました。感謝です。

実は以前の方法でroot化していたんですが、一度修理に出したのでそれ以来root化出来ていませんでした。

以下は殆どreadmeに書いてあることですが、詰まったところなども書いています。ただもしかしたら別のところで何か間違えていただけということも有り得るので参考程度に。因みにSony Tablet Pにて行いました。

ツール(2012/09/20 18:56更新)

xdaにroot化を自動でやってくれるバッチファイルがありましたので、載せておきます。試していません。VpnFaker.apkを入れ替える必要があるかも。
underfish さんのコメント... @ 2012年9月19日 23:48
xdaのバッチ問題なくroot化できました。
書いてあるままで、それ以外の作業は必要ないようです
underfishさんによればツール通りに行えば良いとのこと。
http://forum.xda-developers.com/showpost.php?p=31658619&postcount=143

必要なファイル

SonyTabletICS-2.zip
SuperuserのSuperuser-3.1.3-arm-signed.zip(バージョンは多分どれでも良い)

備考(2012/09/18 21:33更新)



手順2までやってVpnFaker.apkが仕込めなかった場合、再度同手順を行うには手順1後、手順4の後始末を参考に以下のようにする必要があります。
mv system system2
mv system- system
rm system2
mv app app2
mv app- app

手順

1. ディレクトリのパーミッション変更

1-1. リストア実行
> adb restore settings.ab
1-2. 画面に認証が出るのでOK押す

1-3. リストア終了後、ディレクトリの権限を確認
> adb shell ls -ld /data/data/com.android.settings/a
     drwxrwxrwx system system    a
1-4. テンポラリファイル削除
> adb shell $ cd /data/data/com.android.settings
$ rm -r a
1-5. ディレクトリ/dataの権限変更
手順1-4の続き
$ while : ; do ln -s /data a/file99; done
1-6. 別のコマンドプロンプトを開き、リストア実行
> adb restore settings.ab
1-7. リストアが完了したらadb shellを停止させる
手順1-5のプロンプトでCtrl-C

1-8. ディレクトリの権限を確認
> adb shell ls -ld /data
     drwxrwxrwx system system    data
//3-1でVpnDialogsが表示されなくて、数回繰り返していたらディレクトリの権限が変更されていないことが度々あったが、コマンドプロント閉じて解凍したファイルを消し再度解凍して行ったら出来た。
2. 端末エミュレータを仕込む

2-1. ファイルの展開
> adb push busybox /data/local/tmp
> adb push rootkit.tar.gz /data/local/tmp
//Superuser.apkとsuも同じディレクトリにpushしておく
> adb shell $ cd /data/local/tmp $ chmod 755 busybox
$ ./busybox tar zxf rootkit.tar.gz
2-2. /data/systemをshellユーザで作成
手順2-1の続き
$ cd /data
$ /data/local/tmp/busybox cp -r system system2
$ /data/local/tmp/busybox find system2 -type f -exec chmod 666 {} \;
$ /data/local/tmp/busybox find system2 -type d -exec chmod 777 {} \;
$ mv system system-
$ mv system2 system
2-3. /data/appもshellユーザで作成
手順2-2の続き
$ mv app app-
$ mkdir app
2-4. VpnFaker.apkを/data/appに配置
手順2-3の続き
$ mv /data/local/tmp/VpnFaker.apk /data/app
//2-8後VpnDialogsのアイコンが表示されなかったのでadb pushで/data/appに突っ込み、パーミッションを644に変更したら表示された。
2-5. タイムスタンプの確認(重要)
手順2-4の続き
$ TZ=0 ls -l /data/app -rw-r--r-- shell shell 198580 2012-08-27 00:00 VpnFaker.apk
2-6. packages.xmlを生成
手順2-5の続き
$ /data/local/tmp/busybox sed -f /data/local/tmp/packages.xml.sed system-/packages.xml > system/packages.xml
2-7. packages.xmlの確認
手順2-6の続き
$ /data/local/tmp/busybox grep vpndialogs system/packages.xml
     
     
(手順2-5のタイムスタンプが異なっていた場合、"1396560b400"の値を調整する)
2-8. 再起動する
別のコマンドプロンプトから
> adb reboot
端末エミュレータの仕込が成功すると「Androidをアップグレードしています」の様なダイアログが表示される。

3. root権限取得

3-1. 端末エミュレータを起動
端末上からアプリVpnDialogs(ドロイド君アイコン)を起動
もしくは
> adb shell am start -n com.android.vpndialogs/.Term
3-2. 実行権限の確認
手順3-1の続き
$ id
uidが1000(system)になっている

3-3. /devにrootシェル作成
手順3-2の続き
$ /data/local/tmp/onload.sh
このエラーは無視して良いとのこと。//chmodのエラーが出たので、1をやり直して手動でパーミッションを変更した。3-4も同様。
3-4. /dataの再マウント
手順3-3の続き
$ /data/local/tmp/onload2.sh
3-5. adbでroot権限を取得
> adb shell
$ /dev/sh # id
uidは2000(shell)になっている

3-6. rootシェル作成
手順3-5の続き
# chown 0.0 /data/local/tmp/_su
# chmod 6755 /data/local/tmp/_su
# exit
$ exit
3-7. rootシェル実行
> adb shell $ /data/local/tmp/_su
//ここでsu: permission deniedと表示されたので、3-6のchmodの直後に実行したら出来た。
# id
uidが0(root)になっている

3-8. /systemの変更前にバックアップを作成
手順3-7の続き
# dd if=/dev/block/mmcblk0p3 of=/mnt/sdcard/system.ext4 bs=128K
3-9. rootシェルのインストール
手順3-8の続き
# /data/local/tmp/busybox mount -o rw,remount /system
# /data/local/tmp/busybox cp /data/local/tmp/_su /system/xbin
# chown 0.0 /system/xbin/_su
# chmod 6755 /system/xbin/_su
# /data/local/tmp/busybox mount -o ro,remount /system
# sync
# exit
//_suはadb shell専用のrootシェルでSuperuserを必要としないとのこと。_suではなくてsuをインストールして、Superuser.apkを/system/appに突っ込んでもいいと思う。

3-10. /systemのrootシェルの動作確認
手順3-9の続き
$ _su
# id
uidが0(root)になっている事を確認

4. 後始末

4.1. /data/appの後始末
> adb shell
$ _su
# cd /data
# /data/local/tmp/busybox cp -p app/VpnFaker.apk app-/VpnFaker.apk
# mv app app2
# mv app- app
4.2. /data/systemの後始末
手順4-2の続き
# /data/local/tmp/busybox sed -f /data/local/tmp/packages.xml.sed system-/packages.xml > system-/packages.xml.2
# mv system-/packages.xml system-/packages.xml-
# chown 1000.1000 system-/packages.xml.2
# chmod 644 system-/packages.xml.2
# mv system-/packages.xml.2 system-/packages.xml
# mv system system2
# mv system- system
4.3. 再起動する
別のコマンドプロンプトから
> adb reboot
これでいつでもadb shellから_suでroot権限が取得出来ます。
また、アプデでsuidビットを落とされ、unrootされた時もVpnDialogsの端末エミュレータが残っていれば
手順3の実行で再度root権限が取得出来る可能性があります。

コメント

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. xdaのバッチ問題なくroot化できました。
    書いてあるままで、それ以外の作業は必要ないようです

    返信削除
  3. underfish さん
    おお、そうですか!
    情報有り難うございます。

    返信削除
  4. みなさま、初めまして。
    ソニタブ関連記事を探していいたら、ここへたどり着きました。

    xdaのファイルについて質問があります。
    device type はそれを選べばよいでしょうか?
    Tablet S で良いでしょうか?

    教えて頂けると、幸いです。

    よろしくお願いします。

    返信削除
  5. けんあり さん
    Tablet Sで良いはずです。

    返信削除
  6. procyonさん
    すみません、ご回答ありがとうございます。

    TabletSで試してみます!
    ありがとうございました。

    返信削除

コメントを投稿

このブログの人気の投稿

MacBook Pro 2016を4度目の修理に出す 〜TouchBar無限点滅編〜

MacBook Pro 2016 15インチを4度目の修理に出しました。 今まで出した修理は3回ともキーボードの故障でしたが、今回はTouchBarが故障しました。 どのような状態だったかは動画を撮ってあるので見てください。 10秒以降、激しく点滅するので注意。 で、まあ1年は過ぎていましたが、Apple Careに加入していたので無料での修理でした。 トップケースごとの交換だったので4度目のバッテリー交換となりました。

M1 MacでWineskinServerを使ってWindows版Steamを動かす

【2023/11/07追記】 「Engine:WS11WineCX64Bit23.6.0_D3DMetal-v1.0、Wrapper:Wineskin-2.9.2.0」にてブラウザが読み込まれることを確認しました。Steamの導入はWinetricksから行いました。fakejapaneseは多分入れておいた方がいい。 WineSkinServerの導入は  無料でWin32/64アプリがBig Surで動作! Apple M1も対応の「WineskinServer」 などを参照してください。 しかし、上記の記事を読んでSteamをインストールしてもブラウザが読み込まれないので何もできません。 まず、インストール時に日本語が豆腐になるので、先にfakejapaneseを導入しておくと楽です。 また、ブラウザが読み込まれず何も表示されない件はAdvancedのWindows EXEの欄に "C:\Program Files (x86)\Steam\steam.exe" -no-browser +open steam://open/minigameslist と入力して起動オプションを設定すると、購入済みのゲームライブラリが表示されます。

Rootless Pixel Launcherを弄ってRakuten Miniでも壁紙を設定できるようにした

通常の方法では壁紙が変更できないRakuten Miniですが、 ウィジェットを使って疑似的に壁紙を変更する方法 や、 Yahoo!きせかえ、スクエアホームなどの特殊なホームアプリを使う方法 、 別ユーザーを作成する、BL Unlockする方法 などで壁紙を変更できます。 1番目の方法はあんまりやりたくなくて、2番目は癖の強いホームアプリが多く、3番目は壁紙のためにそこまでする気は起きなかったので、シンプルなホームアプリであるAmir Zaidi氏の Rootless Pixel Launcher を弄って画像をLauncherのルートビューにbackgroundとしてセットすることで擬似的に壁紙を設定できるようにしました。 壁紙の設定方法 ホームの空いている部分を長押しすると表示される壁紙のボタンを選択するとファイラーが起動するので壁紙にしたい画像を選択してください。 注意点 壁紙に設定する画像は縦1280x横720にしてください。 大きな画像を設定すると重くなります。 ホームを複数枚に増やし、例えば2ページ目にスクロールしても壁紙はスクロールしません。 ダウンロード(Google Drive)