endeavor-ruu

HTC機のカスタマイズを行っていると、時々動作が不安定になったり起動が不可能になる場合があります。

そんなHTC機を完全工場出荷状態に戻すソフトウェアがRomUpdateUtility、略してRUUです。

このソフトウェア自体は、通常はHTCの修理センターで利用されている物なので一部のUSA向けモデル、DeveloperEditionの例外を除いて基本的にはHTCから公式配布はされませんが、流出品などが公開されています。

SamsungのodinやSonyMobile向けのftfと似た様な物と考えて貰っても大丈夫ですが、これらよりも適用までにチェックが数多くありますので、チェック内容や適用方法等を以下に記載したいと思います。

(最終更新2014/10/30)

RUU適用可能環境

RUUは各チェックがクリア出来ると適用されるような仕組みになっており、大まかに出来る出来ないを記載すると以下の通りになります。(例外アリ)

  • HTCDevでのBootloaderUnlockを行っていない状態(LOCKED) →  可能  (※現在のソフトウェアバージョンより上の物、暗号化RUUを利用の場合2014モデルでは同一バージョンのみ)
  • HTCDevでのBootloaderUnlockを行った後、再度ロック掛けた状態(RELOCKED) → 可能 (※現在のソフトウェアバージョンより上の物のみ、暗号化RUU利用の場合2014モデルでは同一バージョンのみ)
  • BootloaderUnlockを行った状態(UNLOCKED) → 不可
  • S-OFF状態 → 可能(※UNLOCKED/LOCKED/RELOCKED、どの状態・どのバージョンでも可)

基本的には上記で間違い無いのですが、殆ど確認されませんが機種や端末の状況によって例外が数点有ります。

  • 本体に搭載されているHBOOTが古いため新RUUの暗号化ファイル複合化に対応していない
  • 現在機種に搭載しているHBOOTが同プラットフォームの他機種の物(例:HTC J OneとHTC One)で、適用しようとしているRUUの暗号化を解けない状態

この状態に引っかかった場合はHBOOTをアップデートした後にインストールすると問題なく適用可能となります。

S-OFF等の詳細は以下のHBOOTについて書いたページを参考にして下さい。

RUUzipの構成

 – ファイル名の情報

まずファイル名の判断からです。(OTAファイルでも同様)

PN07IMG_M7_WLJ_K44_SENSE55_MR_KDDI_JP

3.13.970.12_Radio_1.24.11.0617_NV_KDDI_3.39_01C

release_387878_signed_2.zip

この場合、以下のような構成となります。

  1. PN07IMG → シリーズのRUU読み込み名
  2. M7_WLJ → コードネーム
  3. K44 → OS情報
  4. SENSE55 → Sense情報
  5. MR → 不明(誰か教えて!)
  6. KDDI_JP → 投入キャリア・地域情報
  7. 3.13.970.12 → バージョン情報
  8. Radio_1.24.11.0617 → ベースバンドバージョン情報
  9. NV_KDDI_3.39_01C → PRIバージョン情報
  10. release → 公開情報
  11. 387878 → ROMビルドID

希望のRUUを入手したい場合は、大体コードネームとバージョン情報で検索するとHitしたりしますね。

 – RUUzip本体について

HTCから配布が行われるRUUは過去ではexe形式(後述していますが)が一般的でした。

しかし昨今では、恐らくWindows 8でのHTCデバイスとのFASTBOOT接続問題やダウングレードバグ問題などを含めてその対策が行われ、ほぼexeから取り出した「rom.zip」のまま配布が行われています。

基本的に流出し、配布されているzipは”signed.zip(Main RUU)”、”combined_signed.zip (Main RUU ver2)”、”partial.zip”、”signed_Hboot.zip”の4つが現状です。

各zipを展開すると次のような構成になります。

  1. android-info.txt
  2. その他imgファイルなど

android-info.txtにはHTCデバイスのモデルIDやバージョン判定情報が記述されており、ここで本体にその他のファイルを適用可能か判断しています。

詳しくは後述する「RUU内の本体チェック判定」を確認ください。

各Main RUUの違いは判りませんが、展開が不可能なように暗号化が行われ、system.imgは肥大化により複数に分けられている事が最近のモデル向け(M7 Sense 6.0~M8)では多く、おおよそ5つのzipファイルが1つにまとめられている構成となっているようです。

”partial.zip”や”signed_Hboot.zip”は動向を見ているとほぼ流出していませんが、暗号化が行われずS-ONデバイスでも利用が出来るように署名だけが施されています。

 – 最近のデバイスでの状況

このRUUzipに関して最近の状況では色々な状態が確認されており、基本的には全て暗号化(Encrypted)されています。

その為”展開すると~”など前述していますが、基本的にzipを開く事すら出来ない物が多く色々とこの暗号化が最近だと厄介となり、S-OFF状態では無敵だったRUU適用も最近ではそうではなくなっています。

過去ではS-OFF状態では楽々可能だったRUUでのダウングレードやアップグレードも出来なくなっている。」と言う意味です。

このRUUzip暗号化を実際複合化しているのが”HBOOT”なのですが、デバイスモデル毎(個体毎では無い)に違っており、具体的に説明するとKDDI版のHTC J butterfly (B2#WLJ)のRUUをアジア版のHTC Butterfly 2 (B2#UL)に適用する事は基本的に出来なくなっています。

ですが、例えばアジア版のButterfly 2のHBOOTをどうにかしてHTC J butterfly (B2#WLJ)に書き込んだ後、アジア版のButterfly 2のRUUの適用を進めると無事複合化が行われます。

それを考えてもらうと理解できるかと感じますが、ダウングレードを行いたい場合はまずそのバージョンに同梱となっていたHBOOTをダウングレードやアップデートをした後にRUUを行うと上手く開始されるようです。(partial.zipやsigned_Hboot.zipがその役割を果たしている?)

RUU内の本体チェック判定

RUUは本体に記載がある色々な情報と、RUU内のandroid-info.txtの記述が合致していないと適用することが出来ません。

判定部分については次の通り

  • モデルID(メーカー型番)
  • カスタマー・キャリアID(CID)
  • 本体バージョン
  • hbootバージョン

これを一つでもクリアしていないとRUUは当てられないようです。

HTC J ISW13HTを例にすると以下となります。

KDDI版HTC J本体の情報

  • S-ON LOCKED状態
  • モデルID:PK07100
  • キャリアID:KDDI_801
  • 本体バージョン:2.05.970.1
  • hbootバージョン:1.17.0000

適用をしたいRUUのandroid-info.txt情報

  • モデルID:PK07100 → OK
  • キャリアID:KDDI_801 → OK
  • 本体バージョン:1.31.970.2 → NG
  • hbootバージョン:1.10.0000 → NG

上記の場合はRUUは適用できずにはじかれます。

例外や対処法

ですがこの場合、RUU適用不可で諦めるしか無い訳ではなく、対処法や例外が以下の通りで存在します。

  1. 本体のカスタマー・キャリアID(CID)がSuperCIDになっていると、記述が一致していない場合でもその項目はチェックパス(スルー)されます。
  2. 本体バージョンはシステムを見ていないので、バージョンの記述がある場所の記述を変更すればバージョン情報については適用不可の要因から外れます。
  3. hbootを何らかの方法でダウングレードを行えばhbootの項目は適用不可の要因から外れます。。

本来は出来ないようにHTC側は対処していますが、上記の事を対処すれば低いバージョンのRUUが適用出来、ダウングレードが可能となりますね。

S-OFF状態でのチェック判定について

最後にS-OFF状態だとどの部分がチェックパス(スルー)が行われるか記載すると次の通りです。

  • 本体バージョン
  • hbootバージョン(バージョンチェックを回避し、HBOOTダウングレードも同時に行われる)

ここがパス(どちらも古いものに上書き)され、これらに合わせ本体がSuperCIDとなっていれば楽々に好きな状態に行き来出来ます。

KDDI版HTC J本体

  • S-OFF UNLOCKED
  • モデルID:PK07100
  • キャリアID:11111111(SuperCID)
  • 本体バージョン:2.05.970.1
  • hbootバージョン:1.17.0000

当てたいRUUのandroid-info.txt情報

  • モデルID:PK07100 → OK
  • キャリアID:KDDI_801 → PASS(SuperCIDにより)
  • 本体バージョン:1.31.970.2 → PASS
  • hbootバージョン:1.10.0000 → PASS

S-OFFの場合は先ほどのS-ONの場合とは違い、各値がチェックパスされ上記の通り適用可能となります。

RUUの適用方法の種類について

HTCデバイスにRUUを適用する方法は3つあります。

  • 本体でSDカード(外部メモリ)から直接RUUを行う方法 → 現状公式案内方法がコレの模様
  • PCでRUUソフトウェアを立ち上げ、本体をUSB接続し指示に従う方法(Windowsのみ)
  • fastbootを利用しPCにて手動で行う方法

RUUを行う前の注意点として、「データの消去」が行われるのはもちろん「内部ストレージのファイル」も全て消去されます。

SDカードの中身は消去されませんが、RUU適用前には十分注意してください。

本体でSDカード(外部メモリ)から直接RUUを行う方法

SDカードから利用する方法は、とても重宝しPCを利用せずに何処でも初期化が行えるのがメリットですが、最近はSDカードスロットを搭載しない機種が増え、この方法は容易には行えなくなってしまいました。

本体を購入する際にはこう言う所も考えたいですね。

利用ファイル

  • RUUzip → (exeファイルの場合のzipファイル取り出し方法は最下部で説明)

先ず、このRUUzipを本体で起動させるためには特定のファイル名にしなければなりません。

そのファイル名は本体のメーカー型番を参考にするのですが、解り易い方法としてMicroSDスロット搭載機でhbootを起動すると一瞬このような文字が表示されます。

この中の、「XXXXIMG.zip」を読み込ませれば良いので、この名前にリネームします。

例としては以下

HTCJ(PK07 Series)のメーカー型番 → PK07100 より

PK07IMG.zip

HTCJ(PK07 Series)香港版のメーカー型番 → PK07110 より

PK07IMG.zip

EVO3D(PG86 Series)Sprint版のメーカー型番 → PG86100 より

PG86IMG.zip

EVO3D(PG86 Series)KDDI版のメーカー型番 → PG86400 より

PG86IMG.zip

例を見ると察しの言い方はピンと来ると思いますが、PG86 SeriesやPK07 Seriesのシリーズ型番さえ一致していればファイル名は同じになります。

なのでEVO3D Sprint版のRUUをKDDI版に当てようとすると、RUUzipのファイル名自体は一致するために最初は読み込みに入りますがandroid-info.txtや本体情報のカスタマー・キャリアIDやモデルIDで相違が出るため、ハードウェアが似た同シリーズ機種でも適応不可と判断され弾かれます。

ファイル名の準備が出来た後はSDカードのルートディレクトリにそのRUUzipを配置し、HBOOTを起動すればzipファイルの読み込みを開始します。

読み込み後、この画面になり「開始して良いですか?」と聞かれるので音量+で開始すると終了まで放置しましょう。

終了すると「」と記載があるので、電源ボタンを押し終了です。

PCでソフトウェアを立ち上げ、指示に従う方法

最初に通常の適用方法です。

 

ソフトを起動すると、読み込みが開始し以下の画面になります。

チェックを入れ「次へ」をクリック

Androidの電源をONになっている様態で30%以上バッテリーがあることを確認し、チェックを入れ「次へ」をクリック

Androidの情報を収集中…

「更新」をクリック

現在のバージョン、適応後のバージョンが記載されています。(カスタムROMなどを利用していると現在のバージョンが出ない場合がある)

アップデートについての説明や完了までの時間が記載されています。

するとこのポップが出て、更新が始まります。

本体は上の写真のようにHTCと画面に出ます。

更新中はプログレスバー等が出ますので、触らず待ちましょう。

完了するとこのような表示になり、本体が再起動します。

良くあるエラーとしては、署名エラーやソフトが強制終了するなどです。

PCで手動で行う方法

次に、PCで手動で行う方法です。

この方法はRUUのソフトウェアが自動化しているのを手動でやる方法となります。

この方法を利用すると、SDカードで適用するのと同じ位確実にRUUが適用できます。

====注意=====

2013年度デバイスのSense 6.0以上のRUUから2014年度デバイス以降ではfastbootから行えない事が多くなってきているようです。

もし出来なければ大人しくSDからの適用方法をお試しください。

============

必要ファイル

  • fastboot.exe
  • RUU内の「rom.zip」→最下部で説明

1、本体をfastbootモードにする。

完全電源OFFの状態から音量-と電源を同時押しで、hbootに入った後にFastbootを電源で選択するとfastbootモードに入ります。

※通常起動中にUSBデバッグにチェックを入れた状態で、「adb reboot bootloader」とコマンドを入れる方法でも立ち上がります。

2、コマンドを打ちます。

fastboot oem rebootRUU

本体がRUUモードに入ります。

※通常起動中にUSBデバッグにチェックを入れた状態で、「adb reboot oem-78」とコマンドを入れる方法でも立ち上がります。

これにより、黒い画面にHTCと表示されます。

fastboot flash zip rom.zip

本体にrom.zipが送り込まれ、書き込まれます。

終わるとFinishなどと出ると思うので、コマンドで再起動をします。

fastboot reboot

これで完了です。

SDカードスロット非搭載機で外部メモリからRUUを行いたい場合

2012年度機のOne X/SやSensationXL、HTC One (M7)などはSDカードスロットが搭載されていません。

そのような機種は仕方ないので上記の2番目の方法を行うしかないのですが、一応hbootを利用した外部メモリからRUUを行う方法は存在します。

方法を説明すると、OTGケーブル(Yケーブル)と言う物を用意し、以下の画像のように接続を行えばhbootで外部メモリのRUUファームが反応します。

反応すれば後は操作は3番目に記載した方法と同じなのでそこの説明は省きます。

最近XDA Developers等ではこのOTGケーブルを利用する事が増えてきているので、入手しておいても損はないかもしれませんね。

RUUファームウェア(rom.zip)の取り出し方

上記の2つの方法を利用するためにはRUUのソフトウェア内に含まれているRUUファームウェア(rom.zip)を取り出さなければなりません。

取り出す方法は以下となります。

  • RUU.exeを起動後、Winキー+ Rを押し、「ファイル名を指定して実行」を立ち上げ、「%temp%」と入力。
  • そして検索でrom.zipと入れ、複数有った場合は一番日付が新しい物をデスクトップなどに移動。

例外としては、新暗号化対応形式のHBOOTに更新するため、「rom_01.zip/rom_02.zip」のように2つや3つ展開されている場合があります。

この様になっていた場合は、01番から適用をした後、02番を適用すると完了できます。

これらの方法を利用すると、Androidを搭載したHTC機を工場出荷状態に戻すことが出来ます。

HTCのカスタムをする際にはとても重要な事の一つですので、是非参考にして下さい。

HTCのHBOOTは常に更新されており、本体やHBOOTのバージョンによってRUU適用状況も各機によって挙動が違う場合があります。

間違いや機種固有に何か手順が違った場合、ご報告いただけると幸いです。

2012/10/16/2:57 記載途中公開

2012/11/19/3:18 微細編集

2014/03/05/20:47 情報が古くなっていたので更新

2014/10/30/19:21 情報が古くなり、状況が変わって来ている事が多かったので更新