From d05623c097225f987c208c9dd29620bfc62f8177 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 31 Jan 2016 22:33:14 +0100 Subject: [PATCH] update to Lollipop --- .../it/skarafaz/xposed/nwmonblocker/Mod.java | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java b/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java index b0769b7..bd2818c 100644 --- a/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java +++ b/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java @@ -1,21 +1,35 @@ package it.skarafaz.xposed.nwmonblocker; -import de.robv.android.xposed.IXposedHookZygoteInit; +import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodReplacement; +import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.XposedHelpers; +import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; -public class Mod implements IXposedHookZygoteInit { - private static final String CLASS_DEVICE_POLICY_MANAGER = "android.app.admin.DevicePolicyManager"; - - @Override - public void initZygote(StartupParam startupParam) throws Throwable { - final Class devicePolicyManager = XposedHelpers.findClass(CLASS_DEVICE_POLICY_MANAGER, null); +public class Mod implements IXposedHookLoadPackage { + // Just a helper function, useful to figure out package names + private void tryToLoad(String className, ClassLoader loader) { + try { + XposedHelpers.findClass(className, loader); + XposedBridge.log(" Found " + className); + } + catch (Throwable t) {} + } - XposedHelpers.findAndHookMethod(devicePolicyManager, "hasAnyCaCertsInstalled", new XC_MethodReplacement() { - @Override - protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable { - return false; - } + public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { + if (!lpparam.packageName.equals("android")) + return; + + final Class userHandle = XposedHelpers.findClass("android.os.UserHandle", lpparam.classLoader); + final Class notifyTask = XposedHelpers.findClass("com.android.server.devicepolicy.DevicePolicyManagerService$MonitoringCertNotificationTask", lpparam.classLoader); + + XposedHelpers.findAndHookMethod(notifyTask, "manageNotification", userHandle, + new XC_MethodReplacement() { + @Override + protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable { + XposedBridge.log("Not showing FUD notification"); + return null; + } }); } } -- 2.30.2