2

android linuxカーネルをgzipヘッダーから分割し、解凍しました。ただし、android ndkからobjdumpを実行してファイルをダンプしようとすると、ファイル形式が認識されないというエラーが発生します。

バイナリイメージからシンボルテーブルを取得する方法は誰でも知っています。

私のAndroidデバイスでは、シンボルテーブルを取得するために次のことを行うことができます:cat / proc / kallsyms

4

2 に答える 2

3

これはAndroidに固有のものではありません。ほとんどの(すべて?)Linuxシステムで発生します。Linuxカーネル(Androidのベース)の起動可能なイメージは、適切なELFバイナリではありません。

# file /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
/boot/vmlinuz-2.6.38.7-desktop-1mnb2: Linux kernel x86 boot executable bzImage, version 2.6.38.7-desktop-1mnb2 (thomas@celeste.mandriva.com) #1 SMP Sun, RO-rootFS, root_dev 0x902, swap_dev 0x3, Normal VGA
# nm /boot/vmlinuz-2.6.38.7-desktop-1mnb2 
nm: /boot/vmlinuz-2.6.38.7-desktop-1mnb2: File format not recognized

vmlinuxブート可能イメージは、カーネルELFバイナリを圧縮コンテナにラップし、ブートユーティリティと解凍ユーティリティのセットを追加することによって作成されます。デバッグ用のカーネルイメージが必要な場合。ファイルはあなたが必要とするvmlinuxものです-しかし、それがAndroidNDKのどこに存在するかはわかりません。

于 2011-12-20T17:37:38.483 に答える
1

nmを使用してみてください。

$ nm path/to/someobj
于 2011-12-20T17:34:29.043 に答える