|
18 | 18 | public class DebugHook implements IXposedHookLoadPackage {
|
19 | 19 | @Override
|
20 | 20 | public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
|
| 21 | + XC_MethodHook myHook = new XC_MethodHook() { |
| 22 | + @Override |
| 23 | + protected void beforeHookedMethod(MethodHookParam param) throws Throwable { |
| 24 | + Activity app = (Activity) param.thisObject; |
| 25 | + Intent intent = app.getIntent(); |
| 26 | + intent.putExtra("com.android.settings.extra.DEBUGGABLE", false); |
| 27 | + app.setIntent(intent); |
| 28 | + } |
| 29 | + }; |
21 | 30 | if (loadPackageParam.packageName.equals("com.android.settings")) {
|
22 |
| - XposedHelpers.findAndHookMethod( |
23 |
| - "com.android.settings.AppPicker", |
24 |
| - loadPackageParam.classLoader, |
25 |
| - "onCreate", |
26 |
| - "android.os.Bundle", |
27 |
| - new XC_MethodHook() { |
28 |
| - @Override |
29 |
| - protected void beforeHookedMethod(MethodHookParam param) throws Throwable { |
30 |
| - Activity app = (Activity) param.thisObject; |
31 |
| - Intent intent = app.getIntent(); |
32 |
| - intent.putExtra("com.android.settings.extra.DEBUGGABLE", false); |
33 |
| - app.setIntent(intent); |
34 |
| - } |
35 |
| - } |
36 |
| - ); |
| 31 | + String className = ""; |
| 32 | + try{ |
| 33 | + XposedHelpers.findClass("com.android.settings.AppPicker", loadPackageParam.classLoader); |
| 34 | + className = "com.android.settings.AppPicker"; |
| 35 | + XposedBridge.log("XDebuggable: Class com.android.settings.AppPicker FOUND!"); |
| 36 | + } catch(XposedHelpers.ClassNotFoundError e) { |
| 37 | + XposedBridge.log("XDebuggable: Class com.android.settings.AppPicker not found."); |
| 38 | + } |
| 39 | + try{ |
| 40 | + XposedHelpers.findClass("com.android.settings.development.AppPicker", loadPackageParam.classLoader); |
| 41 | + className = "com.android.settings.development.AppPicker"; |
| 42 | + XposedBridge.log("XDebuggable: Class com.android.settings.development.AppPicker FOUND!"); |
| 43 | + } catch(XposedHelpers.ClassNotFoundError e) { |
| 44 | + XposedBridge.log("XDebuggable: Class com.android.settings.development.AppPicker not found."); |
| 45 | + } |
| 46 | + |
| 47 | + if(!className.equals("")){ |
| 48 | + XposedHelpers.findAndHookMethod( |
| 49 | + className, |
| 50 | + loadPackageParam.classLoader, |
| 51 | + "onCreate", |
| 52 | + "android.os.Bundle", |
| 53 | + myHook |
| 54 | + ); |
| 55 | + } |
| 56 | + |
37 | 57 | } else if (loadPackageParam.packageName.equals("android")) {
|
38 | 58 | // Inspired from https://github.com/jecelyin/buildprop/blob/master/app/src/main/java/com/jecelyin/buildprop/BuildPropEditor.java
|
39 | 59 | XposedBridge.hookAllMethods(android.os.Process.class, "start", new XC_MethodHook() {
|
|
0 commit comments