objdump на ядре android
Я взял ядро Android linux, разделил его из заголовка gzip и распаковал его. Однако, когда я пытаюсь сделать objdump из android ndk, чтобы сбросить файл, я получаю файловый формат не распознанной ошибки.
Кто-нибудь знает, как получить таблицу символов из двоичного изображения.
На моем устройстве android я могу сделать следующее, Чтобы получить таблицу символов: cat / proc / kallsyms
2 ответа:
Это не уникально для 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 binary в сжатом контейнере и добавление набора загрузочных и декомпрессионных утилит. Если вам нужен образ ядра для отладки. файлvmlinux
- это то, что вам нужно, хотя я не знаю, существует ли он в Android NDK.
Попробуйте использоватьnm .
$ nm path/to/someobj