1
1
package de.binarynoise.openWifiOnTop
2
2
3
- import de.binarynoise.logger.Logger.log
4
3
import de.binarynoise.reflection.cast
5
4
import de.binarynoise.reflection.findDeclaredMethod
6
5
import de.robv.android.xposed.IXposedHookLoadPackage
7
- import de.robv.android.xposed.XposedBridge
8
6
import de.robv.android.xposed.XposedHelpers
9
7
import de.robv.android.xposed.callbacks.XC_LoadPackage
10
- import de.robv.android.xposed.XC_MethodHook as MethodHook
11
8
12
9
class Hook : IXposedHookLoadPackage {
13
10
@@ -18,7 +15,7 @@ class Hook : IXposedHookLoadPackage {
18
15
val isPrimary = WifiEntryClass .findDeclaredMethod(" isPrimaryNetwork" )
19
16
val WIFI_PICKER_COMPARATOR = XposedHelpers .getStaticObjectField(WifiEntryClass , " WIFI_PICKER_COMPARATOR" ).cast<Comparator <Any >>()
20
17
21
- val comparator: ( Any , Any ) -> Int = { a, b ->
18
+ val comparator: Comparator < Any > = Comparator { a, b ->
22
19
val aPrimary = isPrimary.invoke(a) as Boolean
23
20
val bPrimary = isPrimary.invoke(b) as Boolean
24
21
@@ -45,28 +42,6 @@ class Hook : IXposedHookLoadPackage {
45
42
else WIFI_PICKER_COMPARATOR .compare(a, b)
46
43
}
47
44
48
- val WifiPickerTrackerClass = lpparam.classLoader.loadClass(" com.android.wifitrackerlib.WifiPickerTracker" )
49
-
50
- try {
51
- XposedHelpers .findAndHookMethod(WifiPickerTrackerClass , " getWifiEntries" , object : MethodHook () {
52
- override fun afterHookedMethod (param : MethodHookParam ) = with (param) {
53
- result.cast<MutableList <* >>().sortWith(comparator)
54
- }
55
- })
56
- log(" handleLoadPackage: hooked getWifiEntries" )
57
- } catch (t: Throwable ) {
58
- XposedBridge .log(t)
59
- }
60
-
61
- try {
62
- XposedBridge .hookAllMethods(WifiPickerTrackerClass , " updateWifiEntries" , object : MethodHook () {
63
- override fun afterHookedMethod (param : MethodHookParam ): Unit = with (param) {
64
- XposedHelpers .getObjectField(thisObject, " mWifiEntries" ).cast<MutableList <* >>().sortWith(comparator)
65
- }
66
- })
67
- log(" handleLoadPackage: hooked updateWifiEntries" )
68
- } catch (t: Throwable ) {
69
- XposedBridge .log(t)
70
- }
45
+ XposedHelpers .setStaticObjectField(WifiEntryClass , " WIFI_PICKER_COMPARATOR" , comparator)
71
46
}
72
47
}
0 commit comments