diff --git a/app/src/main/java/just/trust/me/Main.java b/app/src/main/java/just/trust/me/Main.java index f135240..41824c9 100644 --- a/app/src/main/java/just/trust/me/Main.java +++ b/app/src/main/java/just/trust/me/Main.java @@ -204,18 +204,36 @@ public class Main implements IXposedHookLoadPackage { } }); - /* external/conscrypt/src/platform/java/org/conscrypt/TrustManagerImpl.java#217 */ - /* public List checkServerTrusted(X509Certificate[] chain, String authType, String host) throws CertificateException */ - findAndHookMethod("com.android.org.conscrypt.TrustManagerImpl", lpparam.classLoader, "checkServerTrusted", X509Certificate[].class, String.class, String.class, new XC_MethodReplacement() { - @Override - protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { - ArrayList list = new ArrayList(); - return list; - } - }); + /* Only for newer devices should we try to hook TrustManagerImpl */ + if (hasTrustManagerImpl()) { + + /* external/conscrypt/src/platform/java/org/conscrypt/TrustManagerImpl.java#217 */ + /* public List checkServerTrusted(X509Certificate[] chain, + String authType, String host) throws CertificateException */ + findAndHookMethod("com.android.org.conscrypt.TrustManagerImpl", lpparam.classLoader, + "checkServerTrusted", X509Certificate[].class, String.class, + String.class, new XC_MethodReplacement() { + @Override + protected Object replaceHookedMethod(MethodHookParam param) throws Throwable { + ArrayList list = new ArrayList(); + return list; + } + }); + } } // End Hooks /* Helpers */ + // Check for TrustManagerImpl class + public boolean hasTrustManagerImpl() { + + try { + Class.forName("com.android.org.conscrypt.TrustManagerImpl"); + } catch(ClassNotFoundException e) { + return false; + } + return true; + } + //Create a SingleClientConnManager that trusts everyone! public ClientConnectionManager getSCCM() { diff --git a/bin/JustTrustMe.apk b/bin/JustTrustMe.apk index 622ede6..dd2f7d8 100644 Binary files a/bin/JustTrustMe.apk and b/bin/JustTrustMe.apk differ