package io.flutter.embedding.engine.loader; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.os.AsyncTask; import android.os.Build; import android.os.Process; import android.view.View; import android.widget.ExpandableListView; import io.flutter.Log; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.reflect.Method; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import o.xzZ; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes.dex */ public class ResourceExtractor { private static final String[] SUPPORTED_ABIS = getSupportedAbis(); private static final String TAG = "ResourceExtractor"; private static final String TIMESTAMP_PREFIX = "res_timestamp-"; private final AssetManager mAssetManager; private final String mDataDirPath; private ExtractTask mExtractTask; private final PackageManager mPackageManager; private final String mPackageName; private final HashSet mResources = new HashSet<>(); static long getVersionCode(PackageInfo packageInfo) { if (Build.VERSION.SDK_INT >= 28) { return packageInfo.getLongVersionCode(); } return packageInfo.versionCode; } /* loaded from: classes.dex */ static class ExtractTask extends AsyncTask { private static int b = 0; private static int e = 1; private final AssetManager mAssetManager; private final String mDataDirPath; private final PackageManager mPackageManager; private final String mPackageName; private final HashSet mResources; ExtractTask(String str, HashSet hashSet, String str2, PackageManager packageManager, AssetManager assetManager) { this.mDataDirPath = str; this.mResources = hashSet; this.mAssetManager = assetManager; this.mPackageName = str2; this.mPackageManager = packageManager; } /* JADX INFO: Access modifiers changed from: protected */ @Override // android.os.AsyncTask public Void doInBackground(Void... voidArr) { File file = new File(this.mDataDirPath); String checkTimestamp = ResourceExtractor.checkTimestamp(file, this.mPackageManager, this.mPackageName); if (checkTimestamp == null) { return null; } ResourceExtractor.deleteFiles(this.mDataDirPath, this.mResources); if (extractAPK(file) && checkTimestamp != null) { try { new File(file, checkTimestamp).createNewFile(); } catch (IOException unused) { Log.w(ResourceExtractor.TAG, "Failed to write resource timestamp"); } } return null; } private boolean extractAPK(File file) { int i = 2 % 2; Iterator it = this.mResources.iterator(); int i2 = b + 83; e = i2 % 128; int i3 = i2 % 2; while (it.hasNext()) { String next = it.next(); try { File file2 = new File(file, next); if (!file2.exists()) { if (file2.getParentFile() != null) { int i4 = e + 69; b = i4 % 128; int i5 = i4 % 2; file2.getParentFile().mkdirs(); } try { Object[] objArr = {this.mAssetManager, next}; Object obj = xzZ.y.get(-867414553); if (obj == null) { obj = ((Class) xzZ.c(5 - ExpandableListView.getPackedPositionType(0L), 5 - (Process.myTid() >> 22), (char) View.MeasureSpec.makeMeasureSpec(0, 0))).getMethod("NN_", AssetManager.class, String.class); xzZ.y.put(-867414553, obj); } Object obj2 = null; InputStream inputStream = (InputStream) ((Method) obj).invoke(null, objArr); try { FileOutputStream fileOutputStream = new FileOutputStream(file2); try { ResourceExtractor.copy(inputStream, fileOutputStream); fileOutputStream.close(); if (inputStream != null) { int i6 = e + 69; b = i6 % 128; if (i6 % 2 != 0) { inputStream.close(); obj2.hashCode(); throw null; } inputStream.close(); } else { continue; } } finally { } } catch (Throwable th) { if (inputStream != null) { try { inputStream.close(); } catch (Throwable th2) { th.addSuppressed(th2); } } throw th; } } catch (Throwable th3) { Throwable cause = th3.getCause(); if (cause != null) { throw cause; } throw th3; } } } catch (FileNotFoundException unused) { } catch (IOException e2) { Log.w(ResourceExtractor.TAG, "Exception unpacking resources: " + e2.getMessage()); ResourceExtractor.deleteFiles(this.mDataDirPath, this.mResources); return false; } } return true; } } ResourceExtractor(String str, String str2, PackageManager packageManager, AssetManager assetManager) { this.mDataDirPath = str; this.mPackageName = str2; this.mPackageManager = packageManager; this.mAssetManager = assetManager; } ResourceExtractor addResource(String str) { this.mResources.add(str); return this; } ResourceExtractor addResources(Collection collection) { this.mResources.addAll(collection); return this; } ResourceExtractor start() { ExtractTask extractTask = new ExtractTask(this.mDataDirPath, this.mResources, this.mPackageName, this.mPackageManager, this.mAssetManager); this.mExtractTask = extractTask; extractTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Void[0]); return this; } /* JADX INFO: Access modifiers changed from: package-private */ public void waitForCompletion() { ExtractTask extractTask = this.mExtractTask; if (extractTask == null) { return; } try { extractTask.get(); } catch (InterruptedException | CancellationException | ExecutionException unused) { deleteFiles(this.mDataDirPath, this.mResources); } } private static String[] getExistingTimestamps(File file) { return file.list(new FilenameFilter() { // from class: io.flutter.embedding.engine.loader.ResourceExtractor.1 @Override // java.io.FilenameFilter public boolean accept(File file2, String str) { return str.startsWith(ResourceExtractor.TIMESTAMP_PREFIX); } }); } /* JADX INFO: Access modifiers changed from: private */ public static void deleteFiles(String str, HashSet hashSet) { File file = new File(str); Iterator it = hashSet.iterator(); while (it.hasNext()) { File file2 = new File(file, it.next()); if (file2.exists()) { file2.delete(); } } String[] existingTimestamps = getExistingTimestamps(file); if (existingTimestamps == null) { return; } for (String str2 : existingTimestamps) { new File(file, str2).delete(); } } /* JADX INFO: Access modifiers changed from: private */ public static String checkTimestamp(File file, PackageManager packageManager, String str) { try { PackageInfo packageInfo = packageManager.getPackageInfo(str, 0); if (packageInfo == null) { return TIMESTAMP_PREFIX; } String str2 = TIMESTAMP_PREFIX + getVersionCode(packageInfo) + "-" + packageInfo.lastUpdateTime; String[] existingTimestamps = getExistingTimestamps(file); if (existingTimestamps == null) { return str2; } int length = existingTimestamps.length; if (existingTimestamps.length == 1 && str2.equals(existingTimestamps[0])) { return null; } return str2; } catch (PackageManager.NameNotFoundException unused) { return TIMESTAMP_PREFIX; } } /* JADX INFO: Access modifiers changed from: private */ public static void copy(InputStream inputStream, OutputStream outputStream) throws IOException { byte[] bArr = new byte[16384]; while (true) { int read = inputStream.read(bArr); if (read < 0) { return; } else { outputStream.write(bArr, 0, read); } } } private static String[] getSupportedAbis() { return Build.SUPPORTED_ABIS; } }