攻撃は最大の防御なり

50代おやじの適当なブログです。

[Android] 変更したboot.imgを使ってみる

2011-11-30 09:43:18 | Android
boot.imgの中身をざっと見てきましたが、今回は展開したものからboot.imgを再作成したいと思います。

そのまま固めるのも面白くないのでunsecureなboot.imgを作りましょう。
boot.img-ramdiskの中のdefault.propを以下の様に修正します。

ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.service.adb.enable=1

そうしたら、ここからrepack-bootimg.plを取得してきます。
そしてこれの19行目

system ("mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel $ARGV[0] --ramdisk ramdisk-repack.cpio.gz -o $ARGV[2]");

を自分の端末に合わせ書き換えます

system ("mkbootimg --cmdline 'boot_img_hdr.exeで取得したcmdlineの内容' --base boot_img_hdr.exeで取得したtags_addrの内容 --kernel $ARGV[0] --ramdisk ramdisk-repack.cpio.gz -o $ARGV[2]");

俺の場合はこうなりました。

system ("mkbootimg --cmdline 'console=ttyHSL0 androidboot.hardware=pyramid no_console_suspend=1' --base 0x48000100 --kernel $ARGV[0] --ramdisk ramdisk-repack.cpio.gz -o $ARGV[2]");

それと、 ここからmkbootimgを取ってきます。パスワードは「android」
これは repack-bootimg.plと同じディレクトリに置いて下さい。

使い方は
./repack-bootimg.pl [カーネルのファイル名] [ramdiskのディレクトリ名] [出力するboot.img名]

固まりましたか?
ちなみにカーネルをビルドした時にもこうやって固めます。

最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (936)
2011-11-30 11:24:51
いつもお世話になっております。
待ってました(笑)

mkbootimg.exeの場所が同ディレクトリですと
sh: mkbootimg: command not found
と出力されるので bin フォルダに同じものをコピーしたら上手く働きました。

EVO にて default.prop を編集、flash_imageで書き換えを行ったところ通常起動時に下記の通りとなり成功しました!!!!

C:\Users\ >adb shell id
uid=0(root) gid=0(root)

WEBで調べて「cat /dev/zero > /dev/mtd/mtd3」を実行しましたが下記エラーが出力されましたが無視しました(笑)
「cat: write error: No space left on device」
このコマンドは boot 領域をクリアするであっていますか?

夢は EVO のCPUクロックアップとSWAP導入です。
CustomROMでもCPUクロックは1.2GHzまでなので1.3~1.4GHzまでできれば良いなぁと思ってます。

今回もまたまた勉強になりました~~~^^
返信する
Unknown (アレ)
2011-11-30 21:01:20
PATHが切られていないと駄目でしたか・・・

/dev/zeroのコマンドは中身を消すものです。
fastboot erase boot
と同じ事ですね。

CPUクロックアップはカーネルソースに手を入れなければいけないので
説明するのは難しいです。
CPUの耐性も絡んでくるので出来るかどうかは未知数ですね。
返信する
Unknown (936)
2011-11-30 23:14:21
なるほど^^
一度空にして入れると言うことですね。
了解です。

CPUクロックはそんなにややこしいのですか…。
他機種でオーバークロックの題名でboot.imgだけのもが配布されていたのでboot.imgを開いたどれかのファイルを変えるだけで良いと思っていました…。

これは勉強が必要ですね!!
default.propの改編が上手く行ったので一つ夢が叶いました^^
ありがとうございました~
返信する
Unknown (アレ)
2011-12-01 08:48:29
Androidでは機器構成の違いをカーネルやOSで吸収しています。
みな同じ振る舞いをするように機種固有コードが多々含まれていますので
それぞれに合わせた対応が必要になってきます。

最低限、C言語が使えてカーネルの仕様を知っている事
もしくは、ソースコードから仕様が追える必要があります。
返信する

コメントを投稿