大漢易經書院.apk(点击下载) / a.java


package com.huawei.appgallery.serviceverifykit.c;

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.content.pm.Signature;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import com.huawei.appgallery.serviceverifykit.api.ServiceVerifyKit;
import com.huawei.appgallery.serviceverifykit.d.c;
import com.huawei.appgallery.serviceverifykit.d.d.b;
import com.huawei.hms.framework.common.ContainerUtils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class a {
    private String a;
    private String b;
    private String c;
    private String d;
    private String e;
    private Map<String, String[]> f = new HashMap();
    private Map<String, Integer> g = new HashMap();
    private int h;
    private List<String> i = new ArrayList();
    private List<ServiceVerifyKit.b> j = new ArrayList();
    private int k = 0;
    private String l;
    private String m;
    private Intent n;
    private ServiceVerifyKit.Builder.ComponentType o;
    private int p = 0;
    private int q = 0;
    private int r = 0;
    private int s = 0;
    private Context t;
    private String u;

    public a(Context context) {
        this.t = context;
    }

    private int a(Bundle bundle, int i2) {
        if (!bundle.containsKey("ag.application.base_priority")) {
            return i2 + 1000;
        }
        try {
            return i2 + bundle.getInt("ag.application.base_priority");
        } catch (Exception unused) {
            b bVar = b.b;
            bVar.a("MatchAppFinder", "skip package " + bundle.getString("ag.application.base_priority") + " is not number");
            return i2 + 1000;
        }
    }

    private int a(Bundle bundle, int i2, List<ServiceVerifyKit.b> list) {
        int i3 = 0;
        for (ServiceVerifyKit.b bVar : list) {
            if (i2 == 1) {
                if (!bundle.containsKey(bVar.a()) || !bundle.get(bVar.a()).toString().equals(bVar.b())) {
                    return 0;
                }
                i3 = 1;
            } else if (i2 != 2) {
                b.b.a("MatchAppFinder", "error input preferred package name");
            } else if (bundle.containsKey(bVar.a()) && bundle.get(bVar.a()).toString().equals(bVar.b())) {
                i3++;
            }
        }
        return i3;
    }

    private int a(Bundle bundle, String str) {
        if (bundle.containsKey(this.l)) {
            return bundle.getString(this.l).equalsIgnoreCase(str) ? 1 : -1;
        }
        return 0;
    }

    private int a(String str, List<String> list) {
        int i2 = 0;
        for (String str2 : list) {
            if (str2.equals(str)) {
                i2 = 1;
            }
        }
        return i2;
    }

    private com.huawei.appgallery.serviceverifykit.a.a a(PackageInfo packageInfo, String str, String str2, int i2) {
        b bVar;
        StringBuilder sb;
        Bundle bundle = packageInfo.applicationInfo.metaData;
        if (bundle == null) {
            bVar = b.b;
            sb = new StringBuilder("skip package ");
            sb.append(str2);
            str2 = " for metadata is null";
        } else {
            int a2 = a(bundle, this.u);
            if (bundle.containsKey(this.d) || bundle.containsKey(this.e)) {
                if (!a(bundle, str2, str)) {
                    bVar = b.b;
                    sb = new StringBuilder("checkSinger failed, packageName is ");
                } else {
                    this.p = i2;
                }
            } else if (a(str2, str)) {
                this.q = 1;
                this.p = this.g.get(str2).intValue();
            } else {
                bVar = b.b;
                sb = new StringBuilder("Legacy is false, packageName is ");
            }
            if (!this.i.isEmpty()) {
                this.r = a(str2, this.i);
            }
            if (!this.j.isEmpty()) {
                this.s = a(bundle, this.k, this.j);
            }
            return new com.huawei.appgallery.serviceverifykit.a.a(str2, a(bundle, this.p), this.q, a2, this.r, this.s);
        }
        sb.append(str2);
        bVar.a("MatchAppFinder", sb.toString());
        return null;
    }

    private String a(ResolveInfo resolveInfo) {
        ServiceVerifyKit.Builder.ComponentType componentType = this.o;
        return ((componentType == ServiceVerifyKit.Builder.ComponentType.ACTIVITY || componentType == ServiceVerifyKit.Builder.ComponentType.BROADCAST) ? resolveInfo.activityInfo.applicationInfo : resolveInfo.serviceInfo.applicationInfo).packageName;
    }

    private static String a(String str) {
        b bVar;
        String str2;
        try {
            return (String) Class.forName("android.os.SystemProperties").getMethod("get", String.class).invoke(null, str);
        } catch (ClassNotFoundException unused) {
            bVar = b.b;
            str2 = "getSystemProperties ClassNotFoundException";
            bVar.a("MatchAppFinder", str2);
            return "";
        } catch (Exception unused2) {
            bVar = b.b;
            str2 = "getSystemProperties Exception while getting system property";
            bVar.a("MatchAppFinder", str2);
            return "";
        }
    }

    private List<ResolveInfo> a(PackageManager packageManager) {
        ServiceVerifyKit.Builder.ComponentType componentType = this.o;
        return componentType == null ? packageManager.queryIntentServices(new Intent(this.a), this.h) : componentType == ServiceVerifyKit.Builder.ComponentType.ACTIVITY ? packageManager.queryIntentActivities(this.n, this.h) : componentType == ServiceVerifyKit.Builder.ComponentType.BROADCAST ? packageManager.queryBroadcastReceivers(this.n, this.h) : packageManager.queryIntentServices(this.n, this.h);
    }

    private List<com.huawei.appgallery.serviceverifykit.a.a> a(List<ResolveInfo> list, PackageManager packageManager, int i2) {
        StringBuilder sb;
        String str;
        b bVar;
        ArrayList arrayList = new ArrayList();
        for (ResolveInfo resolveInfo : list) {
            String a2 = a(resolveInfo);
            try {
                PackageInfo packageInfo = packageManager.getPackageInfo(a2, i2);
                if (packageInfo.applicationInfo == null) {
                    bVar = b.b;
                    sb = new StringBuilder("skip package ");
                    sb.append(a2);
                    str = " for ApplicationInfo is null";
                } else {
                    Signature[] signatureArr = packageInfo.signatures;
                    if (signatureArr == null || signatureArr.length <= 0) {
                        bVar = b.b;
                        sb = new StringBuilder("skip package ");
                        sb.append(a2);
                        str = " for no sign";
                    } else {
                        byte[] byteArray = signatureArr[0].toByteArray();
                        if (byteArray.length == 0) {
                            bVar = b.b;
                            sb = new StringBuilder("skip package ");
                            sb.append(a2);
                            str = " for sign is empty";
                        } else {
                            try {
                                com.huawei.appgallery.serviceverifykit.a.a a3 = a(packageInfo, com.huawei.appgallery.serviceverifykit.d.b.b(MessageDigest.getInstance("SHA-256").digest(byteArray), true), a2, resolveInfo.priority);
                                if (a3 != null) {
                                    arrayList.add(a3);
                                }
                            } catch (NoSuchAlgorithmException unused) {
                                bVar = b.b;
                                sb = new StringBuilder("skip package ");
                                sb.append(a2);
                                str = " for AlgorithmException";
                            }
                        }
                    }
                }
            } catch (PackageManager.NameNotFoundException unused2) {
                bVar = b.b;
                sb = new StringBuilder("skip package ");
                sb.append(a2);
                str = " for PackageInfo is null";
            }
            sb.append(str);
            bVar.a("MatchAppFinder", sb.toString());
        }
        return arrayList;
    }

    private boolean a(Bundle bundle, String str, String str2) {
        b bVar;
        String str3;
        if (!bundle.containsKey(this.d) || !bundle.containsKey(this.e)) {
            bVar = b.b;
            str3 = "skip package " + str + " for no signer or no certChain";
        } else {
            if (a(str + ContainerUtils.FIELD_DELIMITER + str2, bundle.getString(this.d), bundle.getString(this.e))) {
                return true;
            }
            bVar = b.b;
            str3 = "checkSinger failed";
        }
        bVar.a("MatchAppFinder", str3);
        return false;
    }

    private boolean a(String str, String str2) {
        String[] strArr;
        if (this.f.containsKey(str) && (strArr = this.f.get(str)) != null) {
            for (String str3 : strArr) {
                if (str2.equals(str3)) {
                    return true;
                }
            }
        }
        return false;
    }

    private boolean a(String str, String str2, String str3) {
        b bVar;
        String str4;
        if (TextUtils.isEmpty(str2) || TextUtils.isEmpty(str3)) {
            bVar = b.b;
            str4 = "args is invalid";
        } else {
            List<X509Certificate> b2 = c.b(str3);
            if (b2.size() == 0) {
                bVar = b.b;
                str4 = "certChain is empty";
            } else if (!c.a(c.a(this.t), b2)) {
                bVar = b.b;
                str4 = "failed to verify cert chain";
            } else {
                X509Certificate x509Certificate = b2.get(0);
                if (!c.a(x509Certificate, this.b)) {
                    bVar = b.b;
                    str4 = "CN is invalid";
                } else if (!c.b(x509Certificate, this.c)) {
                    bVar = b.b;
                    str4 = "OU is invalid";
                } else {
                    byte[] bArr = null;
                    try {
                        bArr = str.getBytes("UTF-8");
                    } catch (UnsupportedEncodingException e2) {
                        b.b.a("MatchAppFinder", "checkCertChain UnsupportedEncodingException:", e2);
                    }
                    if (c.a(x509Certificate, bArr, com.huawei.appgallery.serviceverifykit.d.a.a(str2))) {
                        return true;
                    }
                    bVar = b.b;
                    str4 = "signature is invalid";
                }
            }
        }
        bVar.a("MatchAppFinder", str4);
        return false;
    }

    public List<com.huawei.appgallery.serviceverifykit.a.a> a() {
        PackageManager packageManager = this.t.getPackageManager();
        List<ResolveInfo> a2 = a(packageManager);
        if (a2.size() == 0) {
            return null;
        }
        this.u = TextUtils.isEmpty(this.m) ? Build.MANUFACTURER : a(this.m);
        return a(a2, packageManager, this.h | 128 | 64);
    }

    public void a(String str, String str2, String str3, String str4, String str5, Map<String, String[]> map, Map<String, Integer> map2, int i2, List<String> list, List<ServiceVerifyKit.b> list2, int i3, String str6, String str7, Intent intent, ServiceVerifyKit.Builder.ComponentType componentType) {
        this.a = str;
        this.b = str2;
        this.c = str3;
        this.d = str4;
        this.e = str5;
        this.f = map;
        this.g = map2;
        this.h = i2;
        this.i = list;
        this.j = list2;
        this.k = i3;
        this.l = str6;
        this.m = str7;
        this.n = intent;
        this.o = componentType;
    }
}