boot.img のunpack
お世話になります。http://androidgirlstablet.com/blog-entry-764.html の 、「boot.img」のunpack/repackについて記事にあります、boot.imgの unpack できずに
困っています。rkunpack を行うと下記のようにエラーがでます。

kaneko@Ubuntu-virtual-machine:~/firmware/U21GT/boot$ ls -l
合計 9608
-rwxrw-rw- 1 kaneko kaneko 9814016 7月 31 00:02 boot.img
-rwxrwxr-x 1 kaneko kaneko 8874 7月 30 23:10 rkcrc
-rwxrwxr-x 1 kaneko kaneko 12233 7月 30 23:09 rkunpack
kaneko@Ubuntu-virtual-machine:~/firmware/U21GT/boot$ ./rkunpack boot.img
rkunpack: invalid signature

お忙しい処すみませんが、何かアドバイスいただけないでしょうか?
よろしくお願いいたします。
  • prisoner2135
  • 2013/07/31 (Wed) 00:32:10
Re: boot.img のunpack
prisoner2135さん

rkunpackが出力している『invalid signature』はboot.imgのファイル形式が違っていることを示しています。
boot.imgの形式にはいくつかの種類があり、rkunpackが処理できる物は、バイナリエディタで中を確認した時
最初の文字列が『RKFW』『RKAF』『KRNL』『PARM』のいずれかで、それ以外の場合は別のツールを使用する
必要があります。
まずはStirling等のバイナリエディタでboot.imgの最初がどんな文字列になっているか確認してください。

その他の例として『ANDROID!』で始まっているものであれば、別のツールでunpack/repack可能です。
  • rag007
  • 2013/07/31 (Wed) 20:06:14
Re: boot.img のunpack
ありがとうございます。勉強させて頂きました。
boot.imgのunpack/repack は、http://androidgirlstablet.com/blog-entry-768.html の split_bootimg.pl mkbootfs mkbootimg の方法でできました。

しかし、自分は CUBE U21GT を パズドラ対策回避の為、「default.prop」の各値を修正してますが、起動できませんでした。
(ロイド君が倒れてるアイコン止まり)。公式ファームの boot.img だけ修正して確認しましたが駄目でした。

「default.prop」の各値を修正してだけで 起動できない機種も在る物なんでしょうか?

もし何か、情報がありましたら、お教えください。ありがとうございました。
  • prisoner2135
  • 2013/08/02 (Fri) 01:56:36
Re: boot.img のunpack
prisoner2135さん

split_bootimg.pl mkbootfs mkbootimg の3点セットでunpack/repackを行う場合、
mkbootimgに対して機種ごとの正しいパラメータを設定する必要があります。
また、google等の検索で出てくるmkbootimgは一部のパラメータが設定出来ないものです。

この辺りの問題に対応したスクリプトをアップしましたのでご利用ください。
オリジナル(公式)のboot.imgから必要なパラメータを取得しmkbootimgに引き渡します。
なお、このツールは『ANDROID!』で始まる同形式のrecovery.imgにも使えます。
その場合は./unpack recovery ./pack recovery として使用ください。

http://www.mediafire.com/?f9tqppstft2pcuq


使用方法(フォルダツリーのイメージは添付の画像を参照ください)

1.ツールを適当なフォルダに解凍する(例:test1)
2.boot.imgをツールと同じフォルダにコピーする
3.端末を起動する
4.ツールフォルダに移動する(例:cd test1)
5.unpackする(boot.imgの場合)※ツールフォルダ内にoutフォルダを自動で作成し、そこに展開されます
  ./unpack boot
6.展開されたramdiskを修正する
7.repackする(boot.imgの場合)
  ./pack boot
8.出来上がったboot.img.newをboot.imgとしてファームウェアのフォルダに移動する
9.update.imgを作成する
10.実機に書き込む
  • rag007
  • 2013/08/02 (Fri) 21:08:25
Re: boot.img のunpack
返信 遅くなりましてすみせん。たびたび ありがとうございます。

>> mkbootimgに対して機種ごとの正しいパラメータを設定する必要があります。

やはり そうでしたか。また ツールまで用意して頂いて 大変感謝いたしております。
後日 結果報告させて頂きます。

ありがとうございました。
  • prisoner2135
  • 2013/08/04 (Sun) 13:51:52
Re: boot.img のunpack
rag007 さん

 本日、 無事 自作U21GT用カスタムファーム 作成完了。
 起動・動作確認出来ました。

 大変 勉強させて頂きました。感謝しております。
 今後も、ご活躍を応援いたします。

 ありがとうございました。

 (PS. 友人で、CUBE U21GTユーザーの方 ご希望がありましたら、img UPいたします。)
  • prisoner2135
  • 2013/08/06 (Tue) 20:01:37
Re: boot.img のunpack
prisoner2135さん

 無事にunpack/repack & 起動が出来たようですね。
おめでとうございます。

自分でカスタマイズできると、タブレットを使うのがより楽しくなりますよね。
今後も良いタブレットライフを。
  • rag007
  • 2013/08/06 (Tue) 20:49:35
Re: boot.img のunpack
はじめまして。ツールのご提供ありがとうございます。
大変助かります。

「6.展開されたramdiskを修正する」 で質問です。
その先が分からないのであみさんの説明に戻って解釈しています。

http://androidgirlstablet.com/blog-entry-768.html

以下の通り

$ mkdir ramdisk(フォルダーの作成)
$ cd ramdisk(カレントフォルダーの移動)
$ zcat ../boot.img-ramdisk.gz |cpio -i(unpack)

「default.prop」の修正

unpack後は、default.propを編集します。編集内容は省略

default.prop修正が終わったら、boot.imgをrepackします。
以下、repack手順。

$ cd ../
$ ./mkbootfs ramdisk |gzip -c >boot.img-ramdisk_rebuild.gz
$ mkbootimg --kernel boot.img-kernel --ramdisk boot.img-ramdisk_rebuild.gz -o boot_modified.img

「boot_modified.img」がrepackされたファイルです

「./mkbootfs ramdisk |gzip -c >boot.img-ramdisk_rebuild.gz」を実行するとエラーになります。

エラー「bash: ./mkbootfs: そのようなファイルやディレクトリはありません」

どこが間違っているでしょうか?

ご多忙のところ恐縮ですがご存知の方がいらっしゃいましたらご教示いただけると助かります。

ちなみに当方は五元素の中華タブレットifive3をroot化済みで赤札天国さん(タブタブ)から購入しました。

SONYのandroidビデオ持出しアプリ「TV SideView」で「root化されているので使用不可」となるので素人なりにパズドラが動けばOKかと考えています。

root化に拘りはないので公式ファームに戻してもTvSideViewは起動NGでした。
公式ファームベースのdefault.propを見ても
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.sys.usb.config=adb

ってどういう事でしょうか・・・・。
  • tonykart
  • 2014/07/06 (Sun) 11:17:29
Re: boot.img のunpack
すみません。訂正です。
素直に出力されたoutフォルダ内のdefault.propを修正するんですね。
また、1つつまずいています。ご教示いただけると幸いです。

①windowsデスクトップ上に解凍した「unpack_repack_tools」フォルダごと
 VMwarePlayer(Ubuntu)の作業フォルダ「firmware」配下にドラッグコピーします。
②フォルダ名を「temp」に変更します。
 boot.imgをwindowsの作業フォルダからubuntuのtempフォルダにコピーします。
③terminal画面からカレントをtempフォルダに移動します。
 「./unpack boot」を実行
 「out」フォルダにdefault.propができて編集できました。
④「./pack boot」を実行すると下記のエラーがでます。
 boot.img.newができません。boot.img-ramdisk.gzはできています。


【コマンド画面】
tony@tony-virtual-machine:~$ cd ~/firmware/temp
tony@tony-virtual-machine:~/firmware/temp$ ./unpack boot
Page size: 16384 (0x00004000)
Kernel size: 11427876 (0x00ae6024)
Ramdisk size: 1376039 (0x0014ff27)
Second size: 0 (0x00000000)
Board name:
Command line:
Base address: (0x60400000)
Ramdisk address: (0x62000000)
Second address: (0x60f00000)
Tag address: (0x60088000)
Writing boot.img-kernel ... complete.
Writing boot.img-ramdisk.gz ... complete.
Magic = 8b1f
4346 ブロック
tony@tony-virtual-machine:~/firmware/temp$ ./pack boot
Using Base address 0x60400000
Using Ramdisk address 0x62000000
Using Second address 0x60f00000
Using Tag address 0x60088000
Using Page size 16384
Using Command line ''
./pack: 行 23: ../mkbootfs: そのようなファイルやディレクトリはありません
./pack: 行 24: ../mkbootimg: そのようなファイルやディレクトリはありません
tony@tony-virtual-machine:~/firmware/temp$ ^C
  • tonykart
  • 2014/07/06 (Sun) 13:24:33
Re: boot.img のunpack
○tonykartさん

(1)defult.propについて

>root化に拘りはないので公式ファームに戻してもTvSideViewは起動NGでした。
>公式ファームベースのdefault.propを見ても
>ro.secure=0
>ro.allow.mock.location=1
>ro.debuggable=1
>persist.sys.usb.config=adb

中華系のファームウェアは、↑の状態が多いです。
最初からルート化前提みたいな作りになっているので、日本のルート化を拒否するアプリに対しては、
ここを修正しないと、まともに動作してくれません。

(2)シェルスクリプトのエラーについて

まずはシェルスクリプトについて、ある程度の知識が必要だと思います。

「./pack: 行 23: ../mkbootfs: そのようなファイルやディレクトリはありません」

この中にある「./pack」はカレントフォルダにpackコマンドを実行しています。
「../mkbootfs」は、1つ上のフォルダにmkbootfsが見つからなかったという意味になります。

シェルスクリプトに定義されている内容にそってファイルを置くか、ご自分の環境に合わせてシェルスクリプトを修正して下さい。
  • あみ
  • 2014/07/06 (Sun) 13:51:18
Re: boot.img のunpack
>tonykartさん

圧縮ファイル内にある「mkbootfs」「mkbootimg」を
pack/unpackと同じフォルダに配置してください。
それでOKのはずです。

*各ファイルに実行権限を付けておいてください。
  • rag007
  • 2014/07/06 (Sun) 20:27:52
Re: boot.img のunpack
あみあん・rag007さん
早速のご回答ありがとうございます。VMwareを最初から再インストールしたらできました。
・・・が、もう一度やったら同じくできなくなりました。

各ファイルに実行権とはどうやって付けるのでしょうか?パーミッションとかですよね・・。

  • tonykart
  • 2014/07/07 (Mon) 00:04:45
Re: boot.img のunpack
画像が添付されてますか?
  • tonykart
  • 2014/07/07 (Mon) 00:05:59
Re: boot.img のunpack
./fw/bootimg/に6つのファイルをWindowsからコピーしています。
boot.img
mkbootfs
mkbootimg
pack
split_bootimg.pl
unpack
  • tonykart
  • 2014/07/07 (Mon) 00:08:48
Re: boot.img のunpack
○tonykartさん

(1)プロパティの変更方法

プロパティの変更方法がリンク先の一番下にあります。

http://androidgirlstablet.com/blog-entry-756.html

今回のお話の場合は、実行権限にもチェックを入れて下さい。

(2)利用しているツールについて

利用されているツールはrag007さんが提供されているものでしょうか?

rag007さんご提供のツールと、あみが記事で利用したツールでは多少異なります。
エラーが発生している理由が実行権限の問題なら、権限を与えれば済みますが、
ツール自体が異なるようなら、スクリプトの変更あるいは環境の変更が必要かも?
  • あみ
  • 2014/07/07 (Mon) 21:27:39
Re: boot.img のunpack
>画像が添付されてますか?
上記の画像を確認しました。

エラーの原因はboot.imgのヘッダーが『ANDROID!』で始まっていないためです。
このスレッドで提供しているツールは、ヘッダーが『ANDROID!』で始まるもの専用です。
一度バイナリエディタ等でヘッダーを確認されたほうが良いかと。


あと、念のため確認ですが、Ubuntuのアーキテクチャは何を使ってますか?

もし64bitを使っているなら、おまじないをする必要があります。

私が確認したのは12.10 32bit/64bit、13.10 32bit/64bit の4種類です。

64bitの場合は以下のコマンドを実行し32bitライブラリを導入する必要があります。

sudo apt-get install lib32ncurses5 g++-multilib
  • rag007
  • 2014/07/07 (Mon) 21:57:10
Re: boot.img のunpack
あみさん
ありがとうございます。

原因が分かりました。大失態です。

2つパターンがあります。最初の質問(13時ころ)はVMwarePlayerを32ビット版に再インストールしたらunpackできました。そんなことあるんでしょうか・・・。

24時ころの質問は、同じiFive3の別VerのFWを解凍したときにエラーが出ました。
unpackのバッチではよく分からなかったのですが、あみさんの通りに1行ずつコマンドを実行して行ったらZCATでnot such file or derectry とエラーになっていました。
!!そうです!!こっちのタイプではなかったのです。rkunpacで解凍したらできました。

途中でFWを変えたことをお知らせしてませんでした。すみませんでした。

default.propとbuild.propのroot認識属性を変更してimg→FWにすました。

しかし、今タブレットに書込んだら、ずーっと初期画面(POST?BIOS?っていうの)のまま30分・・。
文鎮化でしょうか・・・。電源を切るのが怖いです(TAT)
  • tonykart
  • 2014/07/07 (Mon) 22:54:22
Re: boot.img のunpack
rag007さん
掲示板の画面を更新してませんでした。今見ました。

凄い!2つともその通りでした。!!!

しかし、やってもうた!!!でしょうね・・・・。
初期画面のまま・・・・。PCからはUSB経由でiFive3は見えていますけど・・・orz
  • tonykart
  • 2014/07/07 (Mon) 23:04:32
Re: boot.img のunpack
あみさん rag007さん
ご心配おかけしました。気合入れて電源を切り入りで動きました(^^)

しかし「開発者向けオプション」が表示しません。ビルドを7回タッチしても出ません。
これはカスROM入れてからなるんですけど・・。どこかに設定があると思いますがご存じないですか?
  • tonykart
  • 2014/07/08 (Tue) 00:05:15
Re: boot.img のunpack
報告です。

パズドラのroot回避方法でSonyのTvSideViewが起動し、番組を持出しできました。
①カスロムをWEBから入手
②カスロムのイメージからDefault.propとbuild.propを抜出して少女隊のパズドラ対策
③タブレットへ書込み

でできました。

小職はIT企業に勤めてはいますが営業職で技術職は10年以上前に外れておりました。
UNIX,Linuxはほとんど触ったこともなくMSDOS以来のコマンド&パスに格闘しました。

本掲示板のご親切な皆様のおかげで何とか目標はクリアしました。
まだSuperSUがSUバイナリがない!とアラーム
開発者向けオプションが出ない

のバグはありますが、おいおい解決していきます。
少しandroidが面白くなってきました。

またお知恵を拝借させていただければ幸いです。
  • tonykart
  • 2014/07/08 (Tue) 01:18:04
Re: boot.img のunpack
○tonykartさん

当初目標クリア、おめでとうございます。
良かったら、SNSにご参加下さい。
該当端末でのカスタムファームについて、相談しやすくなると思います。

  • あみ
  • 2014/07/08 (Tue) 07:38:40

返信フォーム





プレビュー (投稿前に内容を確認)