Releases: hexhacking/xDL
xDL v2.2.0
Announcements
Compatible with Android 15. Compatible with 16KB page size.
New features
Added new API xdl_addr4()
.
See the description of xdl_addr4()
in the README for details.
Bugs fixed
Fixed the bug that the wrong address is returned when querying the indirect function address.
When querying the address of an indirect function (STT_GNU_IFUNC) via xdl_sym()
, the correct address is now returned. Previously, the address of the indirect function itself was incorrectly returned.
公告
兼容 Android 15,兼容 16KB page size。
新特性
增加了新的 API xdl_addr4()
。
具体请查看 README 中对 xdl_addr4()
的描述。
Bugs 修复
修复查询 indirect function 地址时返回错误地址的bug。
当通过 xdl_sym()
查询 indirect function (STT_GNU_IFUNC) 地址时,现在能返回正确的地址了,之前错误的返回了 indirect function 本身的地址。
xDL v2.1.1
Bugs fixed
Fixed the bug of incorrect symbol name matching in xdl_dsym()
.
This bug could cause xdl_dsym()
to return the wrong address when .symtab
contains symbol names with the same prefix. For example: querying the address of abcdef
, but incorrectly returning the address of abcde
.
This bug only exists in 2.1.0
version.
Bugs 修复
修复 xdl_dsym()
符号名匹配错误的 bug。
当 .symtab
中含有相同前缀的符号名时,这个 bug 可能会导致 xdl_dsym()
返回错误的地址。比如:查询 abcdef
的地址,但是错误的返回了 abcde
的地址。
这个 bug 只存在于 2.1.0
版本中。
xDL v2.1.0
Announcements
- Compatible with Android 14.
Improve
- Improve the success rate of force dlopen.
公告
- 兼容 Android 14。
改进
- 改进 force dlopen 的成功率。
xDL v2.0.0
xDL v1.2.1
Improve
- Improve the compatibility of
xdl_iterate_phdr()
on Android 4.x.
The first LOAD segment of ELF may be read-only (use the linker option --rosegment
), and the /proc/self/maps
at this time may look like this:
75b8d000-75b9f000 r--p 00000000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75b9f000-75bde000 r-xp 00012000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75bde000-75be1000 r--p 00051000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75be1000-75be2000 rw-p 00054000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
In Android 4.x, xdl_iterate_phdr()
in previous versions of xDL will not recognize the above libquick.so
.
改进
- 改进
xdl_iterate_phdr()
在 Android 4.x 中的兼容性。
ELF 的第一个 LOAD segment 可能是只读的(用链接器选项 --rosegment
),此时的 /proc/self/maps
大概是这样的:
75b8d000-75b9f000 r--p 00000000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75b9f000-75bde000 r-xp 00012000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75bde000-75be1000 r--p 00051000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
75be1000-75be2000 rw-p 00054000 b3:1c 89884 /data/app-lib/io.hexhacking.xdl.sample-2/libquick.so
在 Android 4.x 中,此前版本 xDL 中的 xdl_iterate_phdr()
会无法识别到上面的 libquick.so
。
xDL v1.2.0
Incompatible Changes
xdl_info
structure renamed toxdl_info_t
.
New features
- Added new API
xdl_info()
.xdl_info()
obtains information about the dynamically loaded object referred to byhandle
(obtained by an earlier call toxdl_open
).
不兼容的变更
xdl_info
结构体更名为xdl_info_t
。
新特性
- 增加了新的 API
xdl_info()
。xdl_info()
通过handle
(xdl_open
的返回值)来获取动态加载对象的信息。
xDL v1.1.5
Announcements
- Compatible with Android 13.
公告
- 兼容 Android 13。
xDL v1.1.4
xDL v1.1.3
Bugs fixed
- In previous versions, in Android 5.x,
xdl_dsym
failed ifxdl_open
only specified the ELF filename (without specifying the full path).
Bugs 修复
- 在之前的版本中,在 Android 5.x 中,如果
xdl_open
仅指定 ELF 文件名(没有指定全路径),此时xdl_dsym
会执行失败。
xDL v1.1.2
Bugs fixed
- Fix an occasional SIGBUS crash when parsing
.symtab
in.gnu_debugdata
.
Improve
- Improve the performance of
xdl_open()
andxdl_addr()
in Android 5.x. - Upgrade NDK to 23.1. Enable LLVM ICF and machine outliner.
Bugs 修复
- 修复了一个偶发的在解析
.gnu_debugdata
中的.symtab
时的 SIGBUS 崩溃。
改进
- 改进 Android 5.x 中
xdl_open()
和xdl_addr()
的性能。 - 升级 NDK 版本到 23.1。启用 LLVM ICF 和 machine outliner。