攻撃は最大の防御なり

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

[Android] カーネルのconfig

2011-11-22 10:00:14 | Android
boot.imgを展開して見てきましたがカーネルの方にも着目してみたいと思います。

まずはここからextract-ikconfigをダウンロードして来て下さい。
textで開いてしまうと思うのでリンク先を保存で。
このextract-ikconfigはLinuxカーネルソースのscriptsディレクトリに入っている物ですが
たまに変更がかかるのでなるべく新しいものを使った方がいいですね。
使い方は

./extract-ikconfig boot.img-kernel.gz > config


configってファイルが出来るので中身を見て下さい。
Androidのカーネルをビルドする時には多くの機能の中から
何を取り入れるかを選択していくのですが
これはこのカーネルがどの機能を使えるようにしてあるかの一覧です。

このconfigがあってソースがあれば全く同じ物がビルド出来る事になるわけです。
(HTCのカーネルソースはここにありますねぇ)
そして例えばCONFIG_NFS_FSをyにしてやってビルドしたりするとAndroid端末から
ネットワークドライブのマウントが可能になったり、カスタムカーネル作りに足を突っ込む事になりますw

extract-ikconfigの良い所は自分が持っていない端末であってもboot.imgが入手できれば
configの内容を見られる事です。
ちなみに起動中の端末だとadbから

zcat /proc/config.gz


としても取得できます。

最新の画像もっと見る

4 コメント

コメント日が  古い順  |   新しい順
Unknown (936)
2011-11-22 14:47:50
すいません。
Cygwinから
./extract-ikconfig boot.img-kernel.gz > config
すると
./extract-ikconfig: line 7: cc: command not found
と表示されます。
一応Linux cc コマンドで検索しましたがHITしません…。
Cygwinのsetup.exeから導入するかと思いどれが該当するか分らず総インストールです(笑)
Unknown (アレ)
2011-11-22 16:14:18
あれ?すみません。
これの他にbinoffsetが必要なんでした。
ccはgcc-coreパッケージの中に入っています。

後、追加で下記からbinoffset.cをダウンロードし
extract-ikconfigのカレントにscriptsディレクトリを作り入れて下さい。

http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob_plain;f=scripts/binoffset.c;hb=refs/heads/linux-2.6.32.y
Unknown (936)
2011-11-22 17:28:44
gcc-core と binoffset.c の導入で正常に動作しました^^

試した boot.img は EVO と IS04、IS04Custom を見比べてみました。
CONFIG_NFS_FS に関してはどのカーネルも実装していませんでした。

実は個人的に EVO に SWAP を導入したくて以前色々とやったのですがダメでした。
そこで下記の項目を見つけました。

# CONFIG_SWAP is not set

どうりで SWAP が働かない訳ですね(笑)
ちなみに IS04Custom の方は y となっており、作成の方が実装してくれたのですね^^

ぃゃ~こうして少しずつ進めて頂いているお陰で過去の疑問が徐々に解明されて行きます。

感謝です^^
Unknown (アレ)
2011-11-22 22:10:27
動いて良かったです。

機種毎に見比べると結構面白いですよね。
最新機種のROMを拾ったら、こうやって見比べています。

コメントを投稿