diff options
| -rw-r--r-- | jni/tunflags.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/jni/tunflags.cpp b/jni/tunflags.cpp index a5a48ff..428ca9b 100644 --- a/jni/tunflags.cpp +++ b/jni/tunflags.cpp @@ -19,6 +19,11 @@ using zygisk::Api; using zygisk::ServerSpecializeArgs; +static const char *package_whitelist[] = { + "com.wireguard.android", + "com.wireguard.android.debug", +}; + #define LOG_TAG "WireGuard/TunFlags" #define ALOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) #define ALOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) @@ -44,7 +49,13 @@ static bool is_wireguard(JNIEnv *env, jobject vpn_obj) } const char *package = env->GetStringUTFChars(package_obj, NULL); - bool ret = !strncmp("com.wireguard.android", package, 21); + bool ret = false; + for (size_t i = 0; i < sizeof(package_whitelist) / sizeof(*package_whitelist); ++i) { + if (!strcmp(package_whitelist[i], package)) { + ret = true; + break; + } + } env->ReleaseStringUTFChars(package_obj, package); return ret; } |
