package cn.jpush.android.u; import android.app.Activity; import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.Service; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentProvider; import android.content.Context; import android.content.Intent; import android.content.pm.ComponentInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.Signature; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.os.Environment; import android.os.Process; import android.text.TextUtils; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.helper.Logger; import cn.jpush.android.local.JPushConstants; import cn.jpush.android.service.JNotifyActivity; import cn.jpush.android.ui.PopWinActivity; import cn.jpush.android.ui.PushActivity; import com.tencent.smtt.sdk.TbsConfig; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.security.MessageDigest; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserFactory; public class a { private static String a = ""; private static String b; public static int a(String str, String str2) { if (str.equals(str2)) { return 0; } try { String[] split = str.split("[._]"); String[] split2 = str2.split("[._]"); if (split.length > split2.length) { split2 = (String[]) Arrays.copyOf(split2, split.length); } else if (split.length < split2.length) { split = (String[]) Arrays.copyOf(split, split2.length); } for (int i = 0; i < split.length; i++) { long parseLong = (TextUtils.isEmpty(split[i]) ? 0 : Long.parseLong(split[i])) - (TextUtils.isEmpty(split2[i]) ? 0 : Long.parseLong(split2[i])); if (parseLong > 0) { return 1; } if (parseLong < 0) { return -1; } } return 0; } catch (Throwable unused) { return str.compareTo(str2); } } public static ComponentInfo a(Context context, String str, Class<?> cls) { ComponentInfo[] componentInfoArr; if (context == null || TextUtils.isEmpty(str) || cls == null) { Logger.w("AndroidUtil", "Action - hasComponent, invalide param, context:" + context + ",packageName:" + str + ",cls:" + cls); return null; } try { int i = Service.class.isAssignableFrom(cls) ? 4 : BroadcastReceiver.class.isAssignableFrom(cls) ? 2 : Activity.class.isAssignableFrom(cls) ? 1 : ContentProvider.class.isAssignableFrom(cls) ? 8 : 0; PackageInfo packageInfo = context.getPackageManager().getPackageInfo(str, i); if (i == 4) { componentInfoArr = packageInfo.services; } else if (i != 8) { switch (i) { case 1: componentInfoArr = packageInfo.activities; break; case 2: componentInfoArr = packageInfo.receivers; break; default: componentInfoArr = null; break; } } else { componentInfoArr = packageInfo.providers; } if (componentInfoArr == null) { return null; } for (ComponentInfo componentInfo : componentInfoArr) { try { if (cls.isAssignableFrom(Class.forName(componentInfo.name))) { return componentInfo; } } catch (Throwable unused) { } } return null; } catch (Throwable th) { Logger.ww("AndroidUtil", "hasComponent error:" + th.getMessage()); } } /* JADX WARNING: Code restructure failed: missing block: B:21:0x0071, code lost: if (r7 != null) goto L_0x0073; */ /* JADX WARNING: Code restructure failed: missing block: B:23:?, code lost: r7.close(); */ /* JADX WARNING: Code restructure failed: missing block: B:32:0x0098, code lost: if (r7 != null) goto L_0x0073; */ /* JADX WARNING: Removed duplicated region for block: B:37:0x009f A[SYNTHETIC, Splitter:B:37:0x009f] */ private static String a(Context context, String str, String str2, String str3) { Throwable th; InputStream inputStream; Throwable th2; try { inputStream = context.getAssets().open(str); try { XmlPullParserFactory newInstance = XmlPullParserFactory.newInstance(); newInstance.setNamespaceAware(true); XmlPullParser newPullParser = newInstance.newPullParser(); newPullParser.setInput(inputStream, "utf-8"); int eventType = newPullParser.getEventType(); while (eventType != 1) { eventType = newPullParser.next(); if (eventType == 2 && newPullParser.getName().equals(str2)) { int attributeCount = newPullParser.getAttributeCount(); for (int i = 0; i < attributeCount; i++) { String attributeName = newPullParser.getAttributeName(i); String trim = newPullParser.getAttributeValue(i).trim(); if (attributeName.equals(str3)) { Logger.d("AndroidUtil", "[getValueFromAssetFile] key = " + str3 + ", value=" + trim); if (inputStream != null) { try { inputStream.close(); } catch (IOException unused) { } } return trim; } } continue; } } } catch (Throwable th3) { th2 = th3; try { Logger.w("AndroidUtil", "[getValueFromAssetFile] parseConfig error :" + th2.getMessage()); } catch (Throwable th4) { th = th4; if (inputStream != null) { } throw th; } } } catch (Throwable th5) { th = th5; inputStream = null; if (inputStream != null) { try { inputStream.close(); } catch (IOException unused2) { } } throw th; } return null; } public static String a(byte[] bArr) { if (bArr == null) { return null; } try { MessageDigest instance = MessageDigest.getInstance("MD5"); instance.update(bArr); return b(instance.digest()); } catch (Throwable unused) { return null; } } public static void a(Context context, Intent intent, String str) { if (intent != null) { String action = intent.getAction(); if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(action) || JPushInterface.ACTION_NOTIFICATION_OPENED.equals(action)) { List<String> b2 = b(context, intent, str); if (b2 == null || b2.isEmpty()) { Logger.ww("AndroidUtil", "sendBroadcast failed again: receiver not found, action:" + intent.getAction()); return; } for (String str2 : b2) { try { Intent intent2 = (Intent) intent.clone(); intent2.setComponent(new ComponentName(context.getPackageName(), str2)); if (TextUtils.isEmpty(str)) { context.sendBroadcast(intent2); } else { context.sendBroadcast(intent2, str); } } catch (Exception e) { Logger.ww("AndroidUtil", "sendBroadcast failed again:" + e.getMessage() + ", action:" + intent.getAction()); } } } } } public static void a(WebSettings webSettings) { webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setDomStorageEnabled(true); webSettings.setJavaScriptEnabled(true); webSettings.setDefaultTextEncodingName("UTF-8"); webSettings.setSupportZoom(true); webSettings.setBuiltInZoomControls(true); if (Build.VERSION.SDK_INT >= 11) { webSettings.setDisplayZoomControls(false); } webSettings.setCacheMode(2); webSettings.setSaveFormData(false); webSettings.setSavePassword(false); } public static void a(final WebView webView) { try { if (Build.VERSION.SDK_INT >= 11) { webView.removeJavascriptInterface("searchBoxJavaBridge_"); webView.removeJavascriptInterface("accessibility"); webView.removeJavascriptInterface("accessibilityTraversal"); } if (Build.VERSION.SDK_INT >= 21) { webView.getSettings().setMixedContentMode(0); } } catch (Throwable th) { Logger.e("AndroidUtil", "fixSecure failed, error:" + th); if (Build.VERSION.SDK_INT >= 12) { webView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() { /* class cn.jpush.android.u.a.AnonymousClass1 */ public void onViewAttachedToWindow(View view) { WebSettings settings = webView.getSettings(); if (settings != null) { try { Method declaredMethod = settings.getClass().getDeclaredMethod("removeJavascriptInterface", String.class); if (declaredMethod != null) { declaredMethod.invoke(webView, "searchBoxJavaBridge_"); declaredMethod.invoke(webView, "accessibility"); declaredMethod.invoke(webView, "accessibilityTraversal"); } } catch (Throwable th) { Logger.e("AndroidUtil", "removeJavascriptInterface failed, error:" + th); } } } public void onViewDetachedFromWindow(View view) { } }); } } } private static void a(StringBuffer stringBuffer, byte b2) { stringBuffer.append("0123456789ABCDEF".charAt((b2 >> 4) & 15)); stringBuffer.append("0123456789ABCDEF".charAt(b2 & 15)); } public static boolean a() { boolean z; try { z = Environment.getExternalStorageState().equals("mounted"); } catch (Throwable th) { Logger.w("AndroidUtil", "isSdcardExist exception: " + th); z = false; } if (!z) { Logger.d("AndroidUtil", "SDCard is not mounted"); } return z; } public static boolean a(Context context) { try { NetworkInfo activeNetworkInfo = ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } catch (Exception e) { e.printStackTrace(); return false; } } public static boolean a(Context context, Class<?> cls) { try { return !context.getPackageManager().queryIntentActivities(new Intent(context, cls), 0).isEmpty(); } catch (Throwable th) { Logger.dd("AndroidUtil", "hasActivityResolves error:" + th.getMessage()); return false; } } public static boolean a(Context context, String str) { try { boolean z = true; if (Build.VERSION.SDK_INT >= 23) { if (context.getApplicationInfo().targetSdkVersion < 23) { String permissionToOp = AppOpsManager.permissionToOp(str); if (permissionToOp != null) { if (((AppOpsManager) context.getSystemService("appops")).noteProxyOpNoThrow(permissionToOp, context.getPackageName()) != 0) { z = false; } } return z; } else if (context.checkSelfPermission(str) != 0) { return false; } } return true; } catch (Throwable th) { Logger.w("AndroidUtil", "checkPermission error:" + th.getMessage()); return false; } } public static boolean a(String str) { if (TextUtils.isEmpty(str)) { return false; } String trim = str.trim(); boolean matches = trim.matches("^[http|https]+://.*"); if (!matches) { Logger.w("AndroidUtil", "Invalid url - " + trim); } return matches; } public static boolean a(Signature[] signatureArr) { for (Signature signature : signatureArr) { if (signature.toCharsString().toLowerCase().equals("308202eb30820254a00302010202044d36f7a4300d06092a864886f70d01010505003081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e74301e170d3131303131393134333933325a170d3431303131313134333933325a3081b9310b300906035504061302383631123010060355040813094775616e67646f6e673111300f060355040713085368656e7a68656e31353033060355040a132c54656e63656e7420546563686e6f6c6f6779285368656e7a68656e2920436f6d70616e79204c696d69746564313a3038060355040b133154656e63656e74204775616e677a686f7520526573656172636820616e6420446576656c6f706d656e742043656e7465723110300e0603550403130754656e63656e7430819f300d06092a864886f70d010101050003818d0030818902818100c05f34b231b083fb1323670bfbe7bdab40c0c0a6efc87ef2072a1ff0d60cc67c8edb0d0847f210bea6cbfaa241be70c86daf56be08b723c859e52428a064555d80db448cdcacc1aea2501eba06f8bad12a4fa49d85cacd7abeb68945a5cb5e061629b52e3254c373550ee4e40cb7c8ae6f7a8151ccd8df582d446f39ae0c5e930203010001300d06092a864886f70d0101050500038181009c8d9d7f2f908c42081b4c764c377109a8b2c70582422125ce545842d5f520aea69550b6bd8bfd94e987b75a3077eb04ad341f481aac266e89d3864456e69fba13df018acdc168b9a19dfd7ad9d9cc6f6ace57c746515f71234df3a053e33ba93ece5cd0fc15f3e389a3f365588a9fcb439e069d3629cd7732a13fff7b891499")) { Logger.d("AndroidUtil", "check wx Signature validate pass"); return true; } } return false; } private static String b() { try { Class<?> cls = Class.forName("com.umeng.socialize.PlatformConfig"); if (cls == null) { return null; } Field declaredField = cls.getDeclaredField("configs"); declaredField.setAccessible(true); Map map = (Map) declaredField.get(cls); Class<?> cls2 = Class.forName("com.umeng.socialize.bean.SHARE_MEDIA"); if (map == null) { return null; } Field declaredField2 = cls2.getDeclaredField("WEIXIN"); declaredField2.setAccessible(true); Enum r1 = (Enum) declaredField2.get(cls2); Logger.d("AndroidUtil", "[appid] enum weixin =" + r1.ordinal()); Object obj = map.get(r1); Field declaredField3 = Class.forName("com.umeng.socialize.PlatformConfig$APPIDPlatform").getDeclaredField("appId"); declaredField3.setAccessible(true); Object obj2 = declaredField3.get(obj); Logger.d("AndroidUtil", "[getWxAppidByUmeng] wx appid =" + obj2); if (obj2 instanceof String) { return (String) obj2; } return null; } catch (Throwable th) { Logger.w("AndroidUtil", "[getWxAppidByUmeng] failed e=" + th.getMessage()); return null; } } public static String b(Context context) { if (!TextUtils.isEmpty(a)) { return a; } try { a = context.getPackageManager().getApplicationLabel(context.getPackageManager().getApplicationInfo(context.getPackageName(), 0)).toString(); } catch (Throwable th) { th.printStackTrace(); } return a; } public static String b(String str) { if (str == null || "".equals(str)) { return null; } return a(str.getBytes()); } public static String b(byte[] bArr) { if (bArr == null) { return ""; } StringBuffer stringBuffer = new StringBuffer(bArr.length * 2); for (byte b2 : bArr) { a(stringBuffer, b2); } return stringBuffer.toString(); } public static List<String> b(Context context, Intent intent, String str) { ArrayList arrayList = new ArrayList(); try { List<ResolveInfo> queryBroadcastReceivers = context.getPackageManager().queryBroadcastReceivers(intent, 0); PackageManager packageManager = context.getPackageManager(); for (ResolveInfo resolveInfo : queryBroadcastReceivers) { if (resolveInfo.activityInfo != null) { String str2 = resolveInfo.activityInfo.name; if (!TextUtils.isEmpty(str2)) { boolean z = true; if (!TextUtils.isEmpty(str) && packageManager.checkPermission(str, resolveInfo.activityInfo.packageName) != 0) { z = false; } if (z) { arrayList.add(str2); } } } } } catch (Throwable unused) { } return arrayList; } public static void b(Context context, String str) { try { Intent f = f(context); if (f != null) { if (!TextUtils.isEmpty(str)) { f.putExtra("extra", str); } context.startActivity(f); } } catch (Throwable th) { Logger.dd("AndroidUtil", "startMainActivity error:" + th.getMessage()); } } private static String c() { try { Class<?> cls = Class.forName("cn.jiguang.share.android.api.JShareInterface"); if (cls == null) { return null; } Field[] declaredFields = cls.getDeclaredFields(); for (Field field : declaredFields) { try { field.setAccessible(true); Object obj = field.get(cls); Logger.d("AndroidUtil", "platFormManager =" + obj); if (obj != null) { Field[] declaredFields2 = obj.getClass().getDeclaredFields(); for (Field field2 : declaredFields2) { try { field2.setAccessible(true); Object obj2 = field2.get(obj); if (obj2 instanceof HashMap) { Object obj3 = ((HashMap) obj2).get("Wechat"); if (obj3 instanceof HashMap) { String str = (String) ((HashMap) obj3).get("AppId"); Logger.d("AndroidUtil", "[getWxAppidByJiguang] wx appid=" + str); return str; } } else { continue; } } catch (Throwable th) { Logger.w("AndroidUtil", "[getWxAppidByJiguangCode] get configmap failed: " + th.getMessage()); } } continue; } else { continue; } } catch (Throwable th2) { Logger.w("AndroidUtil", "[getWxAppidByJiguangCode] platFormManager error : " + th2.getMessage()); } } return null; } catch (Throwable th3) { Logger.w("AndroidUtil", "[getWxAppidByJiguangCode] failed " + th3.getMessage()); return null; } } public static String c(Context context) { if (!TextUtils.isEmpty(b)) { return b; } try { Context appContext = JPushConstants.getAppContext(context); ActivityManager activityManager = null; if (appContext != null) { activityManager = (ActivityManager) appContext.getSystemService("activity"); } if (activityManager != null) { int myPid = Process.myPid(); Iterator<ActivityManager.RunningAppProcessInfo> it = activityManager.getRunningAppProcesses().iterator(); while (true) { if (!it.hasNext()) { break; } ActivityManager.RunningAppProcessInfo next = it.next(); if (next.pid == myPid) { b = next.processName; break; } } } } catch (Throwable th) { Logger.ww("AndroidUtil", "#unexcepted - getCurProcessName failed:" + th.getMessage()); } return b; } public static boolean c(Context context, String str) { if (TextUtils.isEmpty(str)) { return false; } try { return context.getPackageManager().getPackageInfo(str, 0) != null; } catch (Throwable unused) { } } public static void d(Context context) { try { if (Build.VERSION.SDK_INT >= 28) { String c = c(context); String packageName = context.getPackageName(); if (c != null && packageName != null && !packageName.equals(c)) { WebView.setDataDirectorySuffix(c); Logger.d("AndroidUtil", "setDataDirectorySuffix =" + c); } } } catch (Throwable th) { Logger.e("AndroidUtil", "fixWebViewProcess e:" + th); } } public static boolean d(Context context, String str) { try { PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(str); intent.addCategory(context.getPackageName()); return !packageManager.queryIntentActivities(intent, 0).isEmpty(); } catch (Throwable th) { Logger.dd("AndroidUtil", "hasActivityIntentFilter error:" + th.getMessage()); return true; } } public static String e(Context context, String str) { return context.getPackageName() + "." + str; } public static void e(Context context) { b(context, null); } public static Intent f(Context context) { Throwable th; Intent intent = null; try { PackageManager packageManager = context.getPackageManager(); String packageName = context.getApplicationContext().getPackageName(); if (!TextUtils.isEmpty(packageName)) { Intent launchIntentForPackage = packageManager.getLaunchIntentForPackage(packageName); if (launchIntentForPackage == null) { try { Logger.ww("AndroidUtil", "Can't get launch intent for this package!"); return null; } catch (Throwable th2) { intent = launchIntentForPackage; th = th2; Logger.w("AndroidUtil", "getLaunchIntent error:" + th.getMessage()); return intent; } } else { int i = 268435456; if (Build.VERSION.SDK_INT >= 11) { i = 268468224; } launchIntentForPackage.addFlags(i); return launchIntentForPackage; } } else { Logger.ww("AndroidUtil", "The package with the given name cannot be found!"); return null; } } catch (Throwable th3) { th = th3; Logger.w("AndroidUtil", "getLaunchIntent error:" + th.getMessage()); return intent; } } public static String f(Context context, String str) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(str, 64); if (packageInfo == null) { return null; } return a(packageInfo.signatures[0].toByteArray()); } catch (Throwable th) { Logger.d("AndroidUtil", "[getAppSignMD5] failed :" + th.getMessage()); return null; } } public static int g(Context context, String str) { if (context == null) { return -1; } try { return context.getPackageManager().getPackageInfo(str, 0).versionCode; } catch (Throwable unused) { return -1; } } public static boolean g(Context context) { String str; String str2; StringBuilder sb; Class cls; Logger.dd("AndroidUtil", "action:checkValidManifest"); if (!a(context, PushActivity.class)) { str = "AndroidUtil"; sb = new StringBuilder(); sb.append("AndroidManifest.xml missing required activity: "); cls = PushActivity.class; } else { if (!a(context, PopWinActivity.class)) { Logger.ww("AndroidUtil", "AndroidManifest.xml missing activity: " + PopWinActivity.class.getCanonicalName()); Logger.ww("AndroidUtil", "You will unable to use pop-window rich push type."); } if (!d(context, "cn.jpush.android.ui.PushActivity")) { str = "AndroidUtil"; str2 = "AndroidManifest.xml missing required intent filter for PushActivity: cn.jpush.android.ui.PushActivity"; } else if (!a(context, JNotifyActivity.class)) { str = "AndroidUtil"; sb = new StringBuilder(); sb.append("AndroidManifest.xml missing required activity: "); cls = JNotifyActivity.class; } else if (!TextUtils.isEmpty(JPushConstants.getMessageReceiverClass(context))) { return true; } else { str = "AndroidUtil"; str2 = "AndroidManifest.xml missing required receiver: please custom receiver extends JPushMessageReceiver"; } Logger.ee(str, str2); return false; } sb.append(cls.getCanonicalName()); str2 = sb.toString(); Logger.ee(str, str2); return false; } public static boolean h(Context context) { try { List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = ((ActivityManager) context.getSystemService("activity")).getRunningAppProcesses(); if (runningAppProcesses == null) { return false; } for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) { if (runningAppProcessInfo.processName.equals(context.getPackageName()) && runningAppProcessInfo.importance == 100) { return true; } } return false; } catch (Throwable th) { Logger.ww("AndroidUtil", "[isAppOnForeground] error:" + th.getMessage()); } } public static boolean i(Context context) { try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo(TbsConfig.APP_WX, 64); if (packageInfo == null) { return false; } return a(packageInfo.signatures); } catch (Throwable th) { Logger.d("AndroidUtil", "[isWXAppInstalled] check failed :" + th.getMessage()); return false; } } public static boolean j(Context context) { try { if (context.getPackageManager().getApplicationInfo(TbsConfig.APP_WX, 128).metaData.getInt("com.tencent.mm.BuildInfo.OPEN_SDK_VERSION", 0) >= 620823808) { } } catch (Throwable unused) { } return true; } public static String k(Context context) { String b2 = b(); if (TextUtils.isEmpty(b2)) { b2 = m(context); if (TextUtils.isEmpty(b2)) { b2 = n(context); if (TextUtils.isEmpty(b2)) { b2 = c(); if (TextUtils.isEmpty(b2)) { b2 = l(context); if (!TextUtils.isEmpty(b2)) { } } } } } return b2; } private static String l(Context context) { try { if (Class.forName("cn.jiguang.share.android.api.JShareInterface") == null) { return null; } String a2 = a(context, "JGShareSDK.xml", "Wechat", "AppId"); if (TextUtils.isEmpty(a2)) { a2 = a(context, "JGShareSDK.conf", "Wechat", "AppId"); } Logger.d("AndroidUtil", "[getWxAppidByJiguangFile] wx appid=" + a2); return a2; } catch (Throwable th) { Logger.w("AndroidUtil", "[getWxAppidByJiguangFile] failed :" + th.getMessage()); return null; } } private static String m(Context context) { try { if (Class.forName("cn.jiguang.share.android.api.JShareInterface") == null) { return null; } String string = context.getPackageManager().getApplicationInfo(context.getPackageName(), 128).metaData.getString("wxAppId"); Logger.d("AndroidUtil", "[getWxAppidByShareMeta] share sdk meta wxid=" + string); return string; } catch (Throwable th) { Logger.w("AndroidUtil", "[getWxAppidByShareMeta] error :" + th.getMessage()); return null; } } private static String n(Context context) { try { if (Class.forName("cn.sharesdk.onekeyshare.OnekeyShare") == null) { return null; } String a2 = a(context, "ShareSDK.xml", "Wechat", "AppId"); Logger.d("AndroidUtil", "[getWxAppidByShareFile] share sdk wxid=" + a2); return a2; } catch (Throwable th) { Logger.w("AndroidUtil", "[getWxAppidByShareFile] failed :" + th.getMessage()); return null; } } }