From b333824c0fc659a90823614625663f92f878a839 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 7 Feb 2016 20:40:24 +0100 Subject: [PATCH] this should now work both on Android 4 and Android 5 --- README.md | 7 ++-- app/src/main/assets/xposed_init | 3 +- .../it/skarafaz/xposed/nwmonblocker/Mod.java | 40 +++++++------------ .../it/skarafaz/xposed/nwmonblocker/Mod5.java | 37 +++++++++++++++++ 4 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod5.java diff --git a/README.md b/README.md index d766708..583c62c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -Network Monitored Blocker (KitKat) -======================= +Network Monitored Blocker +========================= Simple [Xposed Module](http://repo.xposed.info/module/it.skarafaz.xposed.nwmonblocker) which gets rid of the annoying *Network may be monitored* warning -triggered by adding a CA cert to the key store in **KitKat**. +triggered by adding a CA cert to the key store. ## Notes: * Notification removed. @@ -10,5 +10,4 @@ triggered by adding a CA cert to the key store in **KitKat**. * Warning icon next to *Security* settings menu removed. ## Requirements: -* Android **KitKat** (yes, I said **KitKat** God!). * Xposed Framework v54+. diff --git a/app/src/main/assets/xposed_init b/app/src/main/assets/xposed_init index dc5beb8..2555e38 100644 --- a/app/src/main/assets/xposed_init +++ b/app/src/main/assets/xposed_init @@ -1 +1,2 @@ -it.skarafaz.xposed.nwmonblocker.Mod \ No newline at end of file +it.skarafaz.xposed.nwmonblocker.Mod +it.skarafaz.xposed.nwmonblocker.Mod5 \ No newline at end of file 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 bd2818c..cae346f 100644 --- a/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java +++ b/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod.java @@ -1,35 +1,23 @@ package it.skarafaz.xposed.nwmonblocker; -import de.robv.android.xposed.IXposedHookLoadPackage; +import de.robv.android.xposed.IXposedHookZygoteInit; 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 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) {} - } +/* "Network May Be Monitored" blocker for Android 4.4. */ + +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 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; - } + XposedHelpers.findAndHookMethod(devicePolicyManager, "hasAnyCaCertsInstalled", new XC_MethodReplacement() { + @Override + protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable { + return false; + } }); } } diff --git a/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod5.java b/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod5.java new file mode 100644 index 0000000..f04d1eb --- /dev/null +++ b/app/src/main/java/it/skarafaz/xposed/nwmonblocker/Mod5.java @@ -0,0 +1,37 @@ +package it.skarafaz.xposed.nwmonblocker; + +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; + +/* "Network May Be Monitored" blocker for Android 5. */ + +public class Mod5 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) {} + } + + 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