Info Call to External Storage API

Description

List of all external storage API calls. Insecure storage of sensitive information by setting insecure permissions or storing data without encryption might expose this information to an attacker.

Recommendation

This entry is informative, no recommendations applicable.

Technical details

Method io.flutter.view.ResourceUpdater$DownloadTask.doInBackground() calling method java.io.FileOutputStream.<init>()


    protected varargs Void doInBackground(String[] p12)
    {
        try {
            java.util.concurrent.locks.Lock v0_21 = new java.net.URL(io.flutter.view.ResourceUpdater.access$000(this.this$0));
            StringBuilder v2_16 = new StringBuilder();
            v2_16.append(this.this$0.getInstalledPatch().getPath());
            v2_16.append(".download");
            String v1_6 = new java.io.File(v2_16.toString());
            StringBuilder v2_14 = new java.util.Date().getTime();
            String v5_11 = new StringBuilder();
            v5_11.append("Checking for updates at ");
            v5_11.append(v0_21);
            android.util.Log.i("ResourceUpdater", v5_11.toString());
            java.io.InputStream v4_2 = ((java.net.HttpURLConnection) v0_21.openConnection());
            String v5_16 = Math.max(this.this$0.getDownloadedPatch().lastModified(), this.this$0.getInstalledPatch().lastModified());
        } catch (java.util.concurrent.locks.Lock v0_18) {
            StringBuilder v2_13 = new StringBuilder();
            v2_13.append("Could not download update ");
            v2_13.append(v0_18.getMessage());
            android.util.Log.w("ResourceUpdater", v2_13.toString());
            return 0;
        }
        if (v5_16 != 0) {
            String v8_1 = new StringBuilder();
            v8_1.append("Active update timestamp ");
            v8_1.append(v5_16);
            android.util.Log.i("ResourceUpdater", v8_1.toString());
            v4_2.setIfModifiedSince(v5_16);
        }
        String v5_17 = v4_2.getURL();
        double v7_11 = new StringBuilder();
        v7_11.append("Resolved update URL ");
        v7_11.append(v5_17);
        android.util.Log.i("ResourceUpdater", v7_11.toString());
        String v5_19 = v4_2.getResponseCode();
        double v7_13 = new StringBuilder();
        v7_13.append("HTTP response code ");
        v7_13.append(v5_19);
        android.util.Log.i("ResourceUpdater", v7_13.toString());
        if (v5_19 != 404) {
            if (v5_19 != 304) {
                java.io.InputStream v4_3 = v4_2.getInputStream();
                try {
                    int v6_7 = new StringBuilder();
                    v6_7.append("Downloading update ");
                    v6_7.append(v0_21);
                    android.util.Log.i("ResourceUpdater", v6_7.toString());
                    java.util.concurrent.locks.Lock v0_24 = new java.io.FileOutputStream(v1_6);
                    try {
                        String v5_1 = new byte[1024];
                    } catch (String v1_7) {
                        StringBuilder v2_9 = 0;
                        if (v2_9 == null) {
                            v0_24.close();
                        } else {
                            v0_24.close();
                        }
                        throw v1_7;
                    } catch (String v1_5) {
                        try {
                            throw v1_5;
                        } catch (StringBuilder v2_8) {
                            v2_9 = v1_5;
                            v1_7 = v2_8;
                        }
                    }
                    while(true) {
                        int v6_0 = v4_3.read(v5_1);
                        if (v6_0 == -1) {
                            break;
                        }
                        v0_24.write(v5_1, 0, v6_0);
                    }
                    String v5_5 = (new java.util.Date().getTime() - v2_14);
                    String v3_2 = new StringBuilder();
                    v3_2.append("Update downloaded in ");
                    String v5_7 = ((double) (v5_5 / 100));
                    Double.isNaN(v5_7);
                    v3_2.append((v5_7 / 10.0));
                    v3_2.append("s");
                    android.util.Log.i("ResourceUpdater", v3_2.toString());
                    v0_24.close();
                    if (v4_3 != null) {
                        v4_3.close();
                    }
                    io.flutter.view.ResourceUpdater.access$100(this.this$0).lock();
                    java.util.concurrent.locks.Lock v0_4 = this.this$0.getDownloadedPatch();
                    if ((!v0_4.exists()) || (v0_4.delete())) {
                        if (v1_6.renameTo(v0_4)) {
                            io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                            return 0;
                        } else {
                            StringBuilder v2_4 = new StringBuilder();
                            v2_4.append("Could not create file ");
                            v2_4.append(v0_4);
                            android.util.Log.w("ResourceUpdater", v2_4.toString());
                            io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                            return 0;
                        }
                    } else {
                        StringBuilder v2_6 = new StringBuilder();
                        v2_6.append("Could not delete file ");
                        v2_6.append(v0_4);
                        android.util.Log.w("ResourceUpdater", v2_6.toString());
                        io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                        return 0;
                    }
                } catch (java.util.concurrent.locks.Lock v0_15) {
                    String v1_10 = 0;
                    if (v4_3 != null) {
                        if (v1_10 == null) {
                            v4_3.close();
                        } else {
                            v4_3.close();
                        }
                    }
                    throw v0_15;
                } catch (java.util.concurrent.locks.Lock v0_14) {
                    try {
                        throw v0_14;
                    } catch (String v1_9) {
                        v1_10 = v0_14;
                        v0_15 = v1_9;
                    }
                }
            } else {
                android.util.Log.i("ResourceUpdater", "Already have latest update");
                return 0;
            }
        } else {
            android.util.Log.i("ResourceUpdater", "Latest update not found on server");
            return 0;
        }
    }

Method io.flutter.view.ResourceExtractor.extractUpdate() calling method java.io.FileOutputStream.<init>()


    private boolean extractUpdate(java.io.File p15)
    {
        String v0_4 = this.mContext.getResources().getAssets();
        int v1_2 = io.flutter.view.FlutterMain.getResourceUpdater();
        if (v1_2 != 0) {
            String v3_0 = v1_2.getInstalledPatch();
            if (v3_0.exists()) {
                if (v1_2.validateManifest(v1_2.readManifest(v3_0))) {
                    try {
                        java.util.zip.ZipFile v4_3 = new java.util.zip.ZipFile(v3_0);
                        String v3_2 = this.mResources.iterator();
                    } catch (String v15_3) {
                        StringBuilder v2_3 = new StringBuilder();
                        v2_3.append("Exception unpacking resources: ");
                        v2_3.append(v15_3.getMessage());
                        android.util.Log.w("ResourceExtractor", v2_3.toString());
                        this.deleteFiles();
                        return 0;
                    }
                    while (v3_2.hasNext()) {
                        java.util.zip.ZipEntry v10_0;
                        String v11_0;
                        java.io.FileOutputStream v5_15 = ((String) v3_2.next());
                        Throwable v7_0 = 0;
                        if (!v5_15.endsWith(".so")) {
                            v10_0 = 0;
                            v11_0 = 0;
                        } else {
                            Throwable v6_24 = io.flutter.view.ResourceExtractor.SUPPORTED_ABIS;
                            byte[] v8_10 = v6_24.length;
                            v10_0 = 0;
                            v11_0 = 0;
                            Throwable v9_6 = 0;
                            while (v9_6 < v8_10) {
                                java.util.zip.ZipEntry v10_1 = v6_24[v9_6];
                                String v11_2 = new StringBuilder();
                                v11_2.append("lib/");
                                v11_2.append(v10_1);
                                v11_2.append("/");
                                v11_2.append(v5_15);
                                v11_0 = v11_2.toString();
                                v10_0 = v4_3.getEntry(v11_0);
                                if (v10_0 != null) {
                                    break;
                                }
                                java.util.zip.ZipEntry v10_4 = new StringBuilder();
                                v10_4.append(v11_0);
                                v10_4.append(".bzdiff40");
                                v10_0 = v4_3.getEntry(v10_4.toString());
                                if (v10_0 != null) {
                                    break;
                                }
                                v9_6++;
                            }
                        }
                        if (v10_0 == null) {
                            Throwable v6_26 = new StringBuilder();
                            v6_26.append("assets/");
                            v6_26.append(v5_15);
                            v11_0 = v6_26.toString();
                            v10_0 = v4_3.getEntry(v11_0);
                            if (v10_0 == null) {
                                Throwable v6_28 = new StringBuilder();
                                v6_28.append(v11_0);
                                v6_28.append(".bzdiff40");
                                v10_0 = v4_3.getEntry(v6_28.toString());
                                if (v10_0 == null) {
                                }
                            }
                        }
                        Throwable v6_2 = new java.io.File(p15, v5_15);
                        if (!v6_2.exists()) {
                            if (v6_2.getParentFile() != null) {
                                v6_2.getParentFile().mkdirs();
                            }
                            try {
                                if (!v10_0.getName().endsWith(".bzdiff40")) {
                                    java.io.FileOutputStream v5_0 = v4_3.getInputStream(v10_0);
                                    try {
                                        byte[] v8_6 = new java.io.FileOutputStream(v6_2);
                                        try {
                                            io.flutter.view.ResourceExtractor.copy(v5_0, v8_6);
                                        } catch (Throwable v6_4) {
                                            Throwable v9_2 = 0;
                                            if (v9_2 == null) {
                                                v8_6.close();
                                            } else {
                                                v8_6.close();
                                            }
                                            throw v6_4;
                                        } catch (Throwable v6_3) {
                                            try {
                                                throw v6_3;
                                            } catch (Throwable v9_1) {
                                                v9_2 = v6_3;
                                                v6_4 = v9_1;
                                            }
                                        }
                                        v8_6.close();
                                        if (v5_0 != null) {
                                            v5_0.close();
                                        }
                                    } catch (Throwable v6_6) {
                                        if (v5_0 != null) {
                                            if (v7_0 == null) {
                                                v5_0.close();
                                            } else {
                                                v5_0.close();
                                            }
                                        }
                                        throw v6_6;
                                    } catch (Throwable v6_5) {
                                        v7_0 = v6_5;
                                        throw v7_0;
                                    }
                                } else {
                                    byte[] v8_8 = new java.io.ByteArrayOutputStream();
                                    Throwable v9_3 = v4_3.getInputStream(v10_0);
                                    try {
                                        io.flutter.view.ResourceExtractor.copy(v9_3, v8_8);
                                    } catch (java.io.FileOutputStream v5_1) {
                                        if (v9_3 != null) {
                                            if (v7_0 == null) {
                                                v9_3.close();
                                            } else {
                                                v9_3.close();
                                            }
                                        }
                                        throw v5_1;
                                    } catch (Throwable v7_0) {
                                        throw v7_0;
                                    }
                                    if (v9_3 != null) {
                                        v9_3.close();
                                    }
                                    Throwable v9_5 = new java.io.ByteArrayOutputStream();
                                    if (!v5_15.endsWith(".so")) {
                                        java.io.FileOutputStream v5_2 = v0_4.open(v5_15);
                                        try {
                                            io.flutter.view.ResourceExtractor.copy(v5_2, v9_5);
                                        } catch (Throwable v6_7) {
                                            if (v5_2 != null) {
                                                if (v7_0 == null) {
                                                    v5_2.close();
                                                } else {
                                                    v5_2.close();
                                                }
                                            }
                                            throw v6_7;
                                        } catch (Throwable v7_0) {
                                            throw v7_0;
                                        }
                                        if (v5_2 != null) {
                                            v5_2.close();
                                        }
                                    } else {
                                        java.io.FileOutputStream v5_6 = new java.util.zip.ZipFile(this.getAPKPath());
                                        java.util.zip.ZipEntry v12_3 = v5_6.getEntry(v11_0);
                                        if (v12_3 == null) {
                                            Throwable v6_12 = new StringBuilder();
                                            v6_12.append("Could not find APK resource ");
                                            v6_12.append(v11_0);
                                            throw new java.io.IOException(v6_12.toString());
                                        } else {
                                            java.io.FileOutputStream v5_9 = v5_6.getInputStream(v12_3);
                                            try {
                                                io.flutter.view.ResourceExtractor.copy(v5_9, v9_5);
                                            } catch (Throwable v6_14) {
                                                if (v5_9 != null) {
                                                    if (v7_0 == null) {
                                                        v5_9.close();
                                                    } else {
                                                        v5_9.close();
                                                    }
                                                }
                                                throw v6_14;
                                            } catch (Throwable v7_0) {
                                                throw v7_0;
                                            }
                                            if (v5_9 != null) {
                                                v5_9.close();
                                            }
                                        }
                                    }
                                    java.io.FileOutputStream v5_11 = new java.io.FileOutputStream(v6_2);
                                    try {
                                        v5_11.write(io.flutter.util.BSDiff.bspatch(v9_5.toByteArray(), v8_8.toByteArray()));
                                    } catch (Throwable v6_18) {
                                        if (v7_0 == null) {
                                            v5_11.close();
                                        } else {
                                            v5_11.close();
                                        }
                                        throw v6_18;
                                    } catch (Throwable v6_17) {
                                        v7_0 = v6_17;
                                        throw v7_0;
                                    }
                                    v5_11.close();
                                }
                                Throwable v6_20 = new StringBuilder();
                                v6_20.append("Extracted override resource ");
                                v6_20.append(v10_0.getName());
                                android.util.Log.i("ResourceExtractor", v6_20.toString());
                            } catch (java.io.FileNotFoundException) {
                            } catch (String v15_1) {
                                StringBuilder v2_1 = new StringBuilder();
                                v2_1.append("Exception unpacking resources: ");
                                v2_1.append(v15_1.getMessage());
                                android.util.Log.w("ResourceExtractor", v2_1.toString());
                                this.deleteFiles();
                                return 0;
                            }
                        }
                    }
                    return 1;
                } else {
                    return 1;
                }
            } else {
                return 1;
            }
        } else {
            return 1;
        }
    }

Method io.flutter.view.ResourceExtractor.extractAPK() calling method java.io.FileOutputStream.<init>()


    private boolean extractAPK(java.io.File p9)
    {
        String v0_2 = this.mContext.getResources().getAssets();
        StringBuilder v1_1 = this.mResources.iterator();
        while (v1_1.hasNext()) {
            String v2_1 = ((String) v1_1.next());
            try {
                Throwable v3_1 = new StringBuilder();
                v3_1.append("assets/");
                v3_1.append(v2_1);
                Throwable v3_2 = v3_1.toString();
                String v4_2 = new java.io.File(p9, v2_1);
            } catch (java.io.FileNotFoundException) {
            } catch (int v9_2) {
                StringBuilder v1_3 = new StringBuilder();
                v1_3.append("Exception unpacking resources: ");
                v1_3.append(v9_2.getMessage());
                android.util.Log.w("ResourceExtractor", v1_3.toString());
                this.deleteFiles();
                return 0;
            }
            if (!v4_2.exists()) {
                if (v4_2.getParentFile() != null) {
                    v4_2.getParentFile().mkdirs();
                }
                String v2_2 = v0_2.open(v2_1);
                String v5_3 = 0;
                try {
                    java.io.FileOutputStream v6_1 = new java.io.FileOutputStream(v4_2);
                    try {
                        io.flutter.view.ResourceExtractor.copy(v2_2, v6_1);
                    } catch (Throwable v3_4) {
                        String v4_4 = 0;
                        if (v4_4 == null) {
                            v6_1.close();
                        } else {
                            v6_1.close();
                        }
                        throw v3_4;
                    } catch (Throwable v3_3) {
                        try {
                            throw v3_3;
                        } catch (String v4_3) {
                            v4_4 = v3_3;
                            v3_4 = v4_3;
                        }
                    }
                    v6_1.close();
                    if (v2_2 != null) {
                        v2_2.close();
                    }
                    String v4_6 = new StringBuilder();
                    v4_6.append("Extracted baseline resource ");
                    v4_6.append(v3_2);
                    android.util.Log.i("ResourceExtractor", v4_6.toString());
                } catch (Throwable v3_6) {
                    if (v2_2 != null) {
                        if (v5_3 == null) {
                            v2_2.close();
                        } else {
                            v2_2.close();
                        }
                    }
                    throw v3_6;
                } catch (Throwable v3_5) {
                    v5_3 = v3_5;
                    throw v5_3;
                }
            } else {
            }
        }
        return 1;
    }

Method androidx.core.util.AtomicFile.startWrite() calling method java.io.FileOutputStream.<init>()

Couldn't retrieve source code

Method androidx.core.graphics.TypefaceCompatUtil.copyToFile() calling method java.io.FileOutputStream.<init>()


    public static boolean copyToFile(java.io.File p5, java.io.InputStream p6)
    {
        android.os.StrictMode$ThreadPolicy v0 = android.os.StrictMode.allowThreadDiskWrites();
        int v2_1 = 0;
        try {
            StringBuilder v3_3 = new java.io.FileOutputStream(p5, 0);
            try {
                int v5_7 = new byte[1024];
            } catch (int v5_4) {
                v2_1 = v3_3;
                androidx.core.graphics.TypefaceCompatUtil.closeQuietly(v2_1);
                android.os.StrictMode.setThreadPolicy(v0);
                throw v5_4;
            } catch (int v5_1) {
                v2_1 = v3_3;
                StringBuilder v3_1 = new StringBuilder();
                v3_1.append("Error copying resource contents to temp file: ");
                v3_1.append(v5_1.getMessage());
                android.util.Log.e("TypefaceCompatUtil", v3_1.toString());
                androidx.core.graphics.TypefaceCompatUtil.closeQuietly(v2_1);
                android.os.StrictMode.setThreadPolicy(v0);
                return 0;
            }
            while(true) {
                int v2_0 = p6.read(v5_7);
                if (v2_0 == -1) {
                    break;
                }
                v3_3.write(v5_7, 0, v2_0);
            }
            androidx.core.graphics.TypefaceCompatUtil.closeQuietly(v3_3);
            android.os.StrictMode.setThreadPolicy(v0);
            return 1;
        } catch (int v5_4) {
        } catch (int v5_1) {
            v3_1 = new StringBuilder();
            v3_1.append("Error copying resource contents to temp file: ");
            v3_1.append(v5_1.getMessage());
            android.util.Log.e("TypefaceCompatUtil", v3_1.toString());
            androidx.core.graphics.TypefaceCompatUtil.closeQuietly(v2_1);
            android.os.StrictMode.setThreadPolicy(v0);
            return 0;
        }
    }

Method androidx.core.graphics.drawable.IconCompat.loadDrawableInner() calling method java.io.FileInputStream.<init>()


    private android.graphics.drawable.Drawable loadDrawableInner(android.content.Context p7)
    {
        switch (this.mType) {
            case 1:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), ((android.graphics.Bitmap) this.mObj1));
            case 2:
                android.graphics.Bitmap v0_14 = this.getResPackage();
                if (android.text.TextUtils.isEmpty(v0_14)) {
                    v0_14 = p7.getPackageName();
                }
                try {
                    return androidx.core.content.res.ResourcesCompat.getDrawable(androidx.core.graphics.drawable.IconCompat.getResources(p7, v0_14), this.mInt1, p7.getTheme());
                } catch (android.content.res.Resources v7_7) {
                    StringBuilder v4_7 = new Object[2];
                    v4_7[0] = Integer.valueOf(this.mInt1);
                    v4_7[1] = this.mObj1;
                    android.util.Log.e("IconCompat", String.format("Unable to load resource 0x%08x from pkg=%s", v4_7), v7_7);
                }
            case 3:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeByteArray(((byte[]) this.mObj1), this.mInt1, this.mInt2));
            case 4:
                android.graphics.Bitmap v0_7;
                android.graphics.Bitmap v0_6 = android.net.Uri.parse(((String) this.mObj1));
                android.graphics.drawable.BitmapDrawable v1_6 = v0_6.getScheme();
                if ((!"content".equals(v1_6)) && (!"file".equals(v1_6))) {
                    try {
                        v0_7 = new java.io.FileInputStream(new java.io.File(((String) this.mObj1)));
                    } catch (android.graphics.drawable.BitmapDrawable v1_10) {
                        StringBuilder v4_3 = new StringBuilder();
                        v4_3.append("Unable to load image from path: ");
                        v4_3.append(v0_7);
                        android.util.Log.w("IconCompat", v4_3.toString(), v1_10);
                        v0_7 = 0;
                    }
                } else {
                    try {
                        v0_7 = p7.getContentResolver().openInputStream(v0_6);
                    } catch (android.graphics.drawable.BitmapDrawable v1_12) {
                        StringBuilder v4_5 = new StringBuilder();
                        v4_5.append("Unable to load image from URI: ");
                        v4_5.append(v0_7);
                        android.util.Log.w("IconCompat", v4_5.toString(), v1_12);
                    }
                }
                if (v0_7 == null) {
                } else {
                    return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeStream(v0_7));
                }
            case 5:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), androidx.core.graphics.drawable.IconCompat.createLegacyIconFromAdaptiveIcon(((android.graphics.Bitmap) this.mObj1), 0));
            default:
        }
        return 0;
    }

Method androidx.core.graphics.TypefaceCompatApi21Impl.createFromFontInfo() calling method java.io.FileInputStream.<init>()


    public android.graphics.Typeface createFromFontInfo(android.content.Context p5, android.os.CancellationSignal p6, androidx.core.provider.FontsContractCompat$FontInfo[] p7, int p8)
    {
        if (p7.length >= 1) {
            try {
                android.os.ParcelFileDescriptor v6_1 = p5.getContentResolver().openFileDescriptor(this.findBestInfo(p7, p8).getUri(), "r", p6);
            } catch (java.io.IOException) {
                return 0;
            }
            if (v6_1 != null) {
                try {
                    android.graphics.Typeface v7_1 = this.getFile(v6_1);
                } catch (Throwable v5_6) {
                    android.graphics.Typeface v7_5 = 0;
                    if (v6_1 != null) {
                        if (v7_5 == null) {
                            v6_1.close();
                        } else {
                            v6_1.close();
                        }
                    }
                    throw v5_6;
                } catch (Throwable v5_5) {
                    try {
                        throw v5_5;
                    } catch (android.graphics.Typeface v7_4) {
                        v7_5 = v5_5;
                        v5_6 = v7_4;
                    }
                }
                if (v7_1 != null) {
                    if (v7_1.canRead()) {
                        Throwable v5_1 = android.graphics.Typeface.createFromFile(v7_1);
                        if (v6_1 != null) {
                            v6_1.close();
                        }
                        return v5_1;
                    } else {
                    }
                }
                android.graphics.Typeface v7_3 = new java.io.FileInputStream(v6_1.getFileDescriptor());
                try {
                    Throwable v5_2 = super.createFromInputStream(p5, v7_3);
                } catch (Throwable v5_4) {
                    Throwable v8_4 = 0;
                    if (v8_4 == null) {
                        v7_3.close();
                    } else {
                        v7_3.close();
                    }
                    throw v5_4;
                } catch (Throwable v5_3) {
                    try {
                        throw v5_3;
                    } catch (Throwable v8_3) {
                        v8_4 = v5_3;
                        v5_4 = v8_3;
                    }
                }
                v7_3.close();
                if (v6_1 != null) {
                    v6_1.close();
                }
                return v5_2;
            } else {
                if (v6_1 != null) {
                    v6_1.close();
                }
                return 0;
            }
        } else {
            return 0;
        }
    }

Method androidx.core.util.AtomicFile.openRead() calling method java.io.FileInputStream.<init>()


    public java.io.FileInputStream openRead()
    {
        if (this.mBackupName.exists()) {
            this.mBaseName.delete();
            this.mBackupName.renameTo(this.mBaseName);
        }
        return new java.io.FileInputStream(this.mBaseName);
    }

Method androidx.core.graphics.TypefaceCompatUtil.mmap() calling method java.io.FileInputStream.<init>()


    private static java.nio.ByteBuffer mmap(java.io.File p9)
    {
        try {
            java.io.FileInputStream v1_1 = new java.io.FileInputStream(p9);
            try {
                Throwable v2_2 = v1_1.getChannel();
                Throwable v9_1 = v2_2.map(java.nio.channels.FileChannel$MapMode.READ_ONLY, 0, v2_2.size());
            } catch (Throwable v9_3) {
                Throwable v2_1 = 0;
                if (v2_1 == null) {
                    v1_1.close();
                } else {
                    v1_1.close();
                }
                throw v9_3;
            } catch (Throwable v9_2) {
                try {
                    throw v9_2;
                } catch (Throwable v2_0) {
                    v2_1 = v9_2;
                    v9_3 = v2_0;
                }
            }
            v1_1.close();
            return v9_1;
        } catch (java.io.IOException) {
            return 0;
        }
    }

Method androidx.core.graphics.TypefaceCompatUtil.mmap() calling method java.io.FileInputStream.<init>()


    public static java.nio.ByteBuffer mmap(android.content.Context p8, android.os.CancellationSignal p9, android.net.Uri p10)
    {
        try {
            android.os.ParcelFileDescriptor v8_2 = p8.getContentResolver().openFileDescriptor(p10, "r", p9);
        } catch (java.io.IOException) {
            return 0;
        }
        if (v8_2 != null) {
            try {
                Throwable v9_1 = new java.io.FileInputStream(v8_2.getFileDescriptor());
                try {
                    Throwable v1_0 = v9_1.getChannel();
                    Throwable v10_1 = v1_0.map(java.nio.channels.FileChannel$MapMode.READ_ONLY, 0, v1_0.size());
                } catch (Throwable v10_3) {
                    Throwable v1_2 = 0;
                    if (v1_2 == null) {
                        v9_1.close();
                    } else {
                        v9_1.close();
                    }
                    throw v10_3;
                } catch (Throwable v10_2) {
                    try {
                        throw v10_2;
                    } catch (Throwable v1_1) {
                        v1_2 = v10_2;
                        v10_3 = v1_1;
                    }
                }
                v9_1.close();
                if (v8_2 != null) {
                    v8_2.close();
                }
                return v10_1;
            } catch (Throwable v9_3) {
                Throwable v10_5 = 0;
                if (v8_2 != null) {
                    if (v10_5 == null) {
                        v8_2.close();
                    } else {
                        v8_2.close();
                    }
                }
                throw v9_3;
            } catch (Throwable v9_2) {
                try {
                    throw v9_2;
                } catch (Throwable v10_4) {
                    v10_5 = v9_2;
                    v9_3 = v10_4;
                }
            }
        } else {
            if (v8_2 != null) {
                v8_2.close();
            }
            return 0;
        }
    }

Method androidx.core.graphics.drawable.IconCompat.loadDrawableInner() calling method java.io.File.<init>()


    private android.graphics.drawable.Drawable loadDrawableInner(android.content.Context p7)
    {
        switch (this.mType) {
            case 1:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), ((android.graphics.Bitmap) this.mObj1));
            case 2:
                android.graphics.Bitmap v0_14 = this.getResPackage();
                if (android.text.TextUtils.isEmpty(v0_14)) {
                    v0_14 = p7.getPackageName();
                }
                try {
                    return androidx.core.content.res.ResourcesCompat.getDrawable(androidx.core.graphics.drawable.IconCompat.getResources(p7, v0_14), this.mInt1, p7.getTheme());
                } catch (android.content.res.Resources v7_7) {
                    StringBuilder v4_7 = new Object[2];
                    v4_7[0] = Integer.valueOf(this.mInt1);
                    v4_7[1] = this.mObj1;
                    android.util.Log.e("IconCompat", String.format("Unable to load resource 0x%08x from pkg=%s", v4_7), v7_7);
                }
            case 3:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeByteArray(((byte[]) this.mObj1), this.mInt1, this.mInt2));
            case 4:
                android.graphics.Bitmap v0_7;
                android.graphics.Bitmap v0_6 = android.net.Uri.parse(((String) this.mObj1));
                android.graphics.drawable.BitmapDrawable v1_6 = v0_6.getScheme();
                if ((!"content".equals(v1_6)) && (!"file".equals(v1_6))) {
                    try {
                        v0_7 = new java.io.FileInputStream(new java.io.File(((String) this.mObj1)));
                    } catch (android.graphics.drawable.BitmapDrawable v1_10) {
                        StringBuilder v4_3 = new StringBuilder();
                        v4_3.append("Unable to load image from path: ");
                        v4_3.append(v0_7);
                        android.util.Log.w("IconCompat", v4_3.toString(), v1_10);
                        v0_7 = 0;
                    }
                } else {
                    try {
                        v0_7 = p7.getContentResolver().openInputStream(v0_6);
                    } catch (android.graphics.drawable.BitmapDrawable v1_12) {
                        StringBuilder v4_5 = new StringBuilder();
                        v4_5.append("Unable to load image from URI: ");
                        v4_5.append(v0_7);
                        android.util.Log.w("IconCompat", v4_5.toString(), v1_12);
                    }
                }
                if (v0_7 == null) {
                } else {
                    return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeStream(v0_7));
                }
            case 5:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), androidx.core.graphics.drawable.IconCompat.createLegacyIconFromAdaptiveIcon(((android.graphics.Bitmap) this.mObj1), 0));
            default:
        }
        return 0;
    }

Method androidx.core.graphics.TypefaceCompatApi21Impl.getFile() calling method java.io.File.<init>()


    private java.io.File getFile(android.os.ParcelFileDescriptor p4)
    {
        try {
            java.io.File v1_4 = new StringBuilder();
            v1_4.append("/proc/self/fd/");
            v1_4.append(p4.getFd());
            String v4_1 = android.system.Os.readlink(v1_4.toString());
        } catch (android.system.ErrnoException) {
            return 0;
        }
        if (!android.system.OsConstants.S_ISREG(android.system.Os.stat(v4_1).st_mode)) {
            return 0;
        } else {
            return new java.io.File(v4_1);
        }
    }

Method androidx.core.content.FileProvider$SimplePathStrategy.getFileForUri() calling method java.io.File.<init>()


    public java.io.File getFileForUri(android.net.Uri p5)
    {
        String v0_0 = p5.getEncodedPath();
        String v2_4 = v0_0.indexOf(47, 1);
        String v3_1 = android.net.Uri.decode(v0_0.substring(1, v2_4));
        String vtmp6 = android.net.Uri.decode(v0_0.substring((v2_4 + 1)));
        StringBuilder v1_2 = ((java.io.File) this.mRoots.get(v3_1));
        if (v1_2 == null) {
            StringBuilder v1_5 = new StringBuilder();
            v1_5.append("Unable to find configured root for ");
            v1_5.append(p5);
            throw new IllegalArgumentException(v1_5.toString());
        } else {
            try {
                SecurityException v5_4 = new java.io.File(v1_2, vtmp6).getCanonicalFile();
            } catch (java.io.IOException) {
                StringBuilder v1_8 = new StringBuilder();
                v1_8.append("Failed to resolve canonical path for ");
                v1_8.append(v5_4);
                throw new IllegalArgumentException(v1_8.toString());
            }
            if (!v5_4.getPath().startsWith(v1_2.getPath())) {
                throw new SecurityException("Resolved path jumped beyond configured root");
            } else {
                return v5_4;
            }
        }
    }

Method io.flutter.view.ResourceUpdater.getInstalledPatch() calling method java.io.File.<init>()


    public java.io.File getInstalledPatch()
    {
        String v1_2 = new StringBuilder();
        v1_2.append(this.context.getFilesDir().toString());
        v1_2.append("/patch.zip");
        return new java.io.File(v1_2.toString());
    }

Method io.flutter.view.ResourceUpdater.getDownloadedPatch() calling method java.io.File.<init>()


    java.io.File getDownloadedPatch()
    {
        String v1_2 = new StringBuilder();
        v1_2.append(this.getInstalledPatch().getPath());
        v1_2.append(".install");
        return new java.io.File(v1_2.toString());
    }

Method io.flutter.view.ResourceUpdater$DownloadTask.doInBackground() calling method java.io.File.<init>()


    protected varargs Void doInBackground(String[] p12)
    {
        try {
            java.util.concurrent.locks.Lock v0_21 = new java.net.URL(io.flutter.view.ResourceUpdater.access$000(this.this$0));
            StringBuilder v2_16 = new StringBuilder();
            v2_16.append(this.this$0.getInstalledPatch().getPath());
            v2_16.append(".download");
            String v1_6 = new java.io.File(v2_16.toString());
            StringBuilder v2_14 = new java.util.Date().getTime();
            String v5_11 = new StringBuilder();
            v5_11.append("Checking for updates at ");
            v5_11.append(v0_21);
            android.util.Log.i("ResourceUpdater", v5_11.toString());
            java.io.InputStream v4_2 = ((java.net.HttpURLConnection) v0_21.openConnection());
            String v5_16 = Math.max(this.this$0.getDownloadedPatch().lastModified(), this.this$0.getInstalledPatch().lastModified());
        } catch (java.util.concurrent.locks.Lock v0_18) {
            StringBuilder v2_13 = new StringBuilder();
            v2_13.append("Could not download update ");
            v2_13.append(v0_18.getMessage());
            android.util.Log.w("ResourceUpdater", v2_13.toString());
            return 0;
        }
        if (v5_16 != 0) {
            String v8_1 = new StringBuilder();
            v8_1.append("Active update timestamp ");
            v8_1.append(v5_16);
            android.util.Log.i("ResourceUpdater", v8_1.toString());
            v4_2.setIfModifiedSince(v5_16);
        }
        String v5_17 = v4_2.getURL();
        double v7_11 = new StringBuilder();
        v7_11.append("Resolved update URL ");
        v7_11.append(v5_17);
        android.util.Log.i("ResourceUpdater", v7_11.toString());
        String v5_19 = v4_2.getResponseCode();
        double v7_13 = new StringBuilder();
        v7_13.append("HTTP response code ");
        v7_13.append(v5_19);
        android.util.Log.i("ResourceUpdater", v7_13.toString());
        if (v5_19 != 404) {
            if (v5_19 != 304) {
                java.io.InputStream v4_3 = v4_2.getInputStream();
                try {
                    int v6_7 = new StringBuilder();
                    v6_7.append("Downloading update ");
                    v6_7.append(v0_21);
                    android.util.Log.i("ResourceUpdater", v6_7.toString());
                    java.util.concurrent.locks.Lock v0_24 = new java.io.FileOutputStream(v1_6);
                    try {
                        String v5_1 = new byte[1024];
                    } catch (String v1_7) {
                        StringBuilder v2_9 = 0;
                        if (v2_9 == null) {
                            v0_24.close();
                        } else {
                            v0_24.close();
                        }
                        throw v1_7;
                    } catch (String v1_5) {
                        try {
                            throw v1_5;
                        } catch (StringBuilder v2_8) {
                            v2_9 = v1_5;
                            v1_7 = v2_8;
                        }
                    }
                    while(true) {
                        int v6_0 = v4_3.read(v5_1);
                        if (v6_0 == -1) {
                            break;
                        }
                        v0_24.write(v5_1, 0, v6_0);
                    }
                    String v5_5 = (new java.util.Date().getTime() - v2_14);
                    String v3_2 = new StringBuilder();
                    v3_2.append("Update downloaded in ");
                    String v5_7 = ((double) (v5_5 / 100));
                    Double.isNaN(v5_7);
                    v3_2.append((v5_7 / 10.0));
                    v3_2.append("s");
                    android.util.Log.i("ResourceUpdater", v3_2.toString());
                    v0_24.close();
                    if (v4_3 != null) {
                        v4_3.close();
                    }
                    io.flutter.view.ResourceUpdater.access$100(this.this$0).lock();
                    java.util.concurrent.locks.Lock v0_4 = this.this$0.getDownloadedPatch();
                    if ((!v0_4.exists()) || (v0_4.delete())) {
                        if (v1_6.renameTo(v0_4)) {
                            io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                            return 0;
                        } else {
                            StringBuilder v2_4 = new StringBuilder();
                            v2_4.append("Could not create file ");
                            v2_4.append(v0_4);
                            android.util.Log.w("ResourceUpdater", v2_4.toString());
                            io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                            return 0;
                        }
                    } else {
                        StringBuilder v2_6 = new StringBuilder();
                        v2_6.append("Could not delete file ");
                        v2_6.append(v0_4);
                        android.util.Log.w("ResourceUpdater", v2_6.toString());
                        io.flutter.view.ResourceUpdater.access$100(this.this$0).unlock();
                        return 0;
                    }
                } catch (java.util.concurrent.locks.Lock v0_15) {
                    String v1_10 = 0;
                    if (v4_3 != null) {
                        if (v1_10 == null) {
                            v4_3.close();
                        } else {
                            v4_3.close();
                        }
                    }
                    throw v0_15;
                } catch (java.util.concurrent.locks.Lock v0_14) {
                    try {
                        throw v0_14;
                    } catch (String v1_9) {
                        v1_10 = v0_14;
                        v0_15 = v1_9;
                    }
                }
            } else {
                android.util.Log.i("ResourceUpdater", "Already have latest update");
                return 0;
            }
        } else {
            android.util.Log.i("ResourceUpdater", "Latest update not found on server");
            return 0;
        }
    }

Method io.flutter.view.ResourceExtractor.extractUpdate() calling method java.io.File.<init>()


    private boolean extractUpdate(java.io.File p15)
    {
        String v0_4 = this.mContext.getResources().getAssets();
        int v1_2 = io.flutter.view.FlutterMain.getResourceUpdater();
        if (v1_2 != 0) {
            String v3_0 = v1_2.getInstalledPatch();
            if (v3_0.exists()) {
                if (v1_2.validateManifest(v1_2.readManifest(v3_0))) {
                    try {
                        java.util.zip.ZipFile v4_3 = new java.util.zip.ZipFile(v3_0);
                        String v3_2 = this.mResources.iterator();
                    } catch (String v15_3) {
                        StringBuilder v2_3 = new StringBuilder();
                        v2_3.append("Exception unpacking resources: ");
                        v2_3.append(v15_3.getMessage());
                        android.util.Log.w("ResourceExtractor", v2_3.toString());
                        this.deleteFiles();
                        return 0;
                    }
                    while (v3_2.hasNext()) {
                        java.util.zip.ZipEntry v10_0;
                        String v11_0;
                        java.io.FileOutputStream v5_15 = ((String) v3_2.next());
                        Throwable v7_0 = 0;
                        if (!v5_15.endsWith(".so")) {
                            v10_0 = 0;
                            v11_0 = 0;
                        } else {
                            Throwable v6_24 = io.flutter.view.ResourceExtractor.SUPPORTED_ABIS;
                            byte[] v8_10 = v6_24.length;
                            v10_0 = 0;
                            v11_0 = 0;
                            Throwable v9_6 = 0;
                            while (v9_6 < v8_10) {
                                java.util.zip.ZipEntry v10_1 = v6_24[v9_6];
                                String v11_2 = new StringBuilder();
                                v11_2.append("lib/");
                                v11_2.append(v10_1);
                                v11_2.append("/");
                                v11_2.append(v5_15);
                                v11_0 = v11_2.toString();
                                v10_0 = v4_3.getEntry(v11_0);
                                if (v10_0 != null) {
                                    break;
                                }
                                java.util.zip.ZipEntry v10_4 = new StringBuilder();
                                v10_4.append(v11_0);
                                v10_4.append(".bzdiff40");
                                v10_0 = v4_3.getEntry(v10_4.toString());
                                if (v10_0 != null) {
                                    break;
                                }
                                v9_6++;
                            }
                        }
                        if (v10_0 == null) {
                            Throwable v6_26 = new StringBuilder();
                            v6_26.append("assets/");
                            v6_26.append(v5_15);
                            v11_0 = v6_26.toString();
                            v10_0 = v4_3.getEntry(v11_0);
                            if (v10_0 == null) {
                                Throwable v6_28 = new StringBuilder();
                                v6_28.append(v11_0);
                                v6_28.append(".bzdiff40");
                                v10_0 = v4_3.getEntry(v6_28.toString());
                                if (v10_0 == null) {
                                }
                            }
                        }
                        Throwable v6_2 = new java.io.File(p15, v5_15);
                        if (!v6_2.exists()) {
                            if (v6_2.getParentFile() != null) {
                                v6_2.getParentFile().mkdirs();
                            }
                            try {
                                if (!v10_0.getName().endsWith(".bzdiff40")) {
                                    java.io.FileOutputStream v5_0 = v4_3.getInputStream(v10_0);
                                    try {
                                        byte[] v8_6 = new java.io.FileOutputStream(v6_2);
                                        try {
                                            io.flutter.view.ResourceExtractor.copy(v5_0, v8_6);
                                        } catch (Throwable v6_4) {
                                            Throwable v9_2 = 0;
                                            if (v9_2 == null) {
                                                v8_6.close();
                                            } else {
                                                v8_6.close();
                                            }
                                            throw v6_4;
                                        } catch (Throwable v6_3) {
                                            try {
                                                throw v6_3;
                                            } catch (Throwable v9_1) {
                                                v9_2 = v6_3;
                                                v6_4 = v9_1;
                                            }
                                        }
                                        v8_6.close();
                                        if (v5_0 != null) {
                                            v5_0.close();
                                        }
                                    } catch (Throwable v6_6) {
                                        if (v5_0 != null) {
                                            if (v7_0 == null) {
                                                v5_0.close();
                                            } else {
                                                v5_0.close();
                                            }
                                        }
                                        throw v6_6;
                                    } catch (Throwable v6_5) {
                                        v7_0 = v6_5;
                                        throw v7_0;
                                    }
                                } else {
                                    byte[] v8_8 = new java.io.ByteArrayOutputStream();
                                    Throwable v9_3 = v4_3.getInputStream(v10_0);
                                    try {
                                        io.flutter.view.ResourceExtractor.copy(v9_3, v8_8);
                                    } catch (java.io.FileOutputStream v5_1) {
                                        if (v9_3 != null) {
                                            if (v7_0 == null) {
                                                v9_3.close();
                                            } else {
                                                v9_3.close();
                                            }
                                        }
                                        throw v5_1;
                                    } catch (Throwable v7_0) {
                                        throw v7_0;
                                    }
                                    if (v9_3 != null) {
                                        v9_3.close();
                                    }
                                    Throwable v9_5 = new java.io.ByteArrayOutputStream();
                                    if (!v5_15.endsWith(".so")) {
                                        java.io.FileOutputStream v5_2 = v0_4.open(v5_15);
                                        try {
                                            io.flutter.view.ResourceExtractor.copy(v5_2, v9_5);
                                        } catch (Throwable v6_7) {
                                            if (v5_2 != null) {
                                                if (v7_0 == null) {
                                                    v5_2.close();
                                                } else {
                                                    v5_2.close();
                                                }
                                            }
                                            throw v6_7;
                                        } catch (Throwable v7_0) {
                                            throw v7_0;
                                        }
                                        if (v5_2 != null) {
                                            v5_2.close();
                                        }
                                    } else {
                                        java.io.FileOutputStream v5_6 = new java.util.zip.ZipFile(this.getAPKPath());
                                        java.util.zip.ZipEntry v12_3 = v5_6.getEntry(v11_0);
                                        if (v12_3 == null) {
                                            Throwable v6_12 = new StringBuilder();
                                            v6_12.append("Could not find APK resource ");
                                            v6_12.append(v11_0);
                                            throw new java.io.IOException(v6_12.toString());
                                        } else {
                                            java.io.FileOutputStream v5_9 = v5_6.getInputStream(v12_3);
                                            try {
                                                io.flutter.view.ResourceExtractor.copy(v5_9, v9_5);
                                            } catch (Throwable v6_14) {
                                                if (v5_9 != null) {
                                                    if (v7_0 == null) {
                                                        v5_9.close();
                                                    } else {
                                                        v5_9.close();
                                                    }
                                                }
                                                throw v6_14;
                                            } catch (Throwable v7_0) {
                                                throw v7_0;
                                            }
                                            if (v5_9 != null) {
                                                v5_9.close();
                                            }
                                        }
                                    }
                                    java.io.FileOutputStream v5_11 = new java.io.FileOutputStream(v6_2);
                                    try {
                                        v5_11.write(io.flutter.util.BSDiff.bspatch(v9_5.toByteArray(), v8_8.toByteArray()));
                                    } catch (Throwable v6_18) {
                                        if (v7_0 == null) {
                                            v5_11.close();
                                        } else {
                                            v5_11.close();
                                        }
                                        throw v6_18;
                                    } catch (Throwable v6_17) {
                                        v7_0 = v6_17;
                                        throw v7_0;
                                    }
                                    v5_11.close();
                                }
                                Throwable v6_20 = new StringBuilder();
                                v6_20.append("Extracted override resource ");
                                v6_20.append(v10_0.getName());
                                android.util.Log.i("ResourceExtractor", v6_20.toString());
                            } catch (java.io.FileNotFoundException) {
                            } catch (String v15_1) {
                                StringBuilder v2_1 = new StringBuilder();
                                v2_1.append("Exception unpacking resources: ");
                                v2_1.append(v15_1.getMessage());
                                android.util.Log.w("ResourceExtractor", v2_1.toString());
                                this.deleteFiles();
                                return 0;
                            }
                        }
                    }
                    return 1;
                } else {
                    return 1;
                }
            } else {
                return 1;
            }
        } else {
            return 1;
        }
    }

Method io.flutter.view.ResourceExtractor.extractAPK() calling method java.io.File.<init>()


    private boolean extractAPK(java.io.File p9)
    {
        String v0_2 = this.mContext.getResources().getAssets();
        StringBuilder v1_1 = this.mResources.iterator();
        while (v1_1.hasNext()) {
            String v2_1 = ((String) v1_1.next());
            try {
                Throwable v3_1 = new StringBuilder();
                v3_1.append("assets/");
                v3_1.append(v2_1);
                Throwable v3_2 = v3_1.toString();
                String v4_2 = new java.io.File(p9, v2_1);
            } catch (java.io.FileNotFoundException) {
            } catch (int v9_2) {
                StringBuilder v1_3 = new StringBuilder();
                v1_3.append("Exception unpacking resources: ");
                v1_3.append(v9_2.getMessage());
                android.util.Log.w("ResourceExtractor", v1_3.toString());
                this.deleteFiles();
                return 0;
            }
            if (!v4_2.exists()) {
                if (v4_2.getParentFile() != null) {
                    v4_2.getParentFile().mkdirs();
                }
                String v2_2 = v0_2.open(v2_1);
                String v5_3 = 0;
                try {
                    java.io.FileOutputStream v6_1 = new java.io.FileOutputStream(v4_2);
                    try {
                        io.flutter.view.ResourceExtractor.copy(v2_2, v6_1);
                    } catch (Throwable v3_4) {
                        String v4_4 = 0;
                        if (v4_4 == null) {
                            v6_1.close();
                        } else {
                            v6_1.close();
                        }
                        throw v3_4;
                    } catch (Throwable v3_3) {
                        try {
                            throw v3_3;
                        } catch (String v4_3) {
                            v4_4 = v3_3;
                            v3_4 = v4_3;
                        }
                    }
                    v6_1.close();
                    if (v2_2 != null) {
                        v2_2.close();
                    }
                    String v4_6 = new StringBuilder();
                    v4_6.append("Extracted baseline resource ");
                    v4_6.append(v3_2);
                    android.util.Log.i("ResourceExtractor", v4_6.toString());
                } catch (Throwable v3_6) {
                    if (v2_2 != null) {
                        if (v5_3 == null) {
                            v2_2.close();
                        } else {
                            v2_2.close();
                        }
                    }
                    throw v3_6;
                } catch (Throwable v3_5) {
                    v5_3 = v3_5;
                    throw v5_3;
                }
            } else {
            }
        }
        return 1;
    }

Method io.flutter.view.ResourceExtractor.deleteFiles() calling method java.io.File.<init>()


    private void deleteFiles()
    {
        java.io.File v0_1 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(this.mContext));
        String[] v1_4 = this.mResources.iterator();
        while (v1_4.hasNext()) {
            int v3_2 = new java.io.File(v0_1, ((String) v1_4.next()));
            if (v3_2.exists()) {
                v3_2.delete();
            }
        }
        String[] v1_1 = this.getExistingTimestamps(v0_1);
        if (v1_1 != null) {
            int v2_0 = v1_1.length;
            int v3_0 = 0;
            while (v3_0 < v2_0) {
                new java.io.File(v0_1, v1_1[v3_0]).delete();
                v3_0++;
            }
            return;
        } else {
            return;
        }
    }

Method io.flutter.view.ResourceExtractor$ExtractTask.doInBackground() calling method java.io.File.<init>()


    protected varargs Void doInBackground(Void[] p6)
    {
        java.util.concurrent.locks.Lock v6_4 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(io.flutter.view.ResourceExtractor.access$000(this.this$0)));
        java.util.concurrent.locks.Lock v0_4 = io.flutter.view.FlutterMain.getResourceUpdater();
        if (v0_4 != null) {
            v0_4.getInstallationLock().lock();
        }
        try {
            if (v0_4 != null) {
                String v2_1 = v0_4.getDownloadedPatch();
                java.io.File v3_0 = v0_4.getInstalledPatch();
                if ((v2_1.exists()) && (v0_4.validateManifest(v0_4.readManifest(v2_1)))) {
                    if ((!v3_0.exists()) || (v3_0.delete())) {
                        if (!v2_1.renameTo(v3_0)) {
                            String v2_7 = new StringBuilder();
                            v2_7.append("Could not create file ");
                            v2_7.append(v3_0);
                            android.util.Log.w("ResourceExtractor", v2_7.toString());
                            if (v0_4 != null) {
                                v0_4.getInstallationLock().unlock();
                            }
                            return 0;
                        }
                    } else {
                        String v2_10 = new StringBuilder();
                        v2_10.append("Could not delete file ");
                        v2_10.append(v3_0);
                        android.util.Log.w("ResourceExtractor", v2_10.toString());
                        if (v0_4 != null) {
                            v0_4.getInstallationLock().unlock();
                        }
                        return 0;
                    }
                }
            }
        } catch (java.util.concurrent.locks.Lock v6_3) {
            if (v0_4 != null) {
                v0_4.getInstallationLock().unlock();
            }
            throw v6_3;
        }
        String v2_4 = io.flutter.view.ResourceExtractor.access$100(this.this$0, v6_4);
        if (v2_4 != null) {
            io.flutter.view.ResourceExtractor.access$200(this.this$0);
            if (io.flutter.view.ResourceExtractor.access$300(this.this$0, v6_4)) {
                if (io.flutter.view.ResourceExtractor.access$400(this.this$0, v6_4)) {
                    if (v2_4 != null) {
                        new java.io.File(v6_4, v2_4).createNewFile();
                    }
                    if (v0_4 != null) {
                        v0_4.getInstallationLock().unlock();
                    }
                    return 0;
                } else {
                    if (v0_4 != null) {
                        v0_4.getInstallationLock().unlock();
                    }
                    return 0;
                }
            } else {
                if (v0_4 != null) {
                    v0_4.getInstallationLock().unlock();
                }
                return 0;
            }
        } else {
            if (v0_4 != null) {
                v0_4.getInstallationLock().unlock();
            }
            return 0;
        }
    }

Method io.flutter.view.FlutterMain.startInitialization() calling method java.io.File.<init>()


    public static void startInitialization(android.content.Context p3, io.flutter.view.FlutterMain$Settings p4)
    {
        if (android.os.Looper.myLooper() != android.os.Looper.getMainLooper()) {
            throw new IllegalStateException("startInitialization must be called on the main thread");
        } else {
            if (io.flutter.view.FlutterMain.sSettings == null) {
                io.flutter.view.FlutterMain.sSettings = p4;
                long v0_1 = android.os.SystemClock.uptimeMillis();
                io.flutter.view.FlutterMain.initConfig(p3);
                io.flutter.view.FlutterMain.initAot(p3);
                io.flutter.view.FlutterMain.initResources(p3);
                if (io.flutter.view.FlutterMain.sResourceUpdater != null) {
                    io.flutter.view.FlutterMain.sResourceExtractor.waitForCompletion();
                    java.io.File v4_4 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(p3), "libflutter.so");
                    if (!v4_4.exists()) {
                        System.loadLibrary("flutter");
                    } else {
                        System.load(v4_4.getAbsolutePath());
                    }
                } else {
                    System.loadLibrary("flutter");
                }
                io.flutter.view.FlutterMain.nativeRecordStartTimestamp((android.os.SystemClock.uptimeMillis() - v0_1));
                return;
            } else {
                return;
            }
        }
    }

Method io.flutter.view.FlutterMain.findAppBundlePath() calling method java.io.File.<init>()


    public static String findAppBundlePath(android.content.Context p2)
    {
        int v2_2;
        java.io.File v0_1 = new java.io.File(io.flutter.util.PathUtils.getDataDirectory(p2), io.flutter.view.FlutterMain.sFlutterAssetsDir);
        if (!v0_1.exists()) {
            v2_2 = 0;
        } else {
            v2_2 = v0_1.getPath();
        }
        return v2_2;
    }

Method io.flutter.view.FlutterMain.ensureInitializationComplete() calling method java.io.File.<init>()


    public static void ensureInitializationComplete(android.content.Context p4, String[] p5)
    {
        if (android.os.Looper.myLooper() != android.os.Looper.getMainLooper()) {
            throw new IllegalStateException("ensureInitializationComplete must be called on the main thread");
        } else {
            if (io.flutter.view.FlutterMain.sSettings == null) {
                throw new IllegalStateException("ensureInitializationComplete must be called after startInitialization");
            } else {
                if (!io.flutter.view.FlutterMain.sInitialized) {
                    try {
                        io.flutter.view.FlutterMain.sResourceExtractor.waitForCompletion();
                        String[] v0_7 = new java.util.ArrayList();
                        v0_7.add("--icu-symbol-prefix=_binary_icudtl_dat");
                        String v1_13 = p4.getPackageManager().getApplicationInfo(p4.getPackageName(), 128);
                        String v2_4 = new StringBuilder();
                        v2_4.append("--icu-native-lib-path=");
                        v2_4.append(v1_13.nativeLibraryDir);
                        v2_4.append(java.io.File.separator);
                        v2_4.append("libflutter.so");
                        v0_7.add(v2_4.toString());
                    } catch (int v4_3) {
                        android.util.Log.e("FlutterMain", "Flutter initialization failed.", v4_3);
                        throw new RuntimeException(v4_3);
                    }
                    if (p5 != null) {
                        java.util.Collections.addAll(v0_7, p5);
                    }
                    if (!io.flutter.view.FlutterMain.sIsPrecompiledAsSharedLibrary) {
                        if (!io.flutter.view.FlutterMain.sIsPrecompiledAsBlobs) {
                            String v5_23 = new StringBuilder();
                            v5_23.append("--cache-dir-path=");
                            v5_23.append(io.flutter.util.PathUtils.getCacheDirectory(p4));
                            v0_7.add(v5_23.toString());
                            String v5_27 = new StringBuilder();
                            v5_27.append("--aot-snapshot-path=");
                            v5_27.append(io.flutter.util.PathUtils.getDataDirectory(p4));
                            v5_27.append("/");
                            v5_27.append(io.flutter.view.FlutterMain.sFlutterAssetsDir);
                            v0_7.add(v5_27.toString());
                        } else {
                            String v5_30 = new StringBuilder();
                            v5_30.append("--aot-snapshot-path=");
                            v5_30.append(io.flutter.util.PathUtils.getDataDirectory(p4));
                            v0_7.add(v5_30.toString());
                        }
                        String v5_33 = new StringBuilder();
                        v5_33.append("--vm-snapshot-data=");
                        v5_33.append(io.flutter.view.FlutterMain.sAotVmSnapshotData);
                        v0_7.add(v5_33.toString());
                        String v5_36 = new StringBuilder();
                        v5_36.append("--vm-snapshot-instr=");
                        v5_36.append(io.flutter.view.FlutterMain.sAotVmSnapshotInstr);
                        v0_7.add(v5_36.toString());
                        String v5_2 = new StringBuilder();
                        v5_2.append("--isolate-snapshot-data=");
                        v5_2.append(io.flutter.view.FlutterMain.sAotIsolateSnapshotData);
                        v0_7.add(v5_2.toString());
                        String v5_5 = new StringBuilder();
                        v5_5.append("--isolate-snapshot-instr=");
                        v5_5.append(io.flutter.view.FlutterMain.sAotIsolateSnapshotInstr);
                        v0_7.add(v5_5.toString());
                    } else {
                        String v5_9 = new StringBuilder();
                        v5_9.append("--aot-shared-library-path=");
                        v5_9.append(new java.io.File(io.flutter.util.PathUtils.getDataDirectory(p4), io.flutter.view.FlutterMain.sAotSharedLibraryPath));
                        v0_7.add(v5_9.toString());
                    }
                    if (io.flutter.view.FlutterMain.sSettings.getLogTag() != null) {
                        String v5_14 = new StringBuilder();
                        v5_14.append("--log-tag=");
                        v5_14.append(io.flutter.view.FlutterMain.sSettings.getLogTag());
                        v0_7.add(v5_14.toString());
                    }
                    String[] v3_2 = new String[0];
                    io.flutter.view.FlutterMain.nativeInit(p4, ((String[]) v0_7.toArray(v3_2)), io.flutter.view.FlutterMain.findAppBundlePath(p4), io.flutter.util.PathUtils.getFilesDir(p4), io.flutter.util.PathUtils.getCacheDirectory(p4));
                    io.flutter.view.FlutterMain.sInitialized = 1;
                    return;
                } else {
                    return;
                }
            }
        }
    }

Method androidx.core.util.AtomicFile.<init>() calling method java.io.File.<init>()


    public AtomicFile(java.io.File p3)
    {
        this.mBaseName = p3;
        StringBuilder v1_1 = new StringBuilder();
        v1_1.append(p3.getPath());
        v1_1.append(".bak");
        this.mBackupName = new java.io.File(v1_1.toString());
        return;
    }

Method androidx.core.graphics.TypefaceCompatUtil.getTempFile() calling method java.io.File.<init>()


    public static java.io.File getTempFile(android.content.Context p5)
    {
        String v0_1 = new StringBuilder();
        v0_1.append(".font");
        v0_1.append(android.os.Process.myPid());
        v0_1.append("-");
        v0_1.append(android.os.Process.myTid());
        v0_1.append("-");
        String v0_2 = v0_1.toString();
        int v1_2 = 0;
        while (v1_2 < 100) {
            boolean v3_0 = p5.getCacheDir();
            String v4_1 = new StringBuilder();
            v4_1.append(v0_2);
            v4_1.append(v1_2);
            java.io.File v2_2 = new java.io.File(v3_0, v4_1.toString());
            try {
                if (!v2_2.createNewFile()) {
                    v1_2++;
                } else {
                    return v2_2;
                }
            } catch (java.io.IOException) {
            }
        }
        return 0;
    }

Method androidx.core.content.FileProvider.buildPath() calling method java.io.File.<init>()


    private static varargs java.io.File buildPath(java.io.File p4, String[] p5)
    {
        int v1 = 0;
        while (v1 < p5.length) {
            String v2 = p5[v1];
            if (v2 != null) {
                p4 = new java.io.File(p4, v2);
            }
            v1++;
        }
        return p4;
    }

Method androidx.core.content.FileProvider.<clinit>() calling method java.io.File.<init>()


    static FileProvider()
    {
        java.util.HashMap v0_1 = new String[2];
        v0_1[0] = "_display_name";
        v0_1[1] = "_size";
        androidx.core.content.FileProvider.COLUMNS = v0_1;
        androidx.core.content.FileProvider.DEVICE_ROOT = new java.io.File("/");
        androidx.core.content.FileProvider.sCache = new java.util.HashMap();
        return;
    }

Method androidx.core.content.ContextCompat.getNoBackupFilesDir() calling method java.io.File.<init>()


    public static java.io.File getNoBackupFilesDir(android.content.Context p2)
    {
        if (android.os.Build$VERSION.SDK_INT < 21) {
            return androidx.core.content.ContextCompat.createFilesDir(new java.io.File(p2.getApplicationInfo().dataDir, "no_backup"));
        } else {
            return p2.getNoBackupFilesDir();
        }
    }

Method androidx.core.content.ContextCompat.getDataDir() calling method java.io.File.<init>()


    public static java.io.File getDataDir(android.content.Context p2)
    {
        if (android.os.Build$VERSION.SDK_INT < 24) {
            int v0_1;
            String v2_3 = p2.getApplicationInfo().dataDir;
            if (v2_3 == null) {
                v0_1 = 0;
            } else {
                v0_1 = new java.io.File(v2_3);
            }
            return v0_1;
        } else {
            return p2.getDataDir();
        }
    }

Method androidx.core.content.ContextCompat.getCodeCacheDir() calling method java.io.File.<init>()


    public static java.io.File getCodeCacheDir(android.content.Context p2)
    {
        if (android.os.Build$VERSION.SDK_INT < 21) {
            return androidx.core.content.ContextCompat.createFilesDir(new java.io.File(p2.getApplicationInfo().dataDir, "code_cache"));
        } else {
            return p2.getCodeCacheDir();
        }
    }