Top > ZakkiCho > Htl21Rooting
Table of Contents

参照ページ

  1. HTC J butterfly : root化について (HTC速報Dev)
  2. HTC J butterfly : アンロック可能化についてまで (HTC速報Dev)
  3. 【HTC J Butterfly】 #HTL21 用のTWRPを作成してみました。 | treffen @ memo
  4. au HTL22 HTC J One / HTX21 INFOBAR A02 / HTL21 HTC J butterflyのClockworkMod Recoveryを公開しました | HTC速報
  5. 新S-OFF方法「FacePalm」をやってみた。S-OFFせずにSuperCIDに出来る機種は全て対応 (HTC速報Dev)
  6. Root Life J Butterfly用のEng hbootが公開されていた。
  7. HTCのAndroid機共通のHBOOTからの操作について (HTC速報Dev) | HTC速報
  8. [HBOOT] HBOOT-8064 Groups Engneering HBOOT - xda-developers

ダウンロード

  1. - HTC サポートセンター (Windows用USBドライバ)
  2. HTC_J_butterfly_rootkit_v1.1 (SuperCID化用)
  3. リカバリ。以下のいずれかを選択。ここではCWMを使用。
    1. TWRP based 2.5.0.0
    2. recoverycwm.img | by Fnoji - HTCsoku for Generic Device
    3. 今ではオフィシャルなCWMリカバリも出ている: http://www.clockworkmod.com/rommanager
  4. soffbin3(FacePalm)(FacePalmによるS-OFFのツール)
  5. 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に使う)
  6. HBOOT-8064_DELUXE_J_ENG_1.39.2000.nb0 | by Fnoji - HTCsoku for Generic Device (Engineering hboot)

試行した環境

  1. HTC J butterfly HTL21(以下、端末と呼ぶ)で、設定 > バージョン情報 > ソフトウェア情報 > ソフトウェアの番号 が1.15.970.1であること。
  2. 母艦PCとしてWindows PC

手順概要

手順はタイトルのとおり、 SuperCID化 > ブートローダアンロック > rooting > S-OFF の順序でおこないます。 最後におまけとしてEngineering hbootの導入も。

準備

  1. 母艦PCにUSBドライバをインストールする(2013年6月9日現在、 USBドライバのみのパッケージとHTC Sync同梱のドライバとが配布されているが、 USBドライバのみのパッケージでは、USB接続モードがHTC Syncモードの時に adbのドライバがインストールされなかったので、HTC Syncのインストールを推奨)。
  2. 端末の設定 > 電源 > 高速起動 をオフにする。
  3. 端末でUSBデバッグをオンにする。
  4. 端末を母艦PCにUSB接続する。

SuperCID化

runme.batがこのステップで行なっていることは、一時rootの取得だけです。 また、Spoof-CID.batが行なっているのは、 CIDの書いてあるパーティションをddで読んで、 それからバイナリエディタでCID部分に書き込みをし、 最後に書き換え後の内容をddで元のパーティションに書き戻すことだけです。

  1. 母艦PC上で、HTC_J_butterfly_rootkitのrunme.batを起動する。
  2. ウィンドウが開いて説明が表示されるのでよく読む。
  3. 何かのキーを押して続行する。
  4. 「同梱の 『Spoof-CID.bat』 を起動して下さい。」と表示されるので、 HTC_J_butterfly_rootkitのSpoof-CID.batを起動する。
  5. ウィンドウが開いて説明が表示されるので読む。
  6. 何かのキーを押して続行する。
  7. 確認要求が出るので確認する。
  8. 何かのキーを押して続行する。
  9. 端末がbootloaderモードになるのを待つ。
  10. 何かのキーを押して続行する。
  11. < waiting for device >と表示されるのでかなり(数十秒)待つ。
  12. 画面に表示されたcidが11111111であることを確認する。

ブートローダアンロック

htcDev.comからアンロックコードを取得

  1. ブラウザでhtcDev.comを開く。
  2. 画面右上のLoginをクリックしてログインする (いままでにログインしたことがなければ登録)。
  3. 画面右のアイコンからUnlock Bootloaderをクリックする。
  4. Get Startedをクリックする。
  5. 画面右のプルダウン ------- Select Your Device ------- で All Other Supported Modelsを選ぶ。
  6. Begin Unlock Bootloaderをクリックする。
  7. 先に進むか確認を求められるのでYesをクリックする。
  8. Legal Termsが表示されるのでチェックボックス2つにチェックして Proceed to Unlock Instructionsをクリックする。
  9. 画面に出るStep 1~4は無視してProceed to Step 5をクリックする。
  10. 同様にStep 5~7は無視してProceed to Step 8をクリックする。
  11. Step 8は無視する。
  12. SuperCID.batのウィンドウを使ってStep 9をおこなう(tokenとコピーする)。
  13. Step 10のMy Device Identifier Token欄にtokenをペーストする。
  14. Submitをクリックする。
  15. MID not allowedと表示されてだめ。
  16. Spoof-CID.batは一旦終了する(Ctrl-Cをつかう)。

(2013-06-08)

SuperCIDを11111111から22222222にする

  1. 参照ページの2の○にあるようなHTCの対策に引っかかったのだ と仮定して、SuperCIDを11111111ではなく22222222にしてやってみることにする。
  2. HTC_J_butterfly_rootkitのSpoof-CID.batをコピーして別ファイルを作る。
  3. これをSpoof-CID.11111111to22222222.batとかいう名前にして、次の箇所を改変する。
    1. 行の置き換え1。次の行
      @set KDDI_CID=[KDDI_801]
      を、次のように置き換える。
      @set KDDI_CID=[11111111]
    2. 行の置き換え2。次の行
      @set SUPER_CID=[11111111]
      を、次のように置き換える。
      @set SUPER_CID=[22222222]
    3. 行の置き換え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
    4. 改変したファイルを保存する。
  4. Spoof-CID.*.batは一時rootを必要とするので、まだ恒久rootを取っていなくて、かつ前にrunme.batを実行した後に再起動をかけていたなら、まずrunme.batを走らせて一時rootを取る。そしてSpoof-CID.batを実行するよう指示されたら次へ。
  5. 改変したバッチSpoof-CID.11111111to22222222.batを実行する。
  6. 前と同様にhtcDev.comにtokenをペーストするところまでおこなう。
  7. うまくいくと、htcDev.comのログインIDの登録の際に一緒に登録した メールアドレスにhtcDevからUnlock_code.binが添付されたメールが届く。

ブートローダアンロックの操作

  1. 届いたメール上のリンク Click here to continue ... をクリックする。
  2. HTC_J_butterfly_rootkitを置いたフォルダ(runme.batのあるフォルダ)に、 添付ファイルUnlock_code.binを置く。
  3. Spoof-CID.11111111to22222222.batの画面で何かのキーを押す。
  4. 端末に、アンロックするかどうかの確認画面が出るので、 端末のvolup/voldownキーを使ってYESを選択したら、電源ボタンを押して決定する。
  5. 端末が再起動するので、何かのキーを2度押してSpoof-CID.11111111to22222222.batを 終了する。

アンロックの後始末

  1. 端末の設定 > 電源 > 高速起動をオフにする。
  2. 端末でUSBデバッグをオンにする。

バックアップ

  1. あとの操作は手動でやりたいので、runme.batの画面でCtrl-Cを押して終了する。
  2. 端末をfastbootモードにして母艦PCに接続する。
  3. 次のコマンドを実行してCWMリカバリを起動する(お好みでTWRPでも)。
    fastboot boot リカバリのファイル名.img
  4. CWMのメニューからbackup and restore > backup to external sdcard を選んで バックアップをする。これでストックなROMのイメージがいちおう取れたことになる。
  5. CWMのメニューからreboot system nowを選ぶ。

rooting

  1. 端末の電源を切ってfastbootモードにする。
  2. 母艦PCから次のコマンドを実行してTWRPリカバリをリカバリ領域に書き込む (お好みでCWMでも)。
    fastboot flash recovery twrp250-dlxj.img
  3. 端末のfastbootモードメニューからREBOOT BOOTLOADERをする。
  4. 端末のfastbootモードメニューからBOOTLOADERを選ぶ。
  5. 端末のhbootモードメニューからRECOVERYを選ぶ。
  6. TWRPのメニューからInstallを選ぶ。
  7. Superuserの.zipファイルを選ぶ。
  8. 画面下部のレバーをスワイプして実行する。
  9. メニューからReboot Systemを選んで再起動する。
  10. adb shellで端末に入ってsuしてみる。#プロンプトが出ればおk。

FacePalmによるS-OFF

  1. 端末をfastbootモードで起動。
  2. 次のコマンドを実行。
    fastboot oem rebootRUU
  3. 端末の画面が真っ暗になってからhtcロゴが出たら次のコマンドを実行。
    fastboot flash zip (RUUイメージの名前).zip
  4. ここでなにも進行状況がみえないままかなり(数分~十数分)待たされるがじっと待つ。
  5. 母艦PCに次のエラーが出て、端末の画面が一旦消え再びhtcロゴが出る。
    FAILED (remote: 92 supercid! please flush image again immediately)
  6. そうしたら次のコマンドを実行する。
    fastboot oem boot
  7. 母艦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"
  8. 参照ページにあるような、Superuserの確認ダイアログは出なかった。
  9. 端末をfastbootモードで再起動。
    adb reboot bootloader
  10. 画面上部の表示がS-OFFとなっていることを確認。

(2013-06-09)

systemのrwマウント可能化

HTL21はS-OFFしてもなぜか/systemを書き込み可能でマウントできない。これはmountコマンドがtoolboxへのシンボリックリンクになっており、toolbox内蔵のmountが/systemをrwマウントすることができないからである。そこで、このシンボリックリンクを消してbusyboxをインストールすればよい。私は次のようにした。

  1. 上で使ったいずれかのツールが残したtoolboxをmountコマンドとして使えるようにする。
    adb shell ln -s /data/local/toolbox /data/local/mount
  2. それを使って/systemをrwマウント
    adb shell /data/local/mount -remount,rw /dev/block/mmcblk0p32 /system
  3. Play StoreからBusyboxインストーラアプリ(stericson推奨)をインストールして実行し、 busyboxを/system/xbinにインストール。

(2013-08-18)

おまけ:Engineering Hbootの導入

  • 参照ページの6にあるとおり、hbootが正しく書き込まれないと、fastbootモードもリカバリも起動できなくなる(即ち真の文鎮化)ので、ケアレスミスのないよう注意深く。
  • ship hbootが入っている状態では、参照ページの6の手順で hbootパーティションを書き換えることはできないようだ。 次のようにhbootだけのRUUを自作して焼いたらできた。
  1. android-info.txt(自作RUUのマニフェストみたいなもの)を次の内容でつくる。
    modelid: PL9910000
    cidnum: KDDI_801
    mainver: 1.15.970.1
    hbootpreupdate:12
    DelCache:1
  2. これとhbootのイメージで.zipファイルをつくる。
    zip hboot.zip android-info.txt HBOOT-8064_DELUXE_J_ENG_1.39.2000.nb0
  3. 端末を母艦PCにUSB接続する。
  4. 端末をfastbootモードで起動する
    adb reboot bootloader
  5. RUUモードを起動する。
    fastboot oem rebootRUU
  6. 黒背景にHTCロゴが出るまで待つ。
  7. 上でつくった.zipファイルを書き込む。
    fastboot flash zip hboot.zip
  8. 端末の画面にプログレスバーが出て途中で止まるが、 母艦側ではコマンドはリターンしてプロンプトが出る。
  9. fastbootモードへリブート。
    fastboot reboot-bootloader
  10. 画面最上行が DELUXE_J PVT ENG S-OFF となっていることを確認。

おまけ2:ModelIDの書き換え

ModelID書き換えの効用については 参照ページの2のサブツリーを御覧ください

  1. ModelIDの書き換えをするにはEngineering HBootが必要ですので 先にそれをやっておいて下さい。
  2. 端末をfastbootモードにする。
  3. ModelIDの書き換え
    fastboot oem writemid PL9910***
  4. fastbootモードへリブート。
    fastboot reboot-bootloader
  5. fastbootモード画面のhbootのバージョンが HBOOT-1.39.2000 (PL9910***) となっていることを確認。

(2013-06-14)

1.29.970.1へのOTA

  1. rootedな状態でOTAをするには、リカバリを標準のものに戻す必要がある。 バックアップの項で取ったNANDバックアップにrecovery.imgが含まれているはずなので OTAに先立ってこれを書き戻す。端末をfastbootモードにして母艦PCで次のコマンドを実行。
    fastboot flash recovery recovery.img
  2. 次にOTAを適用。端末で 設定 > バージョン情報 > ソフトウェア アップデート > 今すぐチェック を選ぶ。
  3. ダイアログが出るので 今すぐインストール にチェックしOK。これでOTA適用が始まる。
  4. OTAによって次の影響がある。
    • suバイナリが消される(Superuser.apkは残っている)。
    • Engineering hbootが通常の(Ship)hbootで上書きされる。
    • ブートローダアンロック、CIDの変更(SuperCID)、S-OFF、およびModelIDの変更は 維持される。
  5. リカバリをCWM(またはお好みでTWRP)にする。fastbootモードで、
    fastboot flash recovery リカバリイメージファイル名.img
  6. suバイナリを元に戻す。リカバリからSuperSU(又はお好みで他のsuperuserアプリ)の zipを適用すればよいだろう。
  7. 一旦リブートしてrootが取れていることを確認したほうがよいかもしれない。
  8. 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