| 13 | static bool hideXposedClass = false; |
| 14 | |
| 15 | HOOK_JNI(jobject, findLoadedClass, JNIEnv *env, jobject obj, jobject class_loader, jstring name) { |
| 16 | const char * nameC = env->GetStringUTFChars(name, JNI_FALSE); |
| 17 | // ALOGD("findLoadedClass: %s", nameC); |
| 18 | if (hideXposedClass) { |
| 19 | if (strstr(nameC, "de/robv/android/xposed/") || |
| 20 | strstr(nameC, "me/weishu/epic") || |
| 21 | strstr(nameC, "me/weishu/exposed") || |
| 22 | strstr(nameC, "de.robv.android") || |
| 23 | strstr(nameC, "me.weishu.epic") || |
| 24 | strstr(nameC, "me.weishu.exposed")) { |
| 25 | return nullptr; |
| 26 | } |
| 27 | } |
| 28 | jobject result = orig_findLoadedClass(env, obj, class_loader, name); |
| 29 | env->ReleaseStringUTFChars(name, nameC); |
| 30 | return result; |
| 31 | } |
| 32 | |
| 33 | void VMClassLoaderHook::init(JNIEnv *env) { |
| 34 | const char *className = "java/lang/VMClassLoader"; |
nothing calls this directly
no outgoing calls
no test coverage detected