手元の HTC One (M7_UL) を完全に Google Play Edition にする
今更なんですが、手元の HTC One (M7_UL) を Google Play Edition にしてみようと思いました。
というのも、そろそろ、 Android 5.0 (Lollipop) の OTA が来るらしいので、今、GPEにしておけば、直ぐにアップデートできるんじゃなかろうかという思惑もあるからです。
何か、既に Google からストップがかかっているらしく、少し遅れているらしいですけど・・・。
基本的には、下記の記事に従っています:
とりあえず、ここでは、 Android SDK とか adb については説明しません。適当にインストールしてパスが通っていることが前提です。
S-OFF する
完全に Google Play Edition のふりをするためにはいろいろと弄らないといけないんですが、これには S-OFF (Security Offかな?)しないといけません。
adb が繋がっていれば(そして繋がっている Android デバイスが1台だけならば: 誤爆とか防ぐためにも作業対象の Android 端末以外は全部、外しておくべきです)、
C:\work>adb reboot-bootloader
とやれば、 HTC One がブートローダーモードで起動します。ここで、ボリュームキーで、 FASTBOOT を選択して、電源ボタンでモード変更します。
で、ここで、 fastboot というコマンドが使えるようになるはずです。
試しに、次の様に打ってみましょう:
C:\work>fastboot getvar modelid modelid: PN0710000 finished. total time: 0.004s
なんですが、 Windows 8/8.1 だと反応がない状態になると思います。そういう人は、
を参考にして頑張ってください。
あとは、 revone とか moonshine とか rumrunner とかをダウンロードしてきて、実行すれば、ほぼ自動でS-OFFできますので頑張ってください。
modelid を書き換える
さて、既に最初の記事の内容を無視しますが、ここで提供されている ROM (RUU-HTC_One_GE-2.14.1700.15.zip っていうファイル)が PN0712000 という modelid を前提にしています。
僕の持っている M7_UL だと、PN0710000 なので、最初に modelid を PN0712000 に書き換えないといけません。これには次の記事を参考にします。
PL83IMG.zip をダウンロードする
最初に下記のファイルをダウンロードします。
このファイルは、 modelid を書き換えるための一時的なROMとなります。
PL83IMG.zip を展開して、 android-info.txt を書き換える
PL83IMG.zip を展開すると、中に、android-info.txt というテキストファイルがあるのですが、コレの中の、 modelid, cidnum, mainver を現在の環境に合わせて修正します。
これら(modelid, cidnum, mainver)の値は、それぞれ、 fastboot getvar で取得します:
C:\work>fastboot getvar modelid modelid: PN0710000 finished. total time: 0.004s
C:\work>fastboot oem readcid ... (bootloader) cid: HTC__001 OKAY [ 0.013s] finished. total time: 0.013s
C:\work> fastboot getvar mainver mainver: 2.24.401.8 finished. total time: 0.003s
僕の場合は、 modelid=PN0710000, cidnum=HTC__001, mainver=2.24.401.8 でした。
なので、 android-info.txt を
modelid: PN0710000 cidnum: HTC__001 mainver: 2.24.401.8 btype:1 aareport:1 hbootpreupdate:12
のように書き換えます(改行コードはLFであることに注意)。そして、そのまま、android-info.txt, HBOOT.nb0 を圧縮して、ZIPを作り直します。ここでは、 PN0710000.zip という名前にしました(zipの名前は何でも良い)。
rebootRUU
ROM 書き換えモードに切り替えます。
C:\work>fastboot oem rebootRUU ... (bootloader) Start Verify: 0 OKAY [ 0.047s] finished. total time: 0.049s
切り替えが終わると、 HTC のロゴの画面になります。
ROM 書き換え
さっき作ったファイルで ROM を書き換えます:
C:\work>fastboot flash zip PN0710000.zip sending 'zip' (475 KB)... OKAY [ 0.246s] writing 'zip'... (bootloader) zip header checking... (bootloader) zip info parsing... (bootloader) checking model ID... (bootloader) checking custom ID... (bootloader) start image[hboot] unzipping & flushing... (bootloader) [RUU]UZ,hboot,0 (bootloader) [RUU]UZ,hboot,43 (bootloader) [RUU]UZ,hboot,99 (bootloader) [RUU]UZ,hboot,100 (bootloader) [RUU]WP,hboot,0 (bootloader) [RUU]WP,hboot,100 (bootloader) ...... Successful OKAY [ 2.227s] finished. total time: 2.477s
一度リブート
書き込んだ ROM を有効にするために、一度、再起動します。
C:\work>fastboot reboot-bootloader rebooting into bootloader... OKAY [ 0.036s] finished. total time: 0.038s
再起動後の画面がバグってないっていうと嘘ってぐらい恐ろしいことになるけど、気にしなくて良いです。
modelid の書き換え
恐ろしい画面のままでも、 fastboot は使えるはずなので、
ここで、 modelid を書き換えます。
C:\work>fastboot oem writemid PN0712000 ... (bootloader) Start Verify: 0 OKAY [ 0.079s] finished. total time: 0.080s
念のためにチェック:
C:\work>fastboot getvar modelid modelid: PN0712000 finished. total time: 0.004s
マジで modelid が書き換わってる。
cid の書き換え
同じように cid も書き換えます。
C:\work>fastboot oem writecid GOOGL001 ... (bootloader) Start Verify: 0 OKAY [ 0.018s] finished. total time: 0.019s
こっちも念のためにチェック:
C:\work>fastboot getvar cid cid: GOOGL001 finished. total time: 0.004s
Google Play Edition の ROM を焼く
これでやっと書き換えたい先の ROM に書き換えられます。
Google Play Edition事態の ROM は下記からダウンロードできます:
https://mega.co.nz/#!3cwxzAoR!cNNlvVTqzO1wTnmZLytV2mIHtrtOOFXGMyMQjH-KsIo
でこれを fastboot flash zip で書き込みます:
C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip sending 'zip' (467625 KB)... OKAY [ 17.247s] writing 'zip'... (bootloader) zip header checking... (bootloader) zip info parsing... (bootloader) checking model ID... (bootloader) start image[hboot] unzipping for pre-update check... (bootloader) start image[hboot] flushing... (bootloader) ...... Successful FAILED (remote: hboot pre-update! please flush image again immediately) finished. total time: 18.321s
ここですかさず、もう一度、同じコマンドを実行!
C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip target reported max download size of 1526722560 bytes sending 'zip' (467625 KB)... OKAY [ 19.929s] writing 'zip'... (bootloader) zip header checking... (bootloader) zip info parsing... (bootloader) checking model ID... (bootloader) checking custom ID... (bootloader) start image[adsp] unzipping & flushing... .....<省略>.... (bootloader) [RUU]WP,radio,100 (bootloader) ...... Successful OKAY [181.350s] finished. total time: 201.282s
あとは、デバイス側にブートローダーの画面が出てくるので、 REBOOT を選んで再起動すればうまく行くんじゃないでしょうか。
おしまい!あとは、何度もOTAで降ってくるアップデートをこなすだけの簡単な作業です。
2度目のコマンド入力が間に合わないと・・・・
画面が真っ暗になって・・・・何にも反応がなくなります・・・・・うきゃー
じゃなくて、とりあえず、電源とボリューム下長押しで再起動させます。
そうすると、 HBOOT の画面が表示されますので、ここで、 実機の画面で、FASTBOOT を選択して、 fastboot モードに切り替えます。
そうして、もう一度、ROM 書き換えモードに切り替えます。
C:\work>fastboot oem rebootRUU ... (bootloader) Start Verify: 0 OKAY [ 0.047s] finished. total time: 0.049s
今度こそって気持ちで、 ROM のアップデート:
C:\work>fastboot flash zip RUU-HTC_One_GE-2.14.1700.15.zip
でどうにかなります。テレビとか見ながらやってるとビックリすることになります(自分)。