|
2 | 2 |
|
3 | 3 | import android.content.pm.PackageInfo; |
4 | 4 | import android.content.pm.Signature; |
| 5 | +import android.os.Build; |
5 | 6 |
|
6 | 7 | import de.robv.android.xposed.IXposedHookLoadPackage; |
7 | 8 | import de.robv.android.xposed.XC_MethodHook; |
@@ -31,14 +32,15 @@ protected void afterHookedMethod(MethodHookParam param) { |
31 | 32 | } |
32 | 33 | }; |
33 | 34 |
|
34 | | - Class<?> PackageManagerServiceComputer = null; |
35 | | - try { |
36 | | - PackageManagerServiceComputer = XposedHelpers.findClass("com.android.server.pm.PackageManagerService.ComputerEngine", loadedPackage.classLoader); |
37 | | - } catch (Exception ignored) {} |
38 | | - if (PackageManagerServiceComputer != null) { |
39 | | - XposedBridge.hookAllMethods(PackageManagerServiceComputer, "generatePackageInfo", hook); |
| 35 | + String classToHook; |
| 36 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { |
| 37 | + classToHook = "com.android.server.pm.PackageManagerService.ComputerEngine"; |
| 38 | + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { |
| 39 | + classToHook = "com.android.server.pm.PackageManagerService"; |
| 40 | + } else { |
| 41 | + classToHook = "android.app.ApplicationPackageManager"; |
40 | 42 | } |
41 | | - final Class<?> PackageManagerService = XposedHelpers.findClass("com.android.server.pm.PackageManagerService", loadedPackage.classLoader); |
42 | | - XposedBridge.hookAllMethods(PackageManagerService, "generatePackageInfo", hook); |
| 43 | + final Class<?> hookedClass = XposedHelpers.findClass(classToHook, loadedPackage.classLoader); |
| 44 | + XposedBridge.hookAllMethods(hookedClass, "generatePackageInfo", hook); |
43 | 45 | } |
44 | 46 | } |
0 commit comments