package com.tencent.smtt.sdk.stat; import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Point; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; import cn.jpush.android.local.JPushConstants; import com.baidu.speech.utils.cuid.util.DeviceId; import com.tencent.smtt.sdk.TbsConfig; import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.utils.FileProvider; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; public class MttLoader { public static final String CHANNEL_ID = "ChannelID"; public static final String ENTRY_ID = "entryId"; @Deprecated public static final String KEY_ACTIVITY_NAME = "KEY_ACT"; @Deprecated public static final String KEY_APP_NAME = "KEY_APPNAME"; public static final String KEY_EUSESTAT = "KEY_EUSESTAT"; @Deprecated public static final String KEY_PACKAGE = "KEY_PKG"; public static final String KEY_PID = "KEY_PID"; public static final String MTT_ACTION = "com.tencent.QQBrowser.action.VIEW"; public static final String MTT_ACTION_SP = "com.tencent.QQBrowser.action.VIEWSP"; public static final String PID_ARTICLE_NEWS = "21272"; public static final String PID_MOBILE_QQ = "50079"; public static final String PID_QQPIM = "50190"; public static final String PID_QZONE = "10494"; public static final String PID_WECHAT = "10318"; public static final String POS_ID = "PosID"; public static final String QQBROWSER_DIRECT_DOWNLOAD_URL = "https://mdc.html5.qq.com/d/directdown.jsp?channel_id=50079"; public static final String QQBROWSER_DOWNLOAD_URL = "https://mdc.html5.qq.com/mh?channel_id=50079&u="; public static final String QQBROWSER_PARAMS_FROME = ",from="; public static final String QQBROWSER_PARAMS_PACKAGENAME = ",packagename="; public static final String QQBROWSER_PARAMS_PD = ",product="; public static final String QQBROWSER_PARAMS_VERSION = ",version="; public static final String QQBROWSER_SCHEME = "mttbrowser://url="; public static final int RESULT_INVALID_CONTEXT = 3; public static final int RESULT_INVALID_URL = 2; public static final int RESULT_NOT_INSTALL_QQBROWSER = 4; public static final int RESULT_OK = 0; public static final int RESULT_QQBROWSER_LOW = 5; public static final int RESULT_UNKNOWN = 1; public static final String STAT_KEY = "StatKey"; public static class BrowserInfo { public int browserType = -1; public String packageName = null; public String quahead = ""; public int ver = -1; public String vn = DeviceId.CUIDInfo.I_EMPTY; } /* access modifiers changed from: private */ public static class a { public String a; public String b; private a() { this.a = ""; this.b = ""; } } private static int a(Context context) { String str = context.getApplicationInfo().processName; if (str.equals(TbsConfig.APP_QQ)) { return 13; } if (str.equals(TbsConfig.APP_QZONE)) { return 14; } if (str.equals("com.tencent.WBlog")) { return 15; } return str.equals(TbsConfig.APP_WX) ? 24 : 26; } private static Uri a(Context context, String str) { return FileProvider.a(context, str); } private static a a(Context context, Uri uri) { Intent intent = new Intent(MTT_ACTION); intent.setData(uri); List<ResolveInfo> queryIntentActivities = context.getPackageManager().queryIntentActivities(intent, 0); if (queryIntentActivities.size() <= 0) { return null; } a aVar = new a(); for (ResolveInfo resolveInfo : queryIntentActivities) { String str = resolveInfo.activityInfo.packageName; if (str.contains(TbsConfig.APP_QB)) { aVar.a = resolveInfo.activityInfo.name; aVar.b = resolveInfo.activityInfo.packageName; return aVar; } else if (str.contains("com.tencent.qbx")) { aVar.a = resolveInfo.activityInfo.name; aVar.b = resolveInfo.activityInfo.packageName; } } return aVar; } private static String a(Certificate certificate) throws CertificateEncodingException { byte[] encoded = certificate.getEncoded(); int length = encoded.length; char[] cArr = new char[(length * 2)]; for (int i = 0; i < length; i++) { byte b = encoded[i]; int i2 = (b >> 4) & 15; int i3 = i * 2; cArr[i3] = (char) (i2 >= 10 ? (i2 + 97) - 10 : i2 + 48); int i4 = b & 15; cArr[i3 + 1] = (char) (i4 >= 10 ? (i4 + 97) - 10 : i4 + 48); } return new String(cArr); } private static boolean a(String str) { if (str == null || str.length() == 0) { return false; } String trim = str.trim(); int indexOf = trim.toLowerCase().indexOf("://"); int indexOf2 = trim.toLowerCase().indexOf(46); if (indexOf <= 0 || indexOf2 <= 0 || indexOf <= indexOf2) { return trim.toLowerCase().contains("://"); } return false; } public static BrowserInfo getBrowserInfo(Context context) { boolean z = context.getApplicationContext().getSharedPreferences("x5_proxy_setting", 0).getBoolean("qb_install_status", false); BrowserInfo browserInfo = new BrowserInfo(); if (z) { return browserInfo; } try { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo = null; try { packageInfo = packageManager.getPackageInfo(TbsConfig.APP_QB, 0); browserInfo.browserType = 2; browserInfo.packageName = TbsConfig.APP_QB; browserInfo.quahead = "ADRQB_"; if (packageInfo != null && packageInfo.versionCode > 420000) { browserInfo.ver = packageInfo.versionCode; browserInfo.quahead += packageInfo.versionName.replaceAll("\\.", ""); browserInfo.vn = packageInfo.versionName.replaceAll("\\.", ""); return browserInfo; } } catch (PackageManager.NameNotFoundException unused) { } try { packageInfo = packageManager.getPackageInfo("com.tencent.qbx", 0); browserInfo.browserType = 0; browserInfo.packageName = "com.tencent.qbx"; browserInfo.quahead = "ADRQBX_"; } catch (PackageManager.NameNotFoundException unused2) { try { packageInfo = packageManager.getPackageInfo("com.tencent.qbx5", 0); browserInfo.browserType = 1; browserInfo.packageName = "com.tencent.qbx5"; browserInfo.quahead = "ADRQBX5_"; } catch (PackageManager.NameNotFoundException unused3) { try { packageInfo = packageManager.getPackageInfo(TbsConfig.APP_QB, 0); browserInfo.packageName = TbsConfig.APP_QB; browserInfo.browserType = 2; browserInfo.quahead = "ADRQB_"; } catch (PackageManager.NameNotFoundException unused4) { try { packageInfo = packageManager.getPackageInfo("com.tencent.mtt.x86", 0); browserInfo.packageName = "com.tencent.mtt.x86"; browserInfo.browserType = 2; browserInfo.quahead = "ADRQB_"; } catch (Exception unused5) { try { a a2 = a(context, Uri.parse(QQBROWSER_DOWNLOAD_URL)); if (a2 != null && !TextUtils.isEmpty(a2.b)) { PackageInfo packageInfo2 = packageManager.getPackageInfo(a2.b, 0); try { browserInfo.packageName = a2.b; browserInfo.browserType = 2; browserInfo.quahead = "ADRQB_"; } catch (Exception unused6) { } packageInfo = packageInfo2; } } catch (Exception unused7) { } } } } } if (packageInfo != null) { browserInfo.ver = packageInfo.versionCode; browserInfo.quahead += packageInfo.versionName.replaceAll("\\.", ""); browserInfo.vn = packageInfo.versionName.replaceAll("\\.", ""); } } catch (Exception unused8) { } return browserInfo; } public static String getDownloadUrlWithQb(String str) { try { return QQBROWSER_DOWNLOAD_URL + URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); return QQBROWSER_DOWNLOAD_URL; } } public static String getValidQBUrl(Context context, String str) { if (str.toLowerCase().startsWith("qb://")) { BrowserInfo browserInfo = getBrowserInfo(context); boolean z = true; if (browserInfo.browserType != -1 && (browserInfo.browserType != 2 || browserInfo.ver >= 33)) { z = false; } if (z) { return getDownloadUrlWithQb(str); } } return str; } public static boolean isBrowserInstalled(Context context) { return getBrowserInfo(context).browserType != -1; } public static boolean isBrowserInstalledEx(Context context) { BrowserInfo browserInfo = getBrowserInfo(context); boolean z = false; try { if (Long.valueOf(browserInfo.vn).longValue() >= 6001500) { z = true; } } catch (NumberFormatException e) { e.printStackTrace(); } if (browserInfo.ver >= 601500) { return true; } return z; } public static boolean isGreatBrowserVer(Context context, long j, long j2) { BrowserInfo browserInfo = getBrowserInfo(context); boolean z = false; try { if (Long.valueOf(browserInfo.vn).longValue() >= j) { z = true; } } catch (NumberFormatException e) { e.printStackTrace(); } if (((long) browserInfo.ver) >= j2) { return true; } return z; } public static boolean isSupportQBScheme(Context context) { BrowserInfo browserInfo = getBrowserInfo(context); if (browserInfo.browserType == -1) { return false; } return browserInfo.browserType != 2 || browserInfo.ver >= 42; } public static boolean isSupportingTbsTips(Context context) { BrowserInfo browserInfo = getBrowserInfo(context); return browserInfo.browserType == 2 && browserInfo.ver >= 580000; } /* JADX WARNING: Code restructure failed: missing block: B:35:0x007e, code lost: if (android.text.TextUtils.isEmpty(r0.a) == false) goto L_0x0080; */ /* JADX WARNING: Code restructure failed: missing block: B:58:0x00cb, code lost: if (android.text.TextUtils.isEmpty(r0.a) == false) goto L_0x0080; */ /* JADX WARNING: Code restructure failed: missing block: B:62:0x00e1, code lost: if (android.text.TextUtils.isEmpty(r0.a) == false) goto L_0x0080; */ /* JADX WARNING: Removed duplicated region for block: B:70:0x00f9 */ /* JADX WARNING: Removed duplicated region for block: B:77:0x011f A[Catch:{ ActivityNotFoundException -> 0x0148 }] */ public static int loadUrl(Context context, String str, HashMap<String, String> hashMap, WebView webView) { Set<String> keySet; String str2; String str3; a a2; if (context == null) { return 3; } if (!a(str)) { str = JPushConstants.HTTP_PRE + str; } try { Uri parse = Uri.parse(str); if (parse == null) { return 2; } BrowserInfo browserInfo = getBrowserInfo(context); if (browserInfo.browserType == -1) { return 4; } if (browserInfo.browserType == 2 && browserInfo.ver < 33) { return 5; } Intent intent = new Intent("android.intent.action.VIEW"); if (browserInfo.browserType == 2) { if (browserInfo.ver >= 33 && browserInfo.ver <= 39) { str3 = TbsConfig.APP_QB; str2 = "com.tencent.mtt.MainActivity"; intent.setClassName(str3, str2); intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } else if (browserInfo.ver < 40 || browserInfo.ver > 45) { if (browserInfo.ver >= 46) { intent = new Intent(MTT_ACTION); a2 = a(context, parse); if (a2 != null) { } } intent.setData(parse); if (!(hashMap == null || (keySet = hashMap.keySet()) == null)) { for (String str4 : keySet) { String str5 = hashMap.get(str4); if (!TextUtils.isEmpty(str5)) { intent.putExtra(str4, str5); } } } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { intent.putExtra("AnchorPoint", new Point(webView.getScrollX(), webView.getScrollY())); intent.putExtra("ContentSize", new Point(webView.getContentWidth(), webView.getContentHeight())); } context.startActivity(intent); return 0; } else { str3 = TbsConfig.APP_QB; str2 = "com.tencent.mtt.SplashActivity"; intent.setClassName(str3, str2); intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } } else if (browserInfo.browserType == 1) { if (browserInfo.ver == 1) { str3 = "com.tencent.qbx5"; str2 = "com.tencent.qbx5.MainActivity"; } else { if (browserInfo.ver == 2) { str3 = "com.tencent.qbx5"; str2 = "com.tencent.qbx5.SplashActivity"; } intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } intent.setClassName(str3, str2); intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } else if (browserInfo.browserType != 0) { intent = new Intent(MTT_ACTION); a2 = a(context, parse); if (a2 != null) { } intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } else if (browserInfo.ver < 4 || browserInfo.ver > 6) { if (browserInfo.ver > 6) { intent = new Intent(MTT_ACTION); a2 = a(context, parse); if (a2 != null) { } } intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } else { str3 = "com.tencent.qbx"; str2 = "com.tencent.qbx.SplashActivity"; intent.setClassName(str3, str2); intent.setData(parse); while (r7.hasNext()) { } intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } intent.setClassName(a2.b, a2.a); intent.setData(parse); while (r7.hasNext()) { } try { intent.putExtra("loginType", a(context)); intent.addFlags(268435456); if (webView != null) { } context.startActivity(intent); return 0; } catch (ActivityNotFoundException unused) { return 4; } } catch (Exception unused2) { return 2; } } /* JADX WARNING: Removed duplicated region for block: B:16:0x0026 */ /* JADX WARNING: Removed duplicated region for block: B:20:0x002a */ /* JADX WARNING: Removed duplicated region for block: B:21:0x002d */ public static int loadUrl(Context context, String str, HashMap<String, String> hashMap, String str2, WebView webView) { boolean z; PackageInfo packageInfo; StringBuilder sb = new StringBuilder(); boolean z2 = false; try { PackageManager packageManager = context.getPackageManager(); if (!(packageManager == null || (packageInfo = packageManager.getPackageInfo(TbsConfig.APP_QB, 0)) == null || packageInfo.versionCode <= 601000)) { z = true; String encode = URLEncoder.encode(str, "UTF-8"); if (z) { str = encode; } z2 = z; String str3 = !z2 ? ",encoded=1" : ""; sb.append(QQBROWSER_SCHEME); sb.append(str); sb.append(QQBROWSER_PARAMS_PD); sb.append("TBS"); sb.append(QQBROWSER_PARAMS_PACKAGENAME); sb.append(context.getPackageName()); sb.append(QQBROWSER_PARAMS_FROME); sb.append(str2); sb.append(QQBROWSER_PARAMS_VERSION); sb.append(TbsConfig.TBS_SDK_VERSIONNAME); sb.append(str3); return loadUrl(context, sb.toString(), hashMap, webView); } } catch (Throwable unused) { } z = false; try { String encode2 = URLEncoder.encode(str, "UTF-8"); if (z) { } z2 = z; } catch (Exception unused2) { } if (!z2) { } sb.append(QQBROWSER_SCHEME); sb.append(str); sb.append(QQBROWSER_PARAMS_PD); sb.append("TBS"); sb.append(QQBROWSER_PARAMS_PACKAGENAME); sb.append(context.getPackageName()); sb.append(QQBROWSER_PARAMS_FROME); sb.append(str2); sb.append(QQBROWSER_PARAMS_VERSION); sb.append(TbsConfig.TBS_SDK_VERSIONNAME); sb.append(str3); return loadUrl(context, sb.toString(), hashMap, webView); } /* JADX WARNING: Removed duplicated region for block: B:30:0x007c A[Catch:{ Exception -> 0x00a9 }, RETURN] */ /* JADX WARNING: Removed duplicated region for block: B:31:0x007d A[Catch:{ Exception -> 0x00a9 }] */ public static boolean openDocWithQb(Context context, String str, int i, String str2, String str3, HashMap<String, String> hashMap, Bundle bundle) { Uri a2; String str4; Set<String> keySet; try { Intent intent = new Intent("com.tencent.QQBrowser.action.sdk.document"); if (!(hashMap == null || (keySet = hashMap.keySet()) == null)) { for (String str5 : keySet) { String str6 = hashMap.get(str5); if (!TextUtils.isEmpty(str6)) { intent.putExtra(str5, str6); } } } new File(str); intent.putExtra("key_reader_sdk_id", 3); intent.putExtra("key_reader_sdk_type", i); if (!TextUtils.isEmpty(str3)) { intent.putExtra("big_brother_source_key", str3); } if (i == 0) { str4 = "key_reader_sdk_path"; } else { if (i == 1) { str4 = "key_reader_sdk_url"; } intent.putExtra("key_reader_sdk_format", str2); if (context != null && context.getApplicationInfo().targetSdkVersion >= 24 && Build.VERSION.SDK_INT >= 24) { intent.addFlags(1); } intent.addFlags(268435456); a2 = a(context, str); if (a2 != null) { return false; } intent.setDataAndType(a2, "mtt/" + str2); intent.putExtra("loginType", a(context.getApplicationContext())); if (bundle != null) { intent.putExtra("key_reader_sdk_extrals", bundle); } context.startActivity(intent); return true; } intent.putExtra(str4, str); intent.putExtra("key_reader_sdk_format", str2); intent.addFlags(1); intent.addFlags(268435456); a2 = a(context, str); if (a2 != null) { } } catch (Exception e) { e.printStackTrace(); return false; } } public static boolean openDocWithQb(Context context, String str, int i, String str2, HashMap<String, String> hashMap) { return openDocWithQb(context, str, i, str2, hashMap, null); } public static boolean openDocWithQb(Context context, String str, int i, String str2, HashMap<String, String> hashMap, Bundle bundle) { return openDocWithQb(context, str, i, str2, "", hashMap, null); } public static boolean openVideoWithQb(Context context, String str, HashMap<String, String> hashMap) { boolean z; Set<String> keySet; Uri parse = Uri.parse(str); Intent intent = new Intent("android.intent.action.VIEW"); intent.setFlags(268435456); intent.setDataAndType(parse, "video/*"); if (!(hashMap == null || (keySet = hashMap.keySet()) == null)) { for (String str2 : keySet) { String str3 = hashMap.get(str2); if (!TextUtils.isEmpty(str3)) { intent.putExtra(str2, str3); } } } try { intent.putExtra("loginType", a(context)); intent.setComponent(new ComponentName(TbsConfig.APP_QB, "com.tencent.mtt.browser.video.H5VideoThrdcallActivity")); context.startActivity(intent); z = true; } catch (Throwable unused) { z = false; } if (!z) { try { intent.setComponent(null); context.startActivity(intent); } catch (Throwable th) { th.printStackTrace(); return false; } } return true; } /* JADX WARNING: Can't wrap try/catch for region: R(4:(2:17|18)|19|20|21) */ /* JADX WARNING: Can't wrap try/catch for region: R(4:(2:28|29)|30|31|32) */ /* JADX WARNING: Code restructure failed: missing block: B:57:0x006f, code lost: if (r2 != null) goto L_0x0056; */ /* JADX WARNING: Failed to process nested try/catch */ /* JADX WARNING: Missing exception handler attribute for start block: B:19:0x0034 */ /* JADX WARNING: Missing exception handler attribute for start block: B:30:0x004d */ /* JADX WARNING: Missing exception handler attribute for start block: B:37:0x0056 */ /* JADX WARNING: Removed duplicated region for block: B:43:0x0060 A[SYNTHETIC, Splitter:B:43:0x0060] */ /* JADX WARNING: Removed duplicated region for block: B:47:0x0065 A[SYNTHETIC, Splitter:B:47:0x0065] */ /* JADX WARNING: Removed duplicated region for block: B:55:0x006c A[SYNTHETIC, Splitter:B:55:0x006c] */ public static boolean verifySignature(File file) { JarFile jarFile; Throwable th; InputStream inputStream = null; try { jarFile = new JarFile(file); try { JarEntry jarEntry = jarFile.getJarEntry("AndroidManifest.xml"); if (jarEntry == null) { try { jarFile.close(); } catch (IOException unused) { } return false; } byte[] bArr = new byte[8192]; InputStream inputStream2 = jarFile.getInputStream(jarEntry); do { } while (inputStream2.read(bArr, 0, bArr.length) != -1); inputStream2.close(); Certificate[] certificates = jarEntry.getCertificates(); if (certificates.length < 1) { if (inputStream2 != null) { inputStream2.close(); } jarFile.close(); return false; } String a2 = a(certificates[0]); if (a2 == null || !a2.equals("3082023f308201a8a00302010202044c46914a300d06092a864886f70d01010505003064310b30090603550406130238363110300e060355040813074265696a696e673110300e060355040713074265696a696e673110300e060355040a130754656e63656e74310c300a060355040b13035753443111300f0603550403130873616d75656c6d6f301e170d3130303732313036313835305a170d3430303731333036313835305a3064310b30090603550406130238363110300e060355040813074265696a696e673110300e060355040713074265696a696e673110300e060355040a130754656e63656e74310c300a060355040b13035753443111300f0603550403130873616d75656c6d6f30819f300d06092a864886f70d010101050003818d0030818902818100c209077044bd0d63ea00ede5b839914cabcc912a87f0f8b390877e0f7a2583f0d5933443c40431c35a4433bc4c965800141961adc44c9625b1d321385221fd097e5bdc2f44a1840d643ab59dc070cf6c4b4b4d98bed5cbb8046e0a7078ae134da107cdf2bfc9b440fe5cb2f7549b44b73202cc6f7c2c55b8cfb0d333a021f01f0203010001300d06092a864886f70d010105050003818100b007db9922774ef4ccfee81ba514a8d57c410257e7a2eba64bfa17c9e690da08106d32f637ac41fbc9f205176c71bde238c872c3ee2f8313502bee44c80288ea4ef377a6f2cdfe4d3653c145c4acfedbfbadea23b559d41980cc3cdd35d79a68240693739aabf5c5ed26148756cf88264226de394c8a24ac35b712b120d4d23a")) { if (inputStream2 != null) { inputStream2.close(); } try { jarFile.close(); } catch (IOException unused2) { } return false; } if (inputStream2 != null) { inputStream2.close(); } jarFile.close(); return true; } catch (Throwable th2) { th = th2; if (0 != 0) { try { inputStream.close(); } catch (IOException unused3) { } } if (jarFile != null) { try { jarFile.close(); } catch (IOException unused4) { } } throw th; } } catch (Throwable th3) { th = th3; jarFile = null; if (0 != 0) { } if (jarFile != null) { } throw th; } } }