HTC J One HTL22 ソフトウェア番号2.21.970.2のダウングレード方法
ソフトウェア番号2.21.970.2にアップデートされたHTL22はそれまで有効な脆弱性であったCVE-2013-6282が対策済みでダウングレードに必要なtemprootが取得出来ない状態が続いておりました、しかし先日geohotことジョージ・ホッツ氏が公開したtowelrootによってtemproot取得が可能になりましたのでやり方をメモしておきます。
※この作業をするとHTL22本体の保存データが全て消えてしまい工場出荷時の状態に戻ってしまいますので、必要なデータはあらかじめバックアップしておいてください。
ダウングレードの工程についてはHTC速報さんの記事を参考にさせていただきました。ありがとうございます。
au HTL22 HTC J One 2.15.970.1から1.05.970.2へのダウングレードについて (HTC速報Dev)
必要な物
・adbとfastboot(予めPCで使える状態にしておいてください)
・towelrootのapkファイル(λのマークをクリックでダウンロード出来ます)
・APK Multi Tool等のapkファイル編集ツール(予めPCで使える状態にしておいてください)
・適当なバイナリエディタ(予めPCで使える状態にしておいてください)
・HTL22用RUU.zip(HTC速報さんが公開してくださっています)
・2.21.970.2用firmware.zip
※当初apkの展開に7zipを使う方法で書いておりましたが、apkがインストール出来ないエラーが出ますので記事内容を一部修正しました。
ダウングレードのための準備
HTL22でtowelrootを使うためにはapkを改変する必要があります。
apkファイル編集ツールを使用してapkを展開します。
フォルダがいくつかありますがlibフォルダを開いて、さらにarmeabiフォルダの中へ進みます。
armeabiフォルダの中にlibexploit.soというファイルが存在しますので、これをバイナリエディタで開きます。
libexploit.soはmmcblk0p19のバックアップ処理用と書き込み処理用の2種類必要なのでコピーして2つ用意します。
0x0000CBAB~0x0000CC36を次の画像のように書き換えます。
【libexploit.so変更箇所 mmcblk0p19バックアップ処理用】
左が変更前、右が変更後。変更したらバイナリエディタ上で上書き保存。さらにapkファイル編集ツールでapkの状態にrepackして署名。
このような作業を繰り返してもう一つ書き込み処理用のapk作成します。
【libexploit.so変更箇所 mmcblk0p19書き込み処理用】
左が変更前、右が変更後です。
変更が完了したら同じようにして上書き保存します。
バージョン偽装をする
作った改変toweltootのapkをHTL22へインストールします。インストールはadb installコマンドを使うとラクだと思います。
adb install tr.apk
コマンドのtr.apkの部分はapkのファイル名ですので適宜変更してください。
まず先にバックアップ処理用のapkだけをインストールします。(パッケージ名がどちらも同じなため同時にインストール出来ません)
λのアイコンのアプリを起動して「make it ra1n」のボタンをタップ。これで本体ストレージ(/mnt/sdcard)にmmcblk0p19が保存されます。これに改変を加えますのでPCにコピーします。
バイナリエディタでmmcblk0p19を開いて0x000000A0〜0x000000A9を次のように書き換えてバージョン偽装を施します。
左が変更前右が変更後。
変更したらfakeというファイル名で保存してHTL22の本体ストレージ(/mnt/sdcard)にコピーします。
コピーする際にadb pushを使うとラクです。
adb push fake /mnt/sdcard
コピーが完了したら先にインストールしておいたapk(バックアップ処理用)をアンインストールした後で書き込み処理用のapkをHTL22にインストールします。
インストールしたら先ほどと同じように「make it ra1n」のボタンをタップ。これでバージョン偽装したmmcblk0p19(fakeファイル)が書き込まれダウングレードのための準備は全て完了です。
ダウングレード作業
HBOOTを起動した状態のHTL22をPCに接続してプロンプトを開き、以下のコマンドを打っていくとダウングレード(旧バージョンファームウェアの書き込み)がされます。
※HBOOTを起動するにはHTL22をPCに接続した状態で
adb reboot bootloader
と打ちます。
ダウングレードのコマンド
fastboot fastboot oem rebootRUU fastboot flash zip 2219702_firmware.zip fastboot flash zip rom.zip
※2219702_firmware.zipはfirmware.zipのファイル名、rom.zipはRUUのファイル名です。
エラーが出てflashされない場合は”fastboot flash zip 2219702_firmware.zip”の部分を2回程度やってください。
RUUの書き込みが最後まで完了したらこのコマンドで再起動します
fastboot reboot
これでダウングレードが成功しているはずです。あとはrevoneやrun_root_shellなどを使用してS-OFFとroot化が可能になります。
なお、改変したapkやlibexploit.soの配布をするとgeohotさんよりお叱りを受けそうなのでやりません。
ライター
- Twitter:@scoty755
- モバイルガジェット大好きです。
主にiPhone5S,SCL23を使用。他にもL-01F,L-05E,HTL22,HTL21,HTX21,SO-03C,SK17i等を保有しています。
趣味でWEBページコーディングやプログラミングやってます。
Androidビルドの勉強始めました。
これまでに書いた記事
- 2014.08.31ガイド記事HTC J butterfly HTL23のS-OFFおよびブートローダーアンロックが出来ました
- 2014.08.15SAMSUNGKNOX WARRANTY VOIDとカスタムカーネルの関係性
- 2014.06.19J_OneHTC J One HTL22 ソフトウェア番号2.21.970.2のダウングレード方法
- 2014.06.17SAMSUNGSCL23をroot化出来た話
DEAR, I CAN EDIT THAT Libexploit.so IN EDITOR BUT IT CANT SHOW LIKE SHOW IN UR PICTURE, HOWEVER I CHANGE BINARY AS SHOWN BY U, AFTER I INSTALL BUT I CANT SEE mmcblk0p19 IN MNT/SDCARD FOLDER, WHATS THE PROBLEM, PLEASE HELP ME???
THANKS
SOURABH MOHTA
こんにちは
libexploit.soを開きしまたが、提供している画像の内容が見つからないです。
もしかしたら、私は使っているバイナリエディタツールがよくないでしょうか。何かおすすめのツールはないでしょうか。
dear, please help me,, Libexploit.so is look different as shown is picture, all other then changeble binary no. is diffrent, is its wrong???
thanks
sourabh mohta
soの再配布は確かにアレですが、差分のパッチにしてみてはいかかでしょう?
ブログ参考にさせていただきました。
s-on状態towelrootでのソフトウェア番号3.13.970.12でのダウングレードを試してみたのですが、上手くいきませんでした。3.13.970.12ファームウェアを使ってHboot認証回避まではうまくいくのですが、速報さんの1.05.970.2の公式RUUを焼くところで
C:\Users\**>fastboot flash zip “PN07IMG_M7_WLJ_JB_50
_KDDI_JP_1.05.970.2_Radio_1.23.11.0510_NV_3.39_01C_release_signed.zip”
target reported max download size of 1514139648 bytes
sending ‘zip’ (863212 KB)…
OKAY [ 34.395s]
writing ‘zip’…
(bootloader) rom parsing start …
(bootloader) rom parsing finish …
(bootloader) zip header checking…
(bootloader) zip info parsing…
(bootloader) Read zipped android_info fail
FAILED (status read failed (Too many links))
finished.
と出てしまって公式RUUが当てられないです。
あと、試したことはHboot認証回避後に速報さんの2.15.970.1改変RUUを当てたことなんですが、こちらは当てることまでは出来てきたんですがHbootが1.57のまま変わらずで起動するとロゴループになりました。
s-on状態からの3.13.970.12ダウングレードは無理なのでしょうか?
すいません、昨日質問したものです。
少し面白い発見?をしたのですが、towelrootを改変していて弄っていたら
s-on状態3.13.970.12でもroot取得と同じような状態になりました。
RootExploerにてR/OマウントからR/Wマウントに変えられるようになりました。ちゃんとルート権限があるのか不安だったのでシステムの中のファイルをSDにコピーしてみたのですが上手くいったのでルートを取っている状態になったらしいです。
何かに使えますか?それとこれを使って3.13.970.12からのダウングレードは可能でしょうか?
返信頂ければ幸いです。
たぶん勘違いだったみたいです。。。
それと最新のからはダウングレードできないということなので諦めらめてそのまま使うことにしました!