@@ -2,6 +2,15 @@ package com.parallelc.micts
2
2
3
3
import android.content.Context
4
4
import android.os.Build
5
+ import com.parallelc.micts.config.TriggerService
6
+ import com.parallelc.micts.config.XposedConfig.CONFIG_NAME
7
+ import com.parallelc.micts.config.XposedConfig.DEFAULT_CONFIG
8
+ import com.parallelc.micts.config.XposedConfig.KEY_DEVICE_SPOOF
9
+ import com.parallelc.micts.config.XposedConfig.KEY_GESTURE_TRIGGER
10
+ import com.parallelc.micts.config.XposedConfig.KEY_SPOOF_BRAND
11
+ import com.parallelc.micts.config.XposedConfig.KEY_SPOOF_DEVICE
12
+ import com.parallelc.micts.config.XposedConfig.KEY_SPOOF_MANUFACTURER
13
+ import com.parallelc.micts.config.XposedConfig.KEY_SPOOF_MODEL
5
14
import com.parallelc.micts.hooker.InvokeOmniHooker
6
15
import com.parallelc.micts.hooker.LongPressHomeHooker
7
16
import com.parallelc.micts.hooker.NavStubViewHooker
@@ -12,7 +21,7 @@ import io.github.libxposed.api.XposedModuleInterface.ModuleLoadedParam
12
21
import io.github.libxposed.api.XposedModuleInterface.PackageLoadedParam
13
22
import io.github.libxposed.api.XposedModuleInterface.SystemServerLoadedParam
14
23
15
- lateinit var module: ModuleMain
24
+ var module: ModuleMain ? = null
16
25
17
26
class ModuleMain (base : XposedInterface , param : ModuleLoadedParam ) : XposedModule(base, param) {
18
27
@@ -23,7 +32,7 @@ class ModuleMain(base: XposedInterface, param: ModuleLoadedParam) : XposedModule
23
32
override fun onSystemServerLoaded (param : SystemServerLoadedParam ) {
24
33
super .onSystemServerLoaded(param)
25
34
26
- if (Build . VERSION . SDK_INT >= Build . VERSION_CODES . UPSIDE_DOWN_CAKE ) {
35
+ if (TriggerService .getSupportedServices().contains( TriggerService . CSHelper ) ) {
27
36
runCatching {
28
37
VIMSHooker .hook(param)
29
38
}.onFailure { e ->
@@ -43,8 +52,11 @@ class ModuleMain(base: XposedInterface, param: ModuleLoadedParam) : XposedModule
43
52
super .onPackageLoaded(param)
44
53
if (! param.isFirstPackage) return
45
54
55
+ val prefs = getRemotePreferences(CONFIG_NAME )
56
+
46
57
when (param.packageName) {
47
58
" com.miui.home" , " com.mi.android.globallauncher" -> {
59
+ if (! prefs.getBoolean(KEY_GESTURE_TRIGGER , DEFAULT_CONFIG [KEY_GESTURE_TRIGGER ] as Boolean )) return
48
60
runCatching {
49
61
val circleToSearchHelper = param.classLoader.loadClass(" com.miui.home.recents.cts.CircleToSearchHelper" )
50
62
hook(circleToSearchHelper.getDeclaredMethod(" invokeOmni" , Context ::class .java, Int ::class .java, Int ::class .java), InvokeOmniHooker ::class .java)
@@ -60,19 +72,20 @@ class ModuleMain(base: XposedInterface, param: ModuleLoadedParam) : XposedModule
60
72
}
61
73
}
62
74
" com.google.android.googlequicksearchbox" -> {
75
+ if (! prefs.getBoolean(KEY_DEVICE_SPOOF , DEFAULT_CONFIG [KEY_DEVICE_SPOOF ] as Boolean )) return
63
76
val buildClass = param.classLoader.loadClass(" android.os.Build" )
64
77
val MANUFACTURER = buildClass.getDeclaredField(" MANUFACTURER" )
65
78
MANUFACTURER .isAccessible = true
66
- MANUFACTURER .set(null , " Google " )
79
+ MANUFACTURER .set(null , prefs.getString( KEY_SPOOF_MANUFACTURER , DEFAULT_CONFIG [ KEY_SPOOF_MANUFACTURER ] as String ) )
67
80
val BRAND = buildClass.getDeclaredField(" BRAND" )
68
81
BRAND .isAccessible = true
69
- BRAND .set(null , " google " )
82
+ BRAND .set(null , prefs.getString( KEY_SPOOF_BRAND , DEFAULT_CONFIG [ KEY_SPOOF_BRAND ] as String ) )
70
83
val MODEL = buildClass.getDeclaredField(" MODEL" )
71
84
MODEL .isAccessible = true
72
- MODEL .set(null , " Pixel 8 Pro " )
85
+ MODEL .set(null , prefs.getString( KEY_SPOOF_MODEL , DEFAULT_CONFIG [ KEY_SPOOF_MODEL ] as String ) )
73
86
val DEVICE = buildClass.getDeclaredField(" DEVICE" )
74
87
DEVICE .isAccessible = true
75
- DEVICE .set(null , " husky " )
88
+ DEVICE .set(null , prefs.getString( KEY_SPOOF_DEVICE , DEFAULT_CONFIG [ KEY_SPOOF_DEVICE ] as String ) )
76
89
}
77
90
}
78
91
}
0 commit comments