26
26
static char package_name[256 ];
27
27
static int uid;
28
28
static 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" };
30
34
31
35
int is_app_need_hook (JNIEnv *env, jstring appDataDir) {
32
36
if (!appDataDir)
33
37
return 0 ;
34
38
35
-
36
- if (access (FAKE_CONFIGURATION_GLOBAL, F_OK) == 0 ) {
37
- return 1 ;
38
- }
39
-
40
39
const char *app_data_dir = env->GetStringUTFChars (appDataDir, NULL );
41
40
42
41
int user = 0 ;
@@ -50,13 +49,19 @@ int is_app_need_hook(JNIEnv *env, jstring appDataDir) {
50
49
51
50
env->ReleaseStringUTFChars (appDataDir, app_data_dir);
52
51
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 ;
58
56
}
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 ) {
60
65
char path[PATH_MAX];
61
66
snprintf (path, PATH_MAX, CONFIG_PATH " /packages/%d.%s" , user, package_name);
62
67
return access (path, F_OK) == 0 ;
@@ -104,8 +109,10 @@ __attribute__((visibility("default"))) int nativeForkAndSpecializePost(JNIEnv *e
104
109
105
110
jclass build_class = env->FindClass (" android/os/Build" );
106
111
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;" );
109
116
110
117
jstring new_str = env->NewStringUTF (" Xiaomi" );
111
118
env->SetStaticObjectField (build_class, brand_id, new_str);
0 commit comments