HighCapable / YukiHookAPI

⛱️ An efficient Hook API and Xposed Module solution built in Kotlin.
https://highcapable.github.io/YukiHookAPI/
Apache License 2.0
1.42k stars 105 forks source link

在已启用了Xposed模块时,安装该模块会导致系统出错 #80

Closed huanli233 closed 3 months ago

huanli233 commented 3 months ago

在已启用了使用YukiHookAPI的Xposed模块时,再次安装该模块完成后会出现无法打开应用,且系统应用会纷纷爆停止运行:

08-01 03:22:11.513  2780  2780 F libc    : Fatal signal 6 (SIGABRT), code -6 in tid 2780 (main), pid 2780 (main)
08-01 03:22:11.569  2783  2783 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-01 03:22:11.569  2783  2783 F DEBUG   : Build fingerprint: 'XTC/I25/msm8937_32go_i25:8.1.0/OPM1.171019.026/root12151747:user/release-keys'
08-01 03:22:11.569  2783  2783 F DEBUG   : Revision: '0'
08-01 03:22:11.569  2783  2783 F DEBUG   : ABI: 'arm'
08-01 03:22:11.569  2783  2783 F DEBUG   : pid: 2780, tid: 2780, name: main  >>> zygote <<<
08-01 03:22:11.579  2783  2783 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
08-01 03:22:11.584  2783  2783 F DEBUG   : Abort message: 'jni_internal.cc:593] JNI FatalError called: frameworks/base/core/jni/com_android_internal_os_Zygote.cpp:1101: Unable to reopen whitelisted descriptors.'
08-01 03:22:11.585  2783  2783 F DEBUG   :     r0 00000000  r1 00000adc  r2 00000006  r3 00000008
08-01 03:22:11.585  2783  2783 F DEBUG   :     r4 00000adc  r5 00000adc  r6 bec5e7ac  r7 0000010c
08-01 03:22:11.585  2783  2783 F DEBUG   :     r8 00000000  r9 b2e0c1e8  sl bec5e860  fp b2e2c2a0
08-01 03:22:11.585  2783  2783 F DEBUG   :     ip 00000002  sp bec5e798  lr b58af779  pc b58a949e  cpsr 200e0030
08-01 03:22:11.586  2783  2783 F DEBUG   :
08-01 03:22:11.586  2783  2783 F DEBUG   : backtrace:
08-01 03:22:11.587  2783  2783 F DEBUG   :     #00 pc 0001a49e  /system/lib/libc.so (abort+63)
08-01 03:22:11.587  2783  2783 F DEBUG   :     #01 pc 000000f9  /system/lib/libart.so (offset 0x34f000)

(重启后恢复正常,仅启用并安装后系统会出问题)

即便该模块的Hook入口什么都不干,仍然存在此问题:

@InjectYukiHookWithXposed
object HookMain: IYukiHookXposedInit {
    override fun onHook() {}
}

(我还尝试过禁用一些可禁用的功能,如DataChannelXposedModuleStatus,但对此问题没有效果。)

此问题可能是该设备的一些特殊环境导致的,但我测试得出直接使用Xposed API不会出现此问题,并且阅读YukiHookAPI的源码后没有找到可能与此问题有关的逻辑。

fankes commented 3 months ago

由于这个库是一个纯 API 而不涉及底层,所以它不存在导致底层崩溃的可能性,你也提到了系统问题,所以还请自行检查是否为系统环境所导致的特殊情况,我帮不了你什么。

huanli233 commented 3 months ago

由于这个库是一个纯 API 而不涉及底层,所以它不存在导致底层崩溃的可能性,你也提到了系统问题,所以还请自行检查是否为系统环境所导致的特殊情况,我帮不了你什么。

是的,但是确实只要是用了YukiHookAPI的模块就会有这个问题,并且这个模块就是为此设备的系统开发的。我再自己尝试找找原因吧,谢谢了

fankes commented 3 months ago

由于这个库是一个纯 API 而不涉及底层,所以它不存在导致底层崩溃的可能性,你也提到了系统问题,所以还请自行检查是否为系统环境所导致的特殊情况,我帮不了你什么。

是的,但是确实只要是用了 YukiHookAPI 的模块就会有这个问题,并且这个模块就是为此设备的系统开发的。我再自己尝试找找原因吧,谢谢了

由于异常堆栈不在 JVM 层,所以也无法排查是什么地方的问题,如果你研究明白了问题也可以告诉我,我收录一下,但是小众或者这种设备感觉适配的可能性也不大,只能随缘。