2

我用 UPX 压缩了我的 Android APP 的库。在 Android N Priview5 设备上运行时,出现错误:“dlopen failed: xxx.so has no section headers”。

我找到了 Android Linker 的更新日志: http ://android-developers.blogspot.com/2016/06/android-changes-for-ndk-developers.html

它说“每个 ELF 文件都有包含在节标题中的附加信息。这些标题现在必须存在,因为动态链接器使用它们进行完整性检查。”

但是在压缩 whit UPX 之后,缺少 ELF 的节标题,我该如何解决这个问题。

精灵头:

魔术:7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

等级:ELF32

数据:2的补码,小端

版本:1(当前)

操作系统/ABI:UNIX - 系统 V

ABI 版本:0

类型:DYN(共享对象文件)

机器:ARM

版本:0x1

入口点地址:0x0

程序头的开始:52(文件中的字节)

节头开始:0(文件中的字节)

标志:0x5000000,版本 5 EABI

此标头的大小:52(字节)

程序头大小:32(字节)

程序头数:7

节头大小:0(字节)

节标题数:0

节头字符串表索引:0

4

1 回答 1

1

https://github.com/upx/upx/issues/65

您可以添加一个参数:

--android-shlib 
于 2017-11-15T09:31:47.510 回答