参照ページ
- HTC J butterfly : root化について (HTC速報Dev)
- HTC J butterfly : アンロック可能化についてまで (HTC速報Dev)
- 【HTC J Butterfly】 #HTL21 用のTWRPを作成してみました。 | treffen @ memo
- au HTL22 HTC J One / HTX21 INFOBAR A02 / HTL21 HTC J butterflyのClockworkMod Recoveryを公開しました | HTC速報
- 新S-OFF方法「FacePalm」をやってみた。S-OFFせずにSuperCIDに出来る機種は全て対応 (HTC速報Dev)
- Root Life J Butterfly用のEng hbootが公開されていた。
- HTCのAndroid機共通のHBOOTからの操作について (HTC速報Dev) | HTC速報
- [HBOOT] HBOOT-8064 Groups Engneering HBOOT - xda-developers
ダウンロード
- - HTC サポートセンター (Windows用USBドライバ)
- HTC_J_butterfly_rootkit_v1.1 (SuperCID化用)
- リカバリ。以下のいずれかを選択。ここではCWMを使用。
- TWRP based 2.5.0.0
- recoverycwm.img | by Fnoji - HTCsoku for Generic Device
- 今ではオフィシャルなCWMリカバリも出ている: http://www.clockworkmod.com/rommanager
- soffbin3(FacePalm)(FacePalmによるS-OFFのツール)
- PL99IMG_DLX_WLJ_JB_45_KDDI_JP_1.15.970.1_R_Radio_1.00.10.1127_3_NV_2.28_01C_release_signed.zip | by Fnoji - HTCsoku for Generic Device(.zip形式のRUU。S-OFFに使う)
- HBOOT-8064_DELUXE_J_ENG_1.39.2000.nb0 | by Fnoji - HTCsoku for Generic Device (Engineering hboot)
試行した環境
- HTC J butterfly HTL21(以下、端末と呼ぶ)で、設定 > バージョン情報 > ソフトウェア情報 > ソフトウェアの番号 が1.15.970.1であること。
- 母艦PCとしてWindows PC
手順概要
手順はタイトルのとおり、
SuperCID化 > ブートローダアンロック > rooting > S-OFF
の順序でおこないます。
最後におまけとしてEngineering hbootの導入も。
準備
- 母艦PCにUSBドライバをインストールする(2013年6月9日現在、
USBドライバのみのパッケージとHTC Sync同梱のドライバとが配布されているが、
USBドライバのみのパッケージでは、USB接続モードがHTC Syncモードの時に
adbのドライバがインストールされなかったので、HTC Syncのインストールを推奨)。
- 端末の設定 > 電源 > 高速起動 をオフにする。
- 端末でUSBデバッグをオンにする。
- 端末を母艦PCにUSB接続する。
SuperCID化
runme.batがこのステップで行なっていることは、一時rootの取得だけです。
また、Spoof-CID.batが行なっているのは、
CIDの書いてあるパーティションをddで読んで、
それからバイナリエディタでCID部分に書き込みをし、
最後に書き換え後の内容をddで元のパーティションに書き戻すことだけです。
- 母艦PC上で、HTC_J_butterfly_rootkitのrunme.batを起動する。
- ウィンドウが開いて説明が表示されるのでよく読む。
- 何かのキーを押して続行する。
- 「同梱の 『Spoof-CID.bat』 を起動して下さい。」と表示されるので、
HTC_J_butterfly_rootkitのSpoof-CID.batを起動する。
- ウィンドウが開いて説明が表示されるので読む。
- 何かのキーを押して続行する。
- 確認要求が出るので確認する。
- 何かのキーを押して続行する。
- 端末がbootloaderモードになるのを待つ。
- 何かのキーを押して続行する。
- < waiting for device >と表示されるのでかなり(数十秒)待つ。
- 画面に表示されたcidが11111111であることを確認する。
ブートローダアンロック
htcDev.comからアンロックコードを取得
- ブラウザでhtcDev.comを開く。
- 画面右上のLoginをクリックしてログインする
(いままでにログインしたことがなければ登録)。
- 画面右のアイコンからUnlock Bootloaderをクリックする。
- Get Startedをクリックする。
- 画面右のプルダウン ------- Select Your Device ------- で
All Other Supported Modelsを選ぶ。
- Begin Unlock Bootloaderをクリックする。
- 先に進むか確認を求められるのでYesをクリックする。
- Legal Termsが表示されるのでチェックボックス2つにチェックして
Proceed to Unlock Instructionsをクリックする。
- 画面に出るStep 1~4は無視してProceed to Step 5をクリックする。
- 同様にStep 5~7は無視してProceed to Step 8をクリックする。
- Step 8は無視する。
- SuperCID.batのウィンドウを使ってStep 9をおこなう(tokenとコピーする)。
- Step 10のMy Device Identifier Token欄にtokenをペーストする。
- Submitをクリックする。
- MID not allowedと表示されてだめ。
- Spoof-CID.batは一旦終了する(Ctrl-Cをつかう)。
(2013-06-08)
SuperCIDを11111111から22222222にする
- 参照ページの2の○にあるようなHTCの対策に引っかかったのだ
と仮定して、SuperCIDを11111111ではなく22222222にしてやってみることにする。
- HTC_J_butterfly_rootkitのSpoof-CID.batをコピーして別ファイルを作る。
- これをSpoof-CID.11111111to22222222.batとかいう名前にして、次の箇所を改変する。
- 行の置き換え1。次の行
@set KDDI_CID=[KDDI_801]
を、次のように置き換える。
@set KDDI_CID=[11111111]
- 行の置き換え2。次の行
@set SUPER_CID=[11111111]
を、次のように置き換える。
@set SUPER_CID=[22222222]
- 行の置き換え3。次の行
hexalter mmcblk0p5MOD 0x014=0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31>NUL 2>&1
を、次のように置き換える。
hexalter mmcblk0p5MOD 0x014=0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32>NUL 2>&1
- 改変したファイルを保存する。
- Spoof-CID.*.batは一時rootを必要とするので、まだ恒久rootを取っていなくて、かつ前にrunme.batを実行した後に再起動をかけていたなら、まずrunme.batを走らせて一時rootを取る。そしてSpoof-CID.batを実行するよう指示されたら次へ。
- 改変したバッチSpoof-CID.11111111to22222222.batを実行する。
- 前と同様にhtcDev.comにtokenをペーストするところまでおこなう。
- うまくいくと、htcDev.comのログインIDの登録の際に一緒に登録した
メールアドレスにhtcDevからUnlock_code.binが添付されたメールが届く。
ブートローダアンロックの操作
- 届いたメール上のリンク Click here to continue ... をクリックする。
- HTC_J_butterfly_rootkitを置いたフォルダ(runme.batのあるフォルダ)に、
添付ファイルUnlock_code.binを置く。
- Spoof-CID.11111111to22222222.batの画面で何かのキーを押す。
- 端末に、アンロックするかどうかの確認画面が出るので、
端末のvolup/voldownキーを使ってYESを選択したら、電源ボタンを押して決定する。
- 端末が再起動するので、何かのキーを2度押してSpoof-CID.11111111to22222222.batを
終了する。
アンロックの後始末
- 端末の設定 > 電源 > 高速起動をオフにする。
- 端末でUSBデバッグをオンにする。
バックアップ
- あとの操作は手動でやりたいので、runme.batの画面でCtrl-Cを押して終了する。
- 端末をfastbootモードにして母艦PCに接続する。
- 次のコマンドを実行してCWMリカバリを起動する(お好みでTWRPでも)。
fastboot boot リカバリのファイル名.img
- CWMのメニューからbackup and restore > backup to external sdcard を選んで
バックアップをする。これでストックなROMのイメージがいちおう取れたことになる。
- CWMのメニューからreboot system nowを選ぶ。
rooting
- 端末の電源を切ってfastbootモードにする。
- 母艦PCから次のコマンドを実行してTWRPリカバリをリカバリ領域に書き込む
(お好みでCWMでも)。
fastboot flash recovery twrp250-dlxj.img
- 端末のfastbootモードメニューからREBOOT BOOTLOADERをする。
- 端末のfastbootモードメニューからBOOTLOADERを選ぶ。
- 端末のhbootモードメニューからRECOVERYを選ぶ。
- TWRPのメニューからInstallを選ぶ。
- Superuserの.zipファイルを選ぶ。
- 画面下部のレバーをスワイプして実行する。
- メニューからReboot Systemを選んで再起動する。
- adb shellで端末に入ってsuしてみる。#プロンプトが出ればおk。
FacePalmによるS-OFF
- 端末をfastbootモードで起動。
- 次のコマンドを実行。
fastboot oem rebootRUU
- 端末の画面が真っ暗になってからhtcロゴが出たら次のコマンドを実行。
fastboot flash zip (RUUイメージの名前).zip
- ここでなにも進行状況がみえないままかなり(数分~十数分)待たされるがじっと待つ。
- 母艦PCに次のエラーが出て、端末の画面が一旦消え再びhtcロゴが出る。
FAILED (remote: 92 supercid! please flush image again immediately)
- そうしたら次のコマンドを実行する。
fastboot oem boot
- 母艦PCに長々とメッセージが出るが端末は普通に起動するので、
次のコマンドでsoffbin3(FacePalm)を実行。
adb push soffbin3 /data/local/tmp/
adb shell chmod 744 /data/local/tmp/soffbin3
adb shell su -c "/data/local/tmp/soffbin3"
- 参照ページにあるような、Superuserの確認ダイアログは出なかった。
- 端末をfastbootモードで再起動。
adb reboot bootloader
- 画面上部の表示がS-OFFとなっていることを確認。
(2013-06-09)
systemのrwマウント可能化
HTL21はS-OFFしてもなぜか/systemを書き込み可能でマウントできない。これはmountコマンドがtoolboxへのシンボリックリンクになっており、toolbox内蔵のmountが/systemをrwマウントすることができないからである。そこで、このシンボリックリンクを消してbusyboxをインストールすればよい。私は次のようにした。
- 上で使ったいずれかのツールが残したtoolboxをmountコマンドとして使えるようにする。
adb shell ln -s /data/local/toolbox /data/local/mount
- それを使って/systemをrwマウント
adb shell /data/local/mount -remount,rw /dev/block/mmcblk0p32 /system
- Play StoreからBusyboxインストーラアプリ(stericson推奨)をインストールして実行し、
busyboxを/system/xbinにインストール。
(2013-08-18)
おまけ:Engineering Hbootの導入
- 参照ページの6にあるとおり、hbootが正しく書き込まれないと、fastbootモードもリカバリも起動できなくなる(即ち真の文鎮化)ので、ケアレスミスのないよう注意深く。
- ship hbootが入っている状態では、参照ページの6の手順で
hbootパーティションを書き換えることはできないようだ。
次のようにhbootだけのRUUを自作して焼いたらできた。
- android-info.txt(自作RUUのマニフェストみたいなもの)を次の内容でつくる。
modelid: PL9910000
cidnum: KDDI_801
mainver: 1.15.970.1
hbootpreupdate:12
DelCache:1
- これとhbootのイメージで.zipファイルをつくる。
zip hboot.zip android-info.txt HBOOT-8064_DELUXE_J_ENG_1.39.2000.nb0
- 端末を母艦PCにUSB接続する。
- 端末をfastbootモードで起動する
adb reboot bootloader
- RUUモードを起動する。
fastboot oem rebootRUU
- 黒背景にHTCロゴが出るまで待つ。
- 上でつくった.zipファイルを書き込む。
fastboot flash zip hboot.zip
- 端末の画面にプログレスバーが出て途中で止まるが、
母艦側ではコマンドはリターンしてプロンプトが出る。
- fastbootモードへリブート。
fastboot reboot-bootloader
- 画面最上行が DELUXE_J PVT ENG S-OFF となっていることを確認。
おまけ2:ModelIDの書き換え
ModelID書き換えの効用については
参照ページの2のサブツリーを御覧ください
- ModelIDの書き換えをするにはEngineering HBootが必要ですので
先にそれをやっておいて下さい。
- 端末をfastbootモードにする。
- ModelIDの書き換え
fastboot oem writemid PL9910***
- fastbootモードへリブート。
fastboot reboot-bootloader
- fastbootモード画面のhbootのバージョンが HBOOT-1.39.2000 (PL9910***)
となっていることを確認。
(2013-06-14)
1.29.970.1へのOTA
- rootedな状態でOTAをするには、リカバリを標準のものに戻す必要がある。
バックアップの項で取ったNANDバックアップにrecovery.imgが含まれているはずなので
OTAに先立ってこれを書き戻す。端末をfastbootモードにして母艦PCで次のコマンドを実行。
fastboot flash recovery recovery.img
- 次にOTAを適用。端末で 設定 > バージョン情報 > ソフトウェア アップデート > 今すぐチェック を選ぶ。
- ダイアログが出るので 今すぐインストール にチェックしOK。これでOTA適用が始まる。
- OTAによって次の影響がある。
- suバイナリが消される(Superuser.apkは残っている)。
- Engineering hbootが通常の(Ship)hbootで上書きされる。
- ブートローダアンロック、CIDの変更(SuperCID)、S-OFF、およびModelIDの変更は
維持される。
- リカバリをCWM(またはお好みでTWRP)にする。fastbootモードで、
fastboot flash recovery リカバリイメージファイル名.img
- suバイナリを元に戻す。リカバリからSuperSU(又はお好みで他のsuperuserアプリ)の
zipを適用すればよいだろう。
- 一旦リブートしてrootが取れていることを確認したほうがよいかもしれない。
- Engineering hbootを書き込む。手順は最初にやった時と同じ。
(2013-08-18)
Tag: Google Android HTC au KDDI HTL21 HTC J Butterfly CID SuperCID ブートローダアンロック rooting S-OFF Eng hboot Engineering hboot ModelID MID