matrix
matrix copied to clipboard
android demo在 matrix hook时出现Fail to do hook common pre-hook initialize
异常类型:app 运行时异常
手机型号:魅族E3
手机系统版本:Android 7.1.1
matrix版本:最新版本2.0.5?
gradle版本:如: 4.1.0
问题描述:android demo在执行 matrix hook时出现Fail to do hook common pre-hook initialize
堆栈/日志:
2022-03-23 11:16:02.678 2733-2733/? W/System.err: com.tencent.matrix.hook.HookManager$a: Fail to do hook common pre-hook initialize.
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at com.tencent.matrix.hook.HookManager.b(HookManager.java:14)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at sample.tencent.matrix.hooks.TestHooksActivity.onCreate(TestHooksActivity.java:34)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.Activity.performCreate(Activity.java:6766)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2786)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2894)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.ActivityThread.-wrap12(ActivityThread.java)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1613)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.os.Looper.loop(Looper.java:154)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6371)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:936)
2022-03-23 11:16:02.679 2733-2733/? W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)
但该demo却可以正常在红米k40 Android11上运行,并导出memory_hook.log
跟了一下源码,发现在SoLoadMonitor.cpp里,只要是android 7.0,7.1.1的就返回失败
bool InstallSoLoadMonitor() {
std::lock_guard lock(sInstalledMaskMutex);
if (sInstalled) {
return true;
}
int sdkVer = android_get_device_api_level();
//判断时24,25的android系统7.0,7.1.1的就返回false
if (sdkVer == 24 || sdkVer == 25) {
LOGE(LOG_TAG, "Does not support N and N_MR1 so far.");
return false;
}
......
}
这里不太清楚在7.0,7.1.1返回失败的原因,如果真的因为某些特殊的原因如hook不支持,建议官方在readme上标识一下