@@ -20,7 +20,7 @@ public class Patch {
20
20
public static void handleLoadPackage (XC_LoadPackage .LoadPackageParam lpparam , XSharedPreferences prefs ) throws Throwable {
21
21
if (!("android" .equals (lpparam .packageName )) || !(lpparam .processName .equals ("android" )))
22
22
return ;
23
- XC_MethodHook hookDowngrade = new XC_MethodHook () {
23
+ XC_MethodHook hookDowngradeObject = new XC_MethodHook () {
24
24
@ Override
25
25
protected void beforeHookedMethod (MethodHookParam param ) throws Throwable {
26
26
var pkg = (String ) XposedHelpers .callMethod (param .args [0 ], "getPackageName" );
@@ -29,7 +29,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
29
29
}
30
30
};
31
31
32
- XC_MethodHook hookDowngrade2 = new XC_MethodHook () {
32
+ XC_MethodHook hookDowngradeBoolean = new XC_MethodHook () {
33
33
@ Override
34
34
protected void beforeHookedMethod (MethodHookParam param ) throws Throwable {
35
35
var pkg = (String ) XposedHelpers .callMethod (param .args [0 ], "getPackageName" );
@@ -40,11 +40,12 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
40
40
41
41
42
42
switch (Build .VERSION .SDK_INT ) {
43
+ case Build .VERSION_CODES .VANILLA_ICE_CREAM : // 35
43
44
case Build .VERSION_CODES .UPSIDE_DOWN_CAKE : // 34
44
45
findAndHookMethod ("com.android.server.pm.PackageManagerServiceUtils" , lpparam .classLoader ,
45
46
"checkDowngrade" ,
46
47
"com.android.server.pm.pkg.AndroidPackage" ,
47
- "android.content.pm.PackageInfoLite" , hookDowngrade
48
+ "android.content.pm.PackageInfoLite" , hookDowngradeObject
48
49
);
49
50
break ;
50
51
case Build .VERSION_CODES .TIRAMISU : // 33
@@ -53,7 +54,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
53
54
"com.android.server.pm.parsing.pkg.AndroidPackage" ,
54
55
"android.content.pm.PackageInfoLite" );
55
56
if (checkDowngrade != null ) {
56
- XposedBridge .hookMethod (checkDowngrade , hookDowngrade );
57
+ XposedBridge .hookMethod (checkDowngrade , hookDowngradeObject );
57
58
}
58
59
break ;
59
60
case Build .VERSION_CODES .S_V2 : // 32
@@ -67,14 +68,14 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
67
68
"android.content.pm.PackageInfoLite" );
68
69
if (checkDowngrade1 != null ) {
69
70
// 允许降级
70
- XposedBridge .hookMethod (checkDowngrade1 , hookDowngrade );
71
+ XposedBridge .hookMethod (checkDowngrade1 , hookDowngradeObject );
71
72
}
72
73
// exists on flyme 9(Android 11) only
73
74
var flymeCheckDowngrade = XposedHelpers .findMethodExactIfExists (pmService , "checkDowngrade" ,
74
75
"android.content.pm.PackageInfoLite" ,
75
76
"android.content.pm.PackageInfoLite" );
76
77
if (flymeCheckDowngrade != null )
77
- XposedBridge .hookMethod (flymeCheckDowngrade , hookDowngrade2 );
78
+ XposedBridge .hookMethod (flymeCheckDowngrade , hookDowngradeBoolean );
78
79
}
79
80
break ;
80
81
case Build .VERSION_CODES .Q : // 29
0 commit comments