ジャンル不定の日記です。

ISW12HTのS-OFFできた

夕方にISW12HTのS-OFFをしようとして一時rootができず断念したが、今やったらできた。
Xubuntu 16.04LTSでやった。

日本語情報だと、どこのサイトでも Windowsで"EVO_3D_S-OFF_Helper"というツールを使ってやっているが、
Windowsは10しか持っていないのでドライバのインストールが難しいのではないかと判断して Xubuntu のLiveUSB でやった。
メイン機が Arch Linux なので64bitのLinuxでできれば楽なのだが、32bitのLinuxでないとダメらしい。

http://unlimited.io/
上記サイトの配信している"JuopunutBear"という作業を行うことで"S-OFF"ができる。
標準の状態ではsystemやbootの書き換えができないが、S-OFFすることによってできるとのこと。
だが、S-OFF以外にHTCdevというHTC公式でUnlock Bootloaderが提供されていたのでS-OFFしないでそっちでも良かったぽい。
HTCdevでのUnlock Bootloaderだとbootとsystemは書き換えられるらしいがS-OFFだと他の領域も書き換えられるとのこと。

ISW12HT用のJuopunutBearは、http://unlimited.io/jb_shooterk.htmに記載されている。
前提条件として一時rootを取得する必要がある。
一時rootの取得方法はISW12HTのAndroidバージョンが2.3(Gingerbread)の場合と4.0(Ice Cream Sandwich)の場合で違う。
自分の場合は4.0.3だった。

上記サイトの提供している"ControlBear"というコマンドを使う必要うが、バックアップするみたいで2GB以上のmicroSDが必要。
microSDは中身消えるみたいなので消えていいやつを使う。

作業中に"Wire Trick"という作業を行う。

ワイヤーでハード的にショートさせる作業。
ゼムクリップでやったが、クリップ先端が刺さっているところに穴が2つあるが外側の穴が目的の端子。
もう片方はGNDにつなぐがmicroSDソケット全体がGNDなのでそこに繋ぐ。
事前に確認して準備をしておく。

一時rootはEVO_3D_S-OFF_Helperの.batファイルがやっていることを真似したができなかった。
http://gadget.takoweb.com/adb-restore-xoom-root/
上記サイトはF-10Dのroot化の情報だが、わかりやすかったのでここを参考にやった。
ICS(4.0)なら同じ方法でどの機種でもできそうな感じ。
.abファイルが必要だが、EVO_3D_S-OFF_Helperに同梱されていたfakebackup.abを利用した。別機種用でも同じじゃないかと思う。
2.3の人は同じ方法で一時rootが取得できないと思いますので他所で調べてください。(2.3の方が簡単そうではある)


以下作業手順

[デバイスの準備]
カバーを開けてmicroSDを装着
起動してUSBデバッグを有効にしてPCと接続。

[adbとfastbootを準備(作業はXubuntuでやってる)]
$ sudo apt-get install android-tools-adb android-tools-fastboot
$ adb devices
もしdeviceが見つからなかったら、
$ sudo adb kill-server
$ sudo adb devices
で見つかるかも。
全部sudoの方が確実かもしれん。

[一時root取得]
$ adb shell "while ! ln -s /data/local.prop /data/data/com.android.settings/a/file99; do :; done"
上記コマンドは無限ループだが「link failed File exists」と表示されまくる。
もう一個コンソールを開いて、fakebackup.abのあるディレクトリに行き、
$ adb restore fakebackup.ab
このコマンドを実行するとデバイス側で復元用の画面が表示されるので「データを復元する」を押すと復元が始まるので終了するまで待つ。
このコマンドを実行すると /data/data/com.android.settings/a/ 以下にfile00からfile99が作成される。
$ adb shell ls -l /data/local.prop
/data/local.propが存在することを確認する。
無かったら失敗してる。
$ adb reboot
再起動すると正常起動せず操作できない状態だが、root権限が取得できてる状態になってる。(adb shellするとプロンプトが#になってる。)

[ControlBear]
$ adb shell "echo 'ro.kernel.qemu=1' > /data/local.prop"
$ adb reboot
adbをqemuモードにする必要があるらしいのでlocal.propを書き換えてまた再起動。
母艦側はControlBearのディレクトリに移動して、
$ sudo ./ControlBear
エラーがでなければWire Trickを即すメッセージが連続で出るので物理的にショートさせるが、1回ショートさせて1.5秒後に再ショートさせるとのこと。
うまく行かなかったら1.25秒でやれとのこと。
まあ、アバウトにやったら一発でできた。

成功するとデバイスは何度も再起動連発して、最後にHBOOTモードで起動する。
母艦側はinstalledで終わる。


[通常起動]
$ adb shell rm /data/local.prop
$ adb reboot
local.propを削除しないと正常に起動しない。
デバイスで直接HBOOTモードで起動するにはシャットダウン状態から「音量↓+電源」だが、電池はずさないと完全シャットダウンしないみたいでAndroid上で普通に電源OFFしてもダメ。


あとはカスタムROM導入したり自分で作ったりしたりしていじりたい。
まだ試してないがSC-02Cと違ってfastbootが利用できるようなのでROM焼き等はfastbootでやれば良さそう。
他人の作ったカスタムROM使う分にはSC-02C(GALAXY S II)の方が普及してる分良さそうだが、fastbootがないと直接bootができないから自作するならISW12HTのが楽そう。

まずは純正ROMのバックアップも必要だしカスタムリカバリの導入かな。
明日にでもやってみる。