2626static char package_name[256 ];
2727static int uid;
2828static int enable_hook;
29- static std::vector<std::string> packages = {};
29+ static std::vector<std::string> blackList = {" com.google.android" ,
30+ " de.robv.android.xposed.installer" ,
31+ " com.xiaomi.xmsf" ,
32+ " com.tencent.mm" ,
33+ " top.trumeet.mipush" };
3034
3135int is_app_need_hook (JNIEnv *env, jstring appDataDir) {
3236 if (!appDataDir)
3337 return 0 ;
3438
35-
36- if (access (FAKE_CONFIGURATION_GLOBAL, F_OK) == 0 ) {
37- return 1 ;
38- }
39-
4039 const char *app_data_dir = env->GetStringUTFChars (appDataDir, NULL );
4140
4241 int user = 0 ;
@@ -50,13 +49,19 @@ int is_app_need_hook(JNIEnv *env, jstring appDataDir) {
5049
5150 env->ReleaseStringUTFChars (appDataDir, app_data_dir);
5251
53- if (access (CONFIG_PATH " /packages" , R_OK) != 0 ) {
54- for (auto &s : packages) {
55- if (strcmp (s.c_str (), package_name) == 0 ) {
56- return 1 ;
57- }
52+ std::string pkgName = package_name;
53+ for (auto &s : blackList) {
54+ if (pkgName.find (s) != std::string::npos) {
55+ return 0 ;
5856 }
59- } else {
57+ }
58+
59+
60+ if (access (FAKE_CONFIGURATION_GLOBAL, F_OK) == 0 ) {
61+ return 1 ;
62+ }
63+
64+ if (access (CONFIG_PATH " /packages" , R_OK) == 0 ) {
6065 char path[PATH_MAX];
6166 snprintf (path, PATH_MAX, CONFIG_PATH " /packages/%d.%s" , user, package_name);
6267 return access (path, F_OK) == 0 ;
@@ -104,8 +109,10 @@ __attribute__((visibility("default"))) int nativeForkAndSpecializePost(JNIEnv *e
104109
105110 jclass build_class = env->FindClass (" android/os/Build" );
106111 jfieldID brand_id = env->GetStaticFieldID (build_class, " BRAND" , " Ljava/lang/String;" );
107- jfieldID manufacturer_id = env->GetStaticFieldID (build_class, " MANUFACTURER" , " Ljava/lang/String;" );
108- jfieldID product_id = env->GetStaticFieldID (build_class, " PRODUCT" , " Ljava/lang/String;" );
112+ jfieldID manufacturer_id = env->GetStaticFieldID (build_class, " MANUFACTURER" ,
113+ " Ljava/lang/String;" );
114+ jfieldID product_id = env->GetStaticFieldID (build_class, " PRODUCT" ,
115+ " Ljava/lang/String;" );
109116
110117 jstring new_str = env->NewStringUTF (" Xiaomi" );
111118 env->SetStaticObjectField (build_class, brand_id, new_str);
0 commit comments