使用しているスマートフォンの操作を誤って文鎮化してしまった際、system.imgが必要になりますが、公式がイメージファイルをリリースしていないと復旧することが困難になります。
Android 5.0 Lollipopからflashable.zipにsystem.new.datというファイルが作成され、このファイルを用いてsystem.imgを作成できるコンバートツールがリリースされていますので、使用方法をさらっとまとめます。
“スマートフォンを文鎮化させる”実力を持っている方に向けた記事になっていますので、省略しているところがあります。
必要なもの
- Windows PC
- Python 3.0以降
- 使用するスマートフォンのflashable.zip(可能であれば文鎮化したバージョンのROM)
- Dat to img by stupdroid.com.rar
作業
①. Python 3.5.3をインストール
以下の記事を参考に、2017年1月20日時点で最新のPython 3.5.3をインストールします。
インストール時に「Add Python 3.5 to PATH」のチェックマークを入れていると環境変数PATHの設定は不要です。
環境変数PATHが設定されているか確認するには、コマンドプロンプトで“python”と入力して下さい。
上画像の様にバージョンなどが表示されれば設定できています。
②. ツールをダウンロード、展開。
Dat to img by stupdroid.com.rarをダウンロードし、展開をします。
フォルダ名は「Dat to img by stupdroid.com」になり、フォルダ内にあるrk.pyファイルにpythonのロゴが表示されていればOKです。
表示されていなければ関連付けが出来ていませんので、再度pythonをインストールするかアップグレードをしてください。
③. flashable.zipからfile_contexts、system.new.dat、system.transfer.listを取り出す。
7-Zipなどを使ってflashable.zipを展開し、file_contexts、system.new.dat、system.transfer.listの3つのファイルを取り出し、コンバートツールに直接保存します。
system.patch.datは必要ありません。
④. コンバートツールを用いて変換
アイコンが“?”になっている「system.new.dat 2 flashable.img converter.exe」をダブルクリックすると、水色(緑色)の画面が出てくると思います。
再度、ツールのフォルダーに3つのファイルが有ることを確認したら、エンターキーを押します。
すると、自動でファイルの変換が行われますので、しばらく待ちましょう。
ファイルサイズにもよりますが、1.9GBで約8分かかりました。
「Detected system version : Android <version>」のバージョン部分が変換しているファイルと間違っていないか確認して下さい。
「続行するには何かキーを押して下さい・・・」と表示されれば変換が完了しています。
エンターキーを押すとウィンドウが閉じます。
⑤. 出力されたファイルの説明
system.raw.imgとsystem.new.imgの2ファイルが出力されます。
rawのイメージファイルはext4形式で出力されており、このファイルはflashable.imgではないので、Linuxなどを使用してsystemフォルダの中身を取り出す等に使用することしかできません。
newのイメージファイルはflashable.imgで出力されていますので、fastbootやroot権限の取得したスマートフォンからターミナルアプリを使って焼くことが出来ます。
system.new.imgはAndroid ICS JB EXT4 imagefile unpackerでsystemフォルダを閲覧することが出来ます。
サイズは以下のようになりました。(使用ROM : Meizu PRO 6 Plus用Flyme 5.2.7.1A)
system.new.dat : 1.91 GB (2,062,344,192 バイト) system.raw.img : 2.50 GB (2,684,354,560 バイト) system_new.img : 1.95 GB (2,105,446,896 バイト)
⑥. イメージファイルの使用方法
fastbootからはsystem_new.imgをsystem.imgにリネームして、以下のコマンドを入力して下さい。
fastboot flash system system.img
Terminalアプリを使う場合は以下のコマンドを入力して下さい。
対応するパーティションを探す。 cat /proc/emmc or cat /proc/partitions 対応する数字をXXに入力 dd if=/sdcard/system.img of=/dev/block/mmcblk0pXX
参考
Thanks