system.imgの改変方法

MTKシリーズのファームは基本このsystem.imgを含め
boot.img
cache.img
recovery.img
secro.img
userdata.img
が入ってきていることが多い。場合によってはramdisk.img等々もあったりする。

で今回改変に挑んだのがsystem.img

ネットの文献を漁り、日本語、英語問わず調べました。
ちなみにその中で参考になったサイトはこちら

アンドロイド少女隊  中華タブレット カスタムファームウェアの作成

MOMO9 N70双撃 SNS rag007さんの日記

taka2の日記:

monline

i’m not dead, so … simg2img の simg とは何か? (make_ext4fs コマンドなど)

いずれも大変参考になりました。ありがとうございました。
ただ、私の環境ではスマホで動くsystem.imgを作成するためにはもう一工夫必要でした。

実際の作業
手順としてはいたって単純で
①system.imgを解凍
②そのフォルダ(ディレクトリ)の中のCallerIdSysH_20151109.apkをディレクトリごと削除
③repackをしてスマホに書き込み。
という感じです。

ではまずsystem.imgの解凍方法
Mtkシリーズに限らずandroidはGoogleが作成したandroidSDKで作られています

そしてそのsystem.imgで採用されているのがsimg。 sparse imag(スパ―ズイメージ)フォーマット

読んで字のごとくですが、androidはlinuxカーネルを使用したOSです。
このlinuxが採用しているディスクフォーマットが現在はEXT4というもの。
このEXT4を発展させたものがsimgというもの。EXT4の書き込まれていない空の部分を圧縮している

まずこのsimgをEXT4にコンバートしないと中身が見られない。
方法としてはwindowsでやる方法とlinuxでやる方法があるが
windowsでやる方法は解凍はできたがその後のrepackは出来なかった。
ちなみにソフト名をあげると

Ext2explore-2.2.71
Ext4unpacker

ImgExtractor_1_3_6
FactoryTool_Pack
Android Unpack Repack adithyan25

またコマンドラインもあったが使っていない。

親和性の観点からlinuxでやるのがよいと思いvmwarePlayerにubuntuをインストールしてやることに
vmwarePlayerにubuntuをインストールまでは他のサイトに書かれているためここではインストール後から書きます。

Vmwaretoolsのインストール
まずはこれを入れないとホスト、ゲスト間のファイルの往来ができないので・・・
但しWindowsと違いひと手間かかる。

その前に注意としてvmWare Playerでは、新規OSをインストールするときに新規仮想マシン作成ウィザードで、ISOファイルを指定すると、OS簡易インストールモードになり、全自動でOSがインストールすることができます。

ですがこのOS簡易インストールモードは、全自動でOSがインストールされる反面、言語がEnglishになったり、パーティションを選択できなかったり、インストールパッケージが選べなかったり、さらにホスト・ゲスト間コピーができなかったりと、非常に不便です。

私の環境ではゲストホスト間コピーが出来ませんでした。1.7GBコピーしても表示されなかったり、容量が数キロバイトだったりとまともにコピーが出来ませんでした。

また、これを直すためには再インストールが必要で手間がものすごくかかる。
必ず簡易インストールモードを避けて、手動にてインストールしてください。
実はその方が早かったりします

そしていよいよvmwaretoolsのインストール
①CD-ROMにマウントしたvmwareTools.x.x.x-xxxx.tar.gzをホームにtmpディレクトリを作りそこへコピー。表示されない場合 再起動

② vmwareTools.x.x.x-xxxx.tar.gz を右クリックして [ここに展開する] をクリックし、展開する。vmware-tools-distrib フォルダが Ubuntu Desktop に展開されます。

③ターミナルを起動して(もし横のランチャーになかったらCTL+ALT+Tで起動)で、次のコマンドを実行して vmware-tools-distrib フォルダに移動します。

$ cd tmp/vmware-tools-distrib

④次のコマンドを実行して、vmware Tools をインストールします。

$ sudo ./vmware-install.pl

注: -d スイッチをつけてインストールできる場合はよいですがインストールせずに終了してしまう場合は上記で回答しながら進みます。Regacy・・・みたいな文言が出てきたらYを押しあとはReturn キーでOK。

ここまでは下準備。これからが本番
2016-04-25_202635
外部コマンドの準備
①ターミナルから $ sudo apt-get install zlib1g-dev を実行

②ext4_utils をダウンロード・インストール

ターミナルから
$ wget ‘http://forum.xda-developers.com/attachment.php?attachmentid=2380988&d=1383992072’ -O ext4_utils_r4.3.tar.gz
を実行

③nautilus(エクスプローラみたいなファイルマネージャ)を起動し
ext4_utils_r4.3.tar.gz を右クリック ここに展開で展開する。

ちなみにコマンドラインからでもできる。

④カレントディレクトリの移動
ターミナルから $ cd ~/ext4_utils_r4.3 を実行
$ make を実行

⑤simg2img ext2simg make_ext4fs mkuserimg.shを /usr/bin/にコピー
ターミナルから $ sudo cp -p simg2img ext2simg make_ext4fs mkuserimg.sh /usr/bin/ を実行

注)
simg2img: sparse イメージを通常のext4イメージに変換するプログラム
ext2img: 通常のext4イメージをsparseイメージに変換するプログラム
make_ext4fs: 指定ディレクトリにあるファイル群から、ext4イメージやsparseイメージを構築するプログラム

⑥sparseイメージからext4イメージへの変換およびマウント
ターミナルから
$ simg2img ~/system.img ~/system.ext4
$ sudo mkdir -p ~/mnt/ext4_sys
$ sudo mount -w -o loop ~/system.ext4 ~/mnt/ext4_sys
を順次実行
マウントされたext4_sysディレクトリにファイル郡が展開されているはず。

感染したファイルの削除
スーパーユーザーモードで nautilus を起動
ターミナルから $ sudo nautilus  を実行

~/mnt/my_system内を編集

注)
削除した場合は非表示のTrash.0も削除

修正した結果を元に、sparseイメージを再構築

ext2imgを使う方法と、make_ext4fsを使う方法の2通りあります。容量指定する場合はmake_ext4fsを使う

※ ext2imgを使う方法
ターミナルから
$ sudo umount ~/mnt/ext4_sys
$ ext2simg ~/system.ext4  ~/system-ext2simg.img
を順次実行

注)
-lオプション(1753219072): イメージファイルのディスク容量はできないようです。

※ make_ext4fsを使う方法
アンマウントせずに下記をターミナルから実行
$ sudo make_ext4fs -s -l 1753219072 -a system ~/system-ext4fs.img ~/mnt/ext4_sys/

-sオプション: sparseイメージの構築(未指定時はext4イメージを作ります)
-lオプション(1753219072): イメージファイルのディスク容量 カンマ抜くこと

1753219072の数字はwindows上のエキスプローラから原本system.imgからsparse変換したファイルの容量を指定。

但し、私の環境ではmake_ext4fsを使う方法では起動できるイメージファイルは出来ても起動できませんでした。
バイナリイメージで比較しても全然違うものができてしまっていました。
他のサイトでもほとんどがこのmake_ext4fsを使う方法でやっているのですが私の環境では無理。

といことでext2imgを使う方法で作成。
作成されたファイルをドラッグしてホストPCのVK700Xのアップデータフォルダに入れる。

2016-05-03_170437

ドラッグしたsystem-ext2simg.imgのファイル名をsystem.imgになおして、

同じファルダ内にある。CheckSum_Gen.exeを実行してSP_flashtoolでscatter.txtを読んだ時のエラーを回避する。

そしてsystemimgのみチェックを入れて上のプルダウンをDownload Onlyに合わせさらに上のDOWNLOADボタンを押す。

2016-05-03_171113

電源の切ったスマホを繋ぎ書き込みを確認。

下のステータスバーの黄色表示が進み書き込み終わると

OKマークが出る。

出たらスマホからUSBコードを外し電源オン。無事立ち上がればOK。

ちなみに決まり事ですがここに書いたことを実行して文鎮化しても責任はもてません。参考程度にして。もし実行する場合は自己責任でお願いします。

ちなみに書き込む前にExt4unpackerで読み込みできれば起動できる可能性が高くなる。

また、バイナリエディタで変換したimgを開き、selinuxと検索すると 2回目あたりに

オリジナルは赤丸で囲ったような状態となる。

2016-05-03_193039

ext2simgコマンドで変換したものが下だがこれはちゃんと起動した。

2016-05-03_193912

make_fs4コマンドで変換したものだが起動不可

2016-05-03_194723

他にもimg2simgコマンドで変換したものもダメでした。

基本は

①windowsでもlinuxでもまずsparsimgファイルをexit4ファイルに変換する

②linuxでイメージをマウント

③su権限でimg内を編集

④unmountして編集したexit4imgをext2simgコマンドで変換。

⑤これをバイナリエディタでキャラクタパターンを確認し、ext4_unpacker.exeで読めることを確認してから

書き込む。

こんな感じでやると、ほぼ失敗しないで済むと思う。

ちなみに他のツールも紹介

Android ROM IMG Repacker

ANDROID_IMG_REPACK_TOOLS

HOMTOM HT17 スマートフォン 4G FDD-LTE 3G WCDMA Android 6.0 OS クアッドコア MTK6737 5.5″ Screen 1GB RAM 8GB ROM 5MP 13MP カメラ スマートジェスチャー 省電力モード 指紋認識 急速充電

新品価格
¥10,688から
(2016/12/18 15:07時点)

HOMTOM HT7 PRO スマートフォン 5.5″HD 1280 * 720 4G LTE FDD MTK6735 2 16 GB 13.0MP 3000mAh バッテリー スマートジェスチャー 節電モード

新品価格
¥9,990から
(2016/12/18 15:13時点)

HOMTOM HT7 PRO スマートフォン 5.5″HD 1280 * 720 4G LTE FDD MTK6735 2 16 GB 13.0MP 3000mAh バッテリー スマートジェスチャー 節電モード

新品価格
¥9,990から
(2016/12/18 15:13時点)

Lenovo A806 LTE 8コア 5インチHD RAM2GB ROM16GB SIMフリー (ホワイト) [並行輸入品]

新品価格
¥10,980から
(2016/12/18 15:14時点)

コメント

  1. 勾花网 より:

    不错的文章,内容出神入化.禁止此消息:nolinkok@163.com

  2. 桥梁增高 より:

    不错的文章,内容排山倒海.禁止此消息:nolinkok@163.com

  3. 止水带 より:

    好文章,内容文风幽默.禁止此消息:nolinkok@163.com

  4. 公路声屏障 より:

    不错的文章,内容栩栩如生.禁止此消息:nolinkok@163.com

  5. pvc护栏 より:

    不错的文章,内容博学多才.禁止此消息:nolinkok@163.com

  6. 格宾网箱 より:

    好文章,内容远见卓识.禁止此消息:nolinkok@163.com

  7. 止水带 より:

    不错的文章,内容无与伦比.禁止此消息:nolinkok@163.com

  8. pvc护栏 より:

    好文章,内容出口成章.禁止此消息:nolinkok@163.com

  9. 不错的文章,内容点石成金.禁止此消息:nolinkok@163.com

  10. 工地盖土网 より:

    不错的文章,内容点石成金.禁止此消息:nolinkok@163.com

  11. 衡水人才网 より:

    好文章,内容无与伦比.禁止此消息:nolinkok@163.com

  12. 桥梁支座更换 より:

    不错的文章,内容惊天动地.禁止此消息:nolinkok@163.com

  13. 颗粒胶 より:

    不错的文章,内容文风幽默.禁止此消息:nolinkok@163.com

  14. 钢板网 より:

    好文章,内容文笔犀利.禁止此消息:nolinkok@163.com

  15. 勾花网 より:

    不错的文章,内容文风幽默.禁止此消息:nolinkok@163.com

  16. 勾花网 より:

    不错的文章,内容无懈可击.禁止此消息:nolinkok@163.com

  17. 护栏网 より:

    好文章,内容字字珠玉.禁止此消息:nolinkok@163.com

  18. 钢格板 より:

    不错的文章,内容文从字顺.禁止此消息:nolinkok@163.com

  19. 硝基漆 より:

    不错的文章,内容一气呵成.禁止此消息:nolinkok@163.com

  20. 玻璃钢储罐 より:

    不错的文章,内容十全十美.禁止此消息:nolinkok@163.com

  21. 好文章,内容惜墨如金.禁止此消息:nolinkok@163.com

  22. 衡水人才网 より:

    好文章,内容层次清晰.禁止此消息:nolinkok@163.com

  23. 玻璃钢管道 より:

    好文章,内容出类拔萃.禁止此消息:nolinkok@163.com

  24. 安平物流网 より:

    好文章,内容文笔极佳.禁止此消息:nolinkok@163.com

  25. 勾花网 より:

    不错的文章,内容才高八斗.禁止此消息:nolinkok@163.com

  26. pvc护栏 より:

    好文章,内容文风幽默.禁止此消息:nolinkok@163.com

  27. 防弹网 より:

    不错的文章,内容惜墨如金.禁止此消息:nolinkok@163.com

  28. 镀锌石笼网 より:

    好文章,内容惟妙惟肖.禁止此消息:nolinkok@163.com

  29. 金刚网 より:

    好文章,内容文笔犀利.禁止此消息:nolinkok@163.com

  30. 好文章,内容才高八斗.禁止此消息:nolinkok@163.com

  31. 石笼网 より:

    不错的文章,内容妙不可言.禁止此消息:nolinkok@163.com

  32. 不错的文章,内容出神入化.禁止此消息:nolinkok@163.com

  33. 小区声屏障 より:

    好文章,内容妙趣横生.禁止此消息:nolinkok@163.com

  34. 雷诺护垫 より:

    好文章,内容义正词严.禁止此消息:nolinkok@163.com

  35. 格宾网 より:

    好文章,内容栩栩如生.禁止此消息:nolinkok@163.com

  36. 安平物流 より:

    不错的文章,内容学富五车.禁止此消息:nolinkok@163.com

  37. 勾花网 より:

    好文章,内容义正词严.禁止此消息:nolinkok@163.com