Android — возможно ли получить версию общего объекта?

Я пытаюсь отследить ошибку в моей линии программного обеспечения. У меня есть две версии сборки версии 2.0.962 и 2.0.966. Единственная разница между этими версиями — это файл lib.so. Чтобы выяснить, с чего начать поиск в дереве исходных текстов lib.so, мне нужно знать номер его версии в каждой из сборок релиза.

Существует ли инструмент командной строки для печати версии общего объекта?

3

Решение

Я никогда не занимался нативным программированием для Android, но поскольку Android использует ядро ​​Linux, используемый формат исполняемых файлов, скорее всего, будет «ELF». Что касается ELF, в файле нет информации о версии Shared объекта. Так что, если само имя файла не говорит что-то вроде "libXXX.VERSION.so", нет другого способа узнать номер версии общего объекта. Этот метод обычно используется в Linux.

Мои предложения по решению вашей проблемы:

  1. Используйте Дата, измененную, если возможно, чтобы дифференцировать общие объекты
  2. Используйте dlopen () или аналогичный, чтобы открыть общий объект и попытаться увидеть экспортируемые функции.

Источник: http://man7.org/linux/man-pages/man5/elf.5.html
Примечание: E_VERSION в исполняемом файле — это версия формата ELF, а не исполняемого.

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector