package cn.jiguang.k; import android.annotation.SuppressLint; import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Build; import android.text.TextUtils; import cn.jiguang.f.f; import cn.jiguang.j.b; import cn.jiguang.o.c; import cn.jiguang.v.c; import cn.jiguang.v.e; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.regex.Pattern; import org.json.JSONArray; import org.json.JSONObject; @SuppressLint({"PackageManagerGetSignatures"}) public class a { private static String a = "JAppHelper"; private static Map<String, cn.jiguang.j.a> b; public static int a(ApplicationInfo applicationInfo) { if (applicationInfo == null) { return -1; } try { boolean z = false; if ((applicationInfo.flags & 1) != 0) { if ((applicationInfo.flags & 128) != 0) { z = true; } return z ? 2 : 1; } String str = applicationInfo.sourceDir; if (TextUtils.isEmpty(str)) { return -1; } return (str.startsWith("/system/") || !str.contains(applicationInfo.packageName)) ? 3 : 0; } catch (Throwable th) { String str2 = a; cn.jiguang.af.a.d(str2, "getAppInstalledType throwable:" + th.getMessage()); return -1; } } public static ApplicationInfo a(Context context, String str) { try { return context.getPackageManager().getApplicationInfo(str, 0); } catch (Throwable th) { String str2 = a; cn.jiguang.af.a.d(str2, "getApplicationInfo throwable:" + th.getMessage()); return null; } } public static String a(List<cn.jiguang.j.a> list) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++) { sb.append(list.get(i).b); if (i != list.size() - 1) { sb.append("&&"); } } return sb.toString(); } public static String a(Set<String> set) { StringBuilder sb = new StringBuilder(); for (String str : set) { sb.append(str); sb.append("&&"); } return sb.toString(); } public static ArrayList<JSONArray> a(JSONArray jSONArray) { String str; StringBuilder sb; String str2; if (!(jSONArray == null || jSONArray.length() == 0)) { try { JSONArray jSONArray2 = new JSONArray(); ArrayList<JSONArray> arrayList = new ArrayList<>(); int i = 0; for (int i2 = 0; i2 < jSONArray.length(); i2++) { JSONObject optJSONObject = jSONArray.optJSONObject(i2); if (optJSONObject != null) { if (optJSONObject.length() != 0) { int length = optJSONObject.toString().getBytes("UTF-8").length; i += length; if (i > 102400) { if (jSONArray2.length() > 0) { arrayList.add(jSONArray2); } jSONArray2 = new JSONArray(); jSONArray2.put(optJSONObject); i = length; } else { jSONArray2.put(optJSONObject); } } } } if (jSONArray2.length() > 0) { arrayList.add(jSONArray2); } return arrayList; } catch (UnsupportedEncodingException e) { str2 = a; sb = new StringBuilder(); sb.append("partition exception:"); str = e.getMessage(); sb.append(str); cn.jiguang.af.a.d(str2, sb.toString()); return null; } catch (Throwable th) { str2 = a; sb = new StringBuilder(); sb.append("partition throwable:"); str = th.getMessage(); sb.append(str); cn.jiguang.af.a.d(str2, sb.toString()); return null; } } return null; } private static List<cn.jiguang.j.a> a(Context context, PackageManager packageManager, List<PackageInfo> list, boolean z, boolean z2) { cn.jiguang.j.a aVar; a(context); ArrayList arrayList = new ArrayList(); for (int i = 0; i < list.size(); i++) { try { PackageInfo packageInfo = list.get(i); if (z || packageInfo.versionName != null) { cn.jiguang.j.a aVar2 = new cn.jiguang.j.a(); aVar2.b = packageInfo.packageName; aVar2.c = packageInfo.versionName; aVar2.d = packageInfo.versionCode; aVar2.e = a(packageInfo.applicationInfo); if (z2) { aVar2.f = b(context, packageInfo.packageName); } if (b != null && b.containsKey(aVar2.b) && (aVar = b.get(aVar2.b)) != null && aVar.equals(aVar2)) { aVar2.a = aVar.a; } if (aVar2.a == null) { aVar2.a = packageInfo.applicationInfo.loadLabel(packageManager).toString(); if (b != null) { b.put(aVar2.b, aVar2); } } arrayList.add(aVar2); } } catch (Throwable unused) { } } System.gc(); String b2 = b(arrayList); if (!f.a(b2)) { c.d(context, "ban.catch"); c.a(context, "ban.catch", cn.jiguang.v.f.c(b2)); } return arrayList; } public static List<cn.jiguang.j.a> a(Context context, boolean z, boolean z2) { List<PackageInfo> list; try { PackageManager packageManager = context.getPackageManager(); try { cn.jiguang.af.a.a(a, "getInstalledApps by api"); list = packageManager.getInstalledPackages(0); } catch (Throwable unused) { cn.jiguang.af.a.a(a, "getInstalledApps by shell"); list = a(packageManager); } if (list == null || list.isEmpty()) { System.gc(); return null; } return a(context, packageManager, list, z, z2); } finally { System.gc(); } } private static List<PackageInfo> a(PackageManager packageManager) { try { List<String> a2 = e.a(new String[]{"pm list package"}, 1); if (a2 != null) { if (!a2.isEmpty()) { ArrayList arrayList = new ArrayList(); for (int i = 0; i < a2.size(); i++) { String str = a2.get(i); if (!TextUtils.isEmpty(str)) { if (str.startsWith("package:")) { String substring = str.substring(8); String str2 = a; cn.jiguang.af.a.a(str2, "execute command packageName:" + substring); if (!TextUtils.isEmpty(substring)) { PackageInfo packageInfo = new PackageInfo(); try { packageInfo = packageManager.getPackageInfo(substring, 64); } catch (PackageManager.NameNotFoundException unused) { packageInfo.packageName = substring; } arrayList.add(packageInfo); } } } } return arrayList; } } cn.jiguang.af.a.d(a, "execute command pm list package failed"); return null; } catch (Throwable th) { String str3 = a; cn.jiguang.af.a.d(str3, "getInstalledPackagesByShell throwable:" + th.getMessage()); return null; } } public static Map<String, cn.jiguang.j.a> a(Context context) { if (b == null) { synchronized (a.class) { if (b == null) { String c = c.c(context, "ban.catch"); if (!f.a(c)) { b = b(cn.jiguang.v.f.b(c)); } } } } return b; } public static Set<String> a(String str) { String[] split = str.split("&&"); HashSet hashSet = new HashSet(); Collections.addAll(hashSet, split); return hashSet; } public static int b(Context context, String str) { Throwable th; int i; try { PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(); intent.setClassName(str, c.a.d); List<ResolveInfo> queryBroadcastReceivers = packageManager.queryBroadcastReceivers(intent, 0); i = (queryBroadcastReceivers == null || queryBroadcastReceivers.size() <= 0) ? 0 : 2; try { Intent intent2 = new Intent(); intent2.setClassName(str, c.a.e); List<ResolveInfo> queryIntentServices = packageManager.queryIntentServices(intent2, 0); if (queryIntentServices != null && queryIntentServices.size() > 0) { i++; } Intent intent3 = new Intent(); intent3.setClassName(str, c.a.f); List<ResolveInfo> queryBroadcastReceivers2 = packageManager.queryBroadcastReceivers(intent3, 0); return (queryBroadcastReceivers2 == null || queryBroadcastReceivers2.size() <= 0) ? i : i + 4; } catch (Throwable th2) { th = th2; String str2 = a; cn.jiguang.af.a.d(str2, "filterThirdSdk throwable:" + th.getMessage()); return i; } } catch (Throwable th3) { th = th3; i = 0; String str22 = a; cn.jiguang.af.a.d(str22, "filterThirdSdk throwable:" + th.getMessage()); return i; } } private static String b(List<cn.jiguang.j.a> list) { if (list == null) { return ""; } StringBuilder sb = new StringBuilder(); for (cn.jiguang.j.a aVar : list) { String str = aVar.b; String str2 = aVar.a; String num = Integer.toString(aVar.d); sb.append(str); sb.append("&"); sb.append(str2); sb.append("&"); sb.append(num); sb.append("&&"); } return sb.toString(); } public static List<cn.jiguang.j.a> b(Context context) { return Build.VERSION.SDK_INT < 21 ? c(context) : d(context); } private static Map<String, cn.jiguang.j.a> b(String str) { if (f.a(str)) { return null; } HashMap hashMap = new HashMap(); String[] split = str.split("&&"); for (String str2 : split) { if (str2 != null) { try { String[] split2 = str2.split("&"); if (split2.length == 3) { cn.jiguang.j.a aVar = new cn.jiguang.j.a(); aVar.b = split2[0]; aVar.a = split2[1]; aVar.d = Integer.parseInt(split2[2]); hashMap.put(aVar.b, aVar); } } catch (Throwable th) { cn.jiguang.af.a.d(a, "parse appinfo error:" + th); } } } return hashMap; } public static cn.jiguang.j.a c(Context context, String str) { cn.jiguang.j.a aVar; PackageInfo d = d(context, str); if (d == null) { System.gc(); return null; } try { a(context); cn.jiguang.j.a aVar2 = new cn.jiguang.j.a(); aVar2.b = d.packageName; aVar2.d = d.versionCode; aVar2.c = d.versionName; aVar2.e = a(d.applicationInfo); if (b != null && b.containsKey(aVar2.b) && (aVar = b.get(aVar2.b)) != null && aVar.equals(aVar2)) { aVar2.a = aVar.a; } if (aVar2.a == null) { aVar2.a = c(d.applicationInfo.loadLabel(context.getPackageManager()).toString()); if (b != null) { b.put(aVar2.b, aVar2); } } return aVar2; } catch (Throwable th) { String str2 = a; cn.jiguang.af.a.d(str2, "getAppInfoFromPackage throwable:" + th.getMessage()); return null; } finally { System.gc(); } } private static String c(String str) { StringBuilder sb; String str2; String str3; if (!TextUtils.isEmpty(str)) { String d = d(str); try { byte[] bytes = str.getBytes(); if (bytes.length > 30) { return d.substring(0, new String(bytes, 0, 30, "UTF-8").length()); } } catch (UnsupportedEncodingException e) { str2 = a; sb = new StringBuilder(); sb.append("getAppName exception:"); str3 = e.getMessage(); sb.append(str3); cn.jiguang.af.a.d(str2, sb.toString()); return str; } catch (Throwable th) { str2 = a; sb = new StringBuilder(); sb.append("getAppName throwable:"); str3 = th.getMessage(); sb.append(str3); cn.jiguang.af.a.d(str2, sb.toString()); return str; } } return str; } private static List<cn.jiguang.j.a> c(Context context) { try { List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = ((ActivityManager) context.getSystemService("activity")).getRunningAppProcesses(); HashSet hashSet = new HashSet(); for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) { String[] strArr = runningAppProcessInfo.pkgList; if (strArr != null && strArr.length > 0) { Collections.addAll(hashSet, strArr); } } ArrayList arrayList = new ArrayList(); Iterator it = hashSet.iterator(); while (it.hasNext()) { cn.jiguang.j.a c = c(context, (String) it.next()); if (c != null) { arrayList.add(c); } } return arrayList; } catch (Throwable th) { String str = a; cn.jiguang.af.a.d(str, "getRunningAppInfoBelowL throwable:" + th.getMessage()); return null; } } private static PackageInfo d(Context context, String str) { try { return context.getPackageManager().getPackageInfo(str, 0); } catch (Throwable th) { String str2 = a; cn.jiguang.af.a.d(str2, "getPackageInfo throwable:" + th.getMessage()); return null; } } private static String d(String str) { return Pattern.compile("\n|\r|\r\n|\n\r|\t").matcher(str).replaceAll(""); } private static List<cn.jiguang.j.a> d(Context context) { HashMap hashMap = new HashMap(); for (b bVar : b.a(1)) { cn.jiguang.j.a c = c(context, bVar.d); if (c != null) { hashMap.put(c.b, c); } } return new ArrayList(hashMap.values()); } }