Patrons
Patrons copied to clipboard
🎉 A framework for improving android 32bit app stability. (Alleviate crashes caused by insufficient virtual memory)
Patrons在信号处理这块有点问题: xhook和Patrons都针对SIGSEGV做了特殊处理,用来防止自己的core dump扩散到外面。外面的信号被xhook或者Patrons捕获到时会调用sigaction把old信号处理函数重新注册成新的信号处理函数(等同放弃了自己的信号保护机制), 按代码信号处理函数注册时机来说,如果Patrons代码块的信号处理函数捕获到xhook代码块的SIGSEGV,Patrons代码块判断不是自己内部的便放弃了自己的信号处理函数并把xhook的信号处理函数注册成新的信号处理函数,最终会触发了xhook的信号处理函数,程序不会崩溃,程序执行一段时间后,如果Patrons代码块发出了SIGSEGV信号,SIGSEGV信号会被xhook的信号处理函数处理,程序就崩溃了。并没有做到杜绝因为Patrons崩溃而造成APP崩溃。 参考Android处理方案,直接调用旧的信号处理函数即可。 https://cs.android.com/android/platform/superproject/+/master:external/gwp_asan/gwp_asan/optional/segv_handler_posix.cpp  回归机型: Android 12 ONEPLUS LE2110 SAMSUNG SM-A217F Android 11 XIAOMI M2102J2SC OPPO CPH2067 GOOGLE Pixel 4 XL Android 10 BLACKSHARK SHARK KLE-A0 HUAWEI...