是否有可能获得共享对象的版本?

时间:2015-07-16 20:19:28

标签: android c++ linux adb

我正在尝试追踪我的软件系列中的错误。我有两个发布版本2.0.962和2.0.966。这些版本之间的唯一区别是lib.so文件。为了找出从lib.so的源代码树开始查找的位置,我需要知道每个发布版本中的版本号。

是否有用于打印共享对象版本的命令行工具?

1 个答案:

答案 0 :(得分:0)

我从未做过原生的android编程,但由于Android使用Linux内核,所使用的可执行格式很可能是" ELF"。就ELF而言,文件中没有存储共享对象的版本信息。因此,除非文件名本身说的是"libXXX.VERSION.so",否则没有其他方法可以找出共享对象的版本号。这种技术通常用于Linux。

我解决您问题的建议是:

  1. 如果可能,请使用修改日期来区分共享对象
  2. 使用dlopen()或类似方法打开共享对象并尝试查看正在导出的函数。
  3. 来源:http://man7.org/linux/man-pages/man5/elf.5.html 注意:可执行文件中的E_VERSION是ELF格式的版本,而不是可执行文件。