WeChat.apk(点击下载) / r0.java


package dk0;

import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.text.TextUtils;
import com.eclipsesource.mmv8.Platform;
import com.tencent.mm.sdk.platformtools.Log;
import com.tencent.mm.sdk.platformtools.MD5Util;
import com.tencent.mm.sdk.platformtools.Util;
import com.tencent.mm.vfs.h0;
import com.tencent.mm.vfs.n2;
import com.tencent.mm.vfs.o2;
import com.tencent.mm.vfs.q1;
import com.tencent.tinker.loader.shareutil.ShareConstants;
import com.tencent.tmassistantsdk.openSDK.QQDownloader.AssistantStore;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.xmlpull.v1.XmlPullParserException;

public class r0 {

    public static class a {
        /* JADX WARNING: Code restructure failed: missing block: B:49:0x00a5, code lost:
            if (0 == 0) goto L_0x00aa;
         */
        public static int a(Context context, String str) {
            Context context2;
            int i15;
            XmlResourceParser xmlResourceParser = null;
            try {
                context2 = context.createPackageContext(str, 0);
            } catch (PackageManager.NameNotFoundException e15) {
                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[0]);
                context2 = null;
            }
            if (context2 == null) {
                return 0;
            }
            AssetManager assets = context2.getAssets();
            Resources resources = new Resources(assets, context.getResources().getDisplayMetrics(), null);
            try {
                xmlResourceParser = b(context2, assets);
                if (xmlResourceParser == null) {
                    if (xmlResourceParser != null) {
                        xmlResourceParser.close();
                    }
                    return 0;
                }
                try {
                    i15 = xmlResourceParser.getEventType();
                } catch (XmlPullParserException e16) {
                    Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e16, "", new Object[0]);
                    i15 = 0;
                }
                while (i15 != 1) {
                    if (i15 == 2) {
                        String name = xmlResourceParser.getName();
                        if (!TextUtils.isEmpty(name) && name.equals("manifest")) {
                            String attributeValue = xmlResourceParser.getAttributeValue("http://schemas.android.com/apk/res/android", AssistantStore.DownloadInfos.DownloadInfoColumns.VERSIONCODE);
                            if (attributeValue != null && attributeValue.startsWith("@")) {
                                try {
                                    attributeValue = resources.getString(Integer.parseInt(attributeValue.substring(1)));
                                } catch (Resources.NotFoundException | NumberFormatException unused) {
                                }
                            }
                            if (TextUtils.isEmpty(attributeValue)) {
                                xmlResourceParser.close();
                                return 0;
                            }
                            int i16 = Util.getInt(attributeValue, 0);
                            xmlResourceParser.close();
                            return i16;
                        }
                    }
                    try {
                        i15 = xmlResourceParser.nextToken();
                    } catch (XmlPullParserException e17) {
                        Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e17, "", new Object[0]);
                    } catch (IOException e18) {
                        Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e18, "", new Object[0]);
                    }
                }
                xmlResourceParser.close();
                return 0;
            } catch (IOException e19) {
                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e19, "", new Object[0]);
            } catch (Throwable th5) {
                if (0 != 0) {
                    xmlResourceParser.close();
                }
                throw th5;
            }
        }

        public static XmlResourceParser b(Context context, AssetManager assetManager) {
            try {
                String str = (String) Context.class.getMethod("getPackageResourcePath", new Class[0]).invoke(context, new Object[0]);
                Method method = AssetManager.class.getMethod("getCookieName", Integer.TYPE);
                if (str == null && context.getPackageName().equals(Platform.ANDROID)) {
                    str = "/system/framework/framework-res.apk";
                }
                for (int i15 = 1; i15 < 20; i15++) {
                    if (str != null) {
                        if (str.equals(method.invoke(assetManager, Integer.valueOf(i15)))) {
                            return assetManager.openXmlResourceParser(i15, ShareConstants.RES_MANIFEST);
                        }
                    }
                }
            } catch (Exception unused) {
            }
            return assetManager.openXmlResourceParser(ShareConstants.RES_MANIFEST);
        }
    }

    public static class b {
        /* JADX DEBUG: Failed to insert an additional move for type inference into block B:100:0x0018 */
        /* JADX DEBUG: Failed to insert an additional move for type inference into block B:101:0x009c */
        /* JADX DEBUG: Failed to insert an additional move for type inference into block B:105:0x0018 */
        /* JADX WARN: Multi-variable type inference failed */
        /* JADX WARN: Type inference failed for: r2v5 */
        /* JADX WARN: Type inference failed for: r2v6 */
        /* JADX WARN: Type inference failed for: r2v7 */
        /* JADX WARN: Type inference failed for: r2v8, types: [java.security.cert.Certificate] */
        /* JADX WARN: Type inference failed for: r2v14 */
        /* JADX WARN: Type inference failed for: r2v18, types: [java.security.cert.X509Certificate] */
        /* JADX WARNING: Code restructure failed: missing block: B:39:0x009b, code lost:
            throw new java.lang.SecurityException("The apk file has unsigned res:" + r8.getName());
         */
        /* JADX WARNING: Removed duplicated region for block: B:90:0x0126 A[SYNTHETIC, Splitter:B:90:0x0126] */
        /* JADX WARNING: Removed duplicated region for block: B:95:0x0132 A[SYNTHETIC, Splitter:B:95:0x0132] */
        public static String a(q1 q1Var) {
            Throwable th5;
            JarFile jarFile;
            InputStream inputStream;
            Exception e15;
            int i15;
            int i16;
            InputStream inputStream2 = 0;
            try {
                jarFile = new JarFile(q1Var.o());
                try {
                    byte[] bArr = new byte[8192];
                    Enumeration<JarEntry> entries = jarFile.entries();
                    inputStream = null;
                    while (true) {
                        try {
                            if (!entries.hasMoreElements()) {
                                break;
                            }
                            JarEntry nextElement = entries.nextElement();
                            if (!nextElement.isDirectory()) {
                                if (!nextElement.getName().startsWith("META-INF/")) {
                                    String name = nextElement.getName();
                                    if (!ShareConstants.RES_ARSC.equals(name)) {
                                        if (!ShareConstants.RES_MANIFEST.equals(name)) {
                                            if (nextElement.getSize() <= 5120) {
                                                System.currentTimeMillis();
                                                inputStream = jarFile.getInputStream(nextElement);
                                                System.currentTimeMillis();
                                                if (inputStream != null) {
                                                    while (inputStream.read(bArr, 0, 8192) != -1) {
                                                    }
                                                    inputStream.close();
                                                }
                                                Certificate[] certificates = nextElement.getCertificates();
                                                if (certificates != null && certificates.length != 0) {
                                                    if (inputStream2 == 0 && (inputStream2 = (X509Certificate) certificates[0]) != 0) {
                                                        break;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        } catch (Exception e16) {
                            e15 = e16;
                            inputStream2 = jarFile;
                            try {
                                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[0]);
                                throw e15;
                            } catch (Throwable th6) {
                                th5 = th6;
                                jarFile = inputStream2;
                                inputStream2 = inputStream;
                                if (inputStream2 != null) {
                                    try {
                                        inputStream2.close();
                                    } catch (IOException e17) {
                                        Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e17, "", new Object[0]);
                                    }
                                }
                                if (jarFile != null) {
                                    try {
                                        jarFile.close();
                                    } catch (IOException e18) {
                                        Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e18, "", new Object[0]);
                                    }
                                }
                                throw th5;
                            }
                        } catch (Throwable th7) {
                            th5 = th7;
                            inputStream2 = inputStream;
                            if (inputStream2 != null) {
                            }
                            if (jarFile != null) {
                            }
                            throw th5;
                        }
                    }
                    if (inputStream2 != 0) {
                        byte[] encoded = inputStream2.getEncoded();
                        int length = encoded.length;
                        char[] cArr = new char[(length * 2)];
                        for (int i17 = 0; i17 < length; i17++) {
                            byte b15 = encoded[i17];
                            int i18 = (b15 >> 4) & 15;
                            int i19 = i17 * 2;
                            if (i18 >= 10) {
                                i15 = (i18 + 97) - 10;
                            } else {
                                i15 = i18 + 48;
                            }
                            cArr[i19] = (char) i15;
                            int i25 = b15 & 15;
                            int i26 = i19 + 1;
                            if (i25 >= 10) {
                                i16 = (i25 + 97) - 10;
                            } else {
                                i16 = i25 + 48;
                            }
                            cArr[i26] = (char) i16;
                        }
                        String mD5String = MD5Util.getMD5String(new String(cArr).getBytes());
                        if (inputStream != null) {
                            try {
                                inputStream.close();
                            } catch (IOException e19) {
                                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e19, "", new Object[0]);
                            }
                        }
                        try {
                            jarFile.close();
                        } catch (IOException e25) {
                            Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e25, "", new Object[0]);
                        }
                        return mD5String;
                    }
                    if (inputStream != null) {
                        try {
                            inputStream.close();
                        } catch (IOException e26) {
                            Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e26, "", new Object[0]);
                        }
                    }
                    try {
                        jarFile.close();
                    } catch (IOException e27) {
                        Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e27, "", new Object[0]);
                    }
                    return "";
                } catch (Exception e28) {
                    e15 = e28;
                    inputStream = null;
                    inputStream2 = jarFile;
                    Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[0]);
                    throw e15;
                } catch (Throwable th8) {
                    th5 = th8;
                    if (inputStream2 != null) {
                    }
                    if (jarFile != null) {
                    }
                    throw th5;
                }
            } catch (Exception e29) {
                e15 = e29;
                inputStream = null;
                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[0]);
                throw e15;
            } catch (Throwable th9) {
                th5 = th9;
                jarFile = null;
                if (inputStream2 != null) {
                }
                if (jarFile != null) {
                }
                throw th5;
            }
        }
    }

    public static class c {

        /* renamed from: a  reason: collision with root package name */
        public final String f200801a;

        /* renamed from: b  reason: collision with root package name */
        public final int f200802b;

        /* renamed from: c  reason: collision with root package name */
        public final String f200803c;

        public c(String str, int i15, String str2) {
            this.f200801a = str;
            this.f200802b = i15;
            this.f200803c = str2;
        }
    }

    /* JADX DEBUG: Failed to insert an additional move for type inference into block B:102:0x0111 */
    /* JADX DEBUG: Failed to insert an additional move for type inference into block B:97:0x0218 */
    /* JADX DEBUG: Failed to insert an additional move for type inference into block B:95:0x021c */
    /* JADX DEBUG: Failed to insert an additional move for type inference into block B:105:0x0111 */
    /* JADX DEBUG: Multi-variable search result rejected for r2v0, resolved type: boolean */
    /* JADX DEBUG: Multi-variable search result rejected for r2v1, resolved type: boolean */
    /* JADX DEBUG: Multi-variable search result rejected for r2v6, resolved type: int */
    /* JADX WARN: Multi-variable type inference failed */
    /* JADX WARN: Type inference failed for: r2v2, types: [boolean] */
    /* JADX WARN: Type inference failed for: r2v3 */
    /* JADX WARN: Type inference failed for: r2v4 */
    /* JADX WARN: Type inference failed for: r2v5 */
    /* JADX WARN: Type inference failed for: r2v7 */
    /* JADX WARN: Type inference failed for: r2v8 */
    /* JADX WARN: Type inference failed for: r2v20 */
    /* JADX WARN: Type inference failed for: r2v21 */
    /* JADX WARN: Type inference failed for: r2v32 */
    /* JADX WARN: Type inference failed for: r2v33 */
    /* JADX WARN: Type inference failed for: r2v34 */
    public static boolean a(Context context, ArrayList<c> arrayList, boolean z15) {
        Exception e15;
        String str;
        int i15;
        String str2;
        boolean z16;
        boolean z17;
        int i16 = 0;
        i16 = 0;
        i16 = 0;
        if (!(arrayList == null || arrayList.size() == 0)) {
            Iterator<c> it = arrayList.iterator();
            while (it.hasNext()) {
                c next = it.next();
                if (!TextUtils.isEmpty(next.f200801a)) {
                    String str3 = next.f200801a;
                    ArrayList arrayList2 = new ArrayList();
                    String packageResourcePath = context.getPackageResourcePath();
                    String[] split = packageResourcePath.split("/");
                    if (split != null) {
                        int i17 = i16 == true ? 1 : 0;
                        boolean z18 = i16 == true ? 1 : 0;
                        int i18 = i17;
                        while (true) {
                            if (i18 >= split.length) {
                                str2 = "";
                                break;
                            } else if (split[i18].contains(context.getPackageName())) {
                                str2 = split[i18];
                                break;
                            } else {
                                i18++;
                            }
                        }
                        if (!TextUtils.isEmpty(str2)) {
                            String replace = packageResourcePath.replace(str2, str3 + "-1");
                            n2 a15 = n2.a(replace);
                            String str4 = a15.f189021f;
                            if (str4 != null) {
                                String k15 = o2.k(str4, i16, i16);
                                if (!a15.f189021f.equals(k15)) {
                                    a15 = new n2(a15.f189019d, a15.f189020e, k15, a15.f189022g, a15.f189023h);
                                }
                            }
                            h0 h0Var = h0.i.f188954a;
                            h0.h l15 = h0Var.l(a15, null);
                            if (!l15.a()) {
                                z16 = i16;
                            } else {
                                z16 = l15.f188951a.D(l15.f188952b);
                            }
                            if (z16) {
                                arrayList2.add(replace);
                            }
                            String replace2 = packageResourcePath.replace(str2, str3 + "-2");
                            n2 a16 = n2.a(replace2);
                            String str5 = a16.f189021f;
                            if (str5 != null) {
                                String k16 = o2.k(str5, i16, i16);
                                if (!a16.f189021f.equals(k16)) {
                                    a16 = new n2(a16.f189019d, a16.f189020e, k16, a16.f189022g, a16.f189023h);
                                }
                            }
                            h0.h l16 = h0Var.l(a16, null);
                            if (!l16.a()) {
                                z17 = i16;
                            } else {
                                z17 = l16.f188951a.D(l16.f188952b);
                            }
                            if (z17) {
                                arrayList2.add(replace2);
                            }
                        }
                    }
                    if (arrayList2.size() > 0) {
                        Iterator it4 = arrayList2.iterator();
                        while (it4.hasNext()) {
                            q1 q1Var = new q1((String) it4.next());
                            if (q1Var.m()) {
                                try {
                                    long currentTimeMillis = System.currentTimeMillis();
                                    if (z15) {
                                        Signature[] signatureArr = context.getPackageManager().getPackageInfo(next.f200801a, 64).signatures;
                                        if (signatureArr.length >= 1) {
                                            str = MD5Util.getMD5String(signatureArr[signatureArr.length - 1].toCharsString());
                                        } else {
                                            str = "";
                                        }
                                    } else {
                                        str = b.a(q1Var.n());
                                    }
                                    Object[] objArr = new Object[6];
                                    Boolean valueOf = Boolean.valueOf(z15);
                                    char c15 = i16 == true ? 1 : 0;
                                    char c16 = i16 == true ? 1 : 0;
                                    char c17 = i16 == true ? 1 : 0;
                                    char c18 = i16 == true ? 1 : 0;
                                    objArr[c15] = valueOf;
                                    objArr[1] = next.f200801a;
                                    objArr[2] = next.f200803c;
                                    objArr[3] = str;
                                    objArr[4] = Boolean.valueOf((TextUtils.isEmpty(str) || !str.equalsIgnoreCase(next.f200803c)) ? i16 : true);
                                    objArr[5] = Long.valueOf(System.currentTimeMillis() - currentTimeMillis);
                                    Log.i("MicroMsg.YYBMarketVerify", "summertoken containLowerMarket usesSystemApi[%b], infopkg[%s], infoMD5[%s], sigMD5[%s], equal[%b], takes[%d]ms", objArr);
                                    if (!TextUtils.isEmpty(str) && str.equalsIgnoreCase(next.f200803c)) {
                                        long currentTimeMillis2 = System.currentTimeMillis();
                                        if (z15) {
                                            PackageManager packageManager = context.getPackageManager();
                                            String str6 = next.f200801a;
                                            int i19 = i16 == true ? 1 : 0;
                                            int i25 = i16 == true ? 1 : 0;
                                            int i26 = i16 == true ? 1 : 0;
                                            int i27 = i16 == true ? 1 : 0;
                                            i15 = packageManager.getPackageInfo(str6, i19).versionCode;
                                        } else {
                                            try {
                                                i15 = a.a(context, next.f200801a);
                                            } catch (Exception e16) {
                                                e15 = e16;
                                                i16 = i16;
                                                Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[i16]);
                                            }
                                        }
                                        Object[] objArr2 = new Object[6];
                                        objArr2[i16] = Boolean.valueOf(z15);
                                        try {
                                            objArr2[1] = next.f200801a;
                                            objArr2[2] = Integer.valueOf(next.f200802b);
                                            objArr2[3] = Integer.valueOf(i15);
                                            objArr2[4] = Boolean.valueOf(i15 <= next.f200802b);
                                            objArr2[5] = Long.valueOf(System.currentTimeMillis() - currentTimeMillis2);
                                            Log.i("MicroMsg.YYBMarketVerify", "summertoken containLowerMarket usesSystemApi[%b], infopkg[%s], infovc[%d], versionCode[%d], less[%b], takes[%d]ms", objArr2);
                                            if (i15 <= next.f200802b) {
                                                return true;
                                            }
                                        } catch (Exception e17) {
                                            e15 = e17;
                                            i16 = 0;
                                            Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[i16]);
                                        }
                                    }
                                    i16 = 0;
                                } catch (Exception e18) {
                                    e15 = e18;
                                    i16 = i16;
                                    Log.printErrStackTrace("MicroMsg.YYBMarketVerify", e15, "", new Object[i16]);
                                }
                            }
                        }
                        continue;
                    } else {
                        continue;
                    }
                }
                i16 = i16;
            }
        }
        return i16;
    }
}