智能工厂.apk(点击下载) / a.java


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());
    }
}