2016-07-26 33 views
2

我用UPX壓縮了我的Android APP的庫。在Android N Priview5設備上運行時,出現錯誤:「dlopen failed:xxx.so has no section header」。Android N Preview dlopen()「沒有分區標題」錯誤

我覺得Android的鏈接的更新日誌: http://android-developers.blogspot.com/2016/06/android-changes-for-ndk-developers.html

它說:「每個ELF文件都有包含在節頭的附加信息,這些頭必須存在了,因爲動態連接器使用它們的健全檢查。 「

但是在壓縮後的UPX中,ELF的節標題丟失了,我該如何解決這個問題。

ELF部首:

魔術:1408米45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00

類別:ELF32

數據:2的補碼,小端

版本:1(當前的)

OS/ABI:UNIX - System V

ABI版本:0

類型:DYN(共享對象文件)

機:ARM

版本:爲0x1

入口點地址:爲0x0

節目的開始標題:52(字節到文件)

開始部分的標題的:0(字節到文件)

標誌:0x5000000,版本5 EABI

此標頭的大小:52(字節)

程序頭的尺寸:32(字節)

編號程序頭的:7

節頭的大小:0(字節)

節標題的數:0

節頭字符串表索引:0

+0

該名男子頁UPX說_「由於版本0.82的部分 頭從UPX存根中刪除「_,並且我看不到禁用它的選項,所以我不確定是否可以繼續使用UPX。也許還有其他的打包機與最新的Android N預覽兼容。 – Michael

+0

謝謝你的回答。我也發現這個信息,但0.82是一個非常舊的版本,我找不到源代碼並看到它的變化。谷歌說:「這並沒有真正的幫助,因爲可以使用廣泛可用的工具來重建剝離的信息。」 。你知道她所說的「廣泛使用的工具」嗎? – dream

回答