bytedance / bhook

:fire: ByteHook is an Android PLT hook library which supports armeabi-v7a, arm64-v8a, x86 and x86_64.
https://github.com/bytedance/bhook/tree/main/doc#readme
MIT License
2.05k stars 315 forks source link

android 4.4 等版本找不到符号 sigfillset #27

Closed cogbee closed 2 years ago

cogbee commented 2 years ago

hi: 之前使用 xhook,看到推荐准备使用 bhook。我看介绍说是支持 android 5 一下的版本的。但是在实际运行过程中出现问题: cannot locate symbol "sigfillset"

我看代码的确是使用了 sigfillset,网上看了下这个符号是在 android 5 才引入。所以是不是 bhook 其实只支持 android 5 及其以上版本?

caikelun commented 2 years ago

bytehook是支持android 4.x的。你遇到的编译问题应该是ndk版本导致,请先使用工程中指定的版本。如果要移植代码,ndk版本带来的编译问题你需要自己处理了。

cogbee commented 2 years ago

我遇到的不是编译问题,而是运行时问题。我已经编译成功了,在 4.4 系统上运行出了这个问题。

caikelun commented 2 years ago

你可以比较下你编译的so和maven central上编译好的so,看下区别。bytehook是可以在android 4.x上运行的,我们线上都是在使用的。不同版本ndk的头文件对某些函数的处理会有不同。

cogbee commented 2 years ago

好破案了。是我编译的独立工具链指定的 api 设置了21,目前设置成 16 就好了。

感谢。