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 android.support.v4.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 android.support.v4.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 android.support.v4.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 {
            Throwable v8_3 = p8.getContentResolver().openFileDescriptor(p10, "r", p9);
        } catch (java.io.IOException) {
            return 0;
        }
        if (v8_3 != null) {
            try {
                Throwable v9_1 = new java.io.FileInputStream(v8_3.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 {
                        try {
                            v9_1.close();
                        } catch (Throwable v9_2) {
                            v1_2.addSuppressed(v9_2);
                        }
                    }
                    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_3 != null) {
                    v8_3.close();
                }
                return v10_1;
            } catch (Throwable v9_4) {
                Throwable v10_5 = 0;
                if (v8_3 != null) {
                    if (v10_5 == null) {
                        v8_3.close();
                    } else {
                        try {
                            v8_3.close();
                        } catch (Throwable v8_2) {
                            v10_5.addSuppressed(v8_2);
                        }
                    }
                }
                throw v9_4;
            } catch (Throwable v9_3) {
                try {
                    throw v9_3;
                } catch (Throwable v10_4) {
                    v10_5 = v9_3;
                    v9_4 = v10_4;
                }
            }
        } else {
            if (v8_3 != null) {
                v8_3.close();
            }
            return 0;
        }
    }

Method android.support.v7.widget.ActivityChooserModel$PersistHistoryAsyncTask.doInBackground() calling method android.content.Context.openFileOutput()

Couldn't retrieve source code

Method android.support.v4.content.ContextCompat.buildPath() calling method java.io.File.<init>()


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

Method android.support.v4.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 android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p2.getApplicationInfo().dataDir, "code_cache"));
        } else {
            return p2.getCodeCacheDir();
        }
    }

Method android.support.v4.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 android.support.v4.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 android.support.v4.content.ContextCompat.createFilesDir(new java.io.File(p2.getApplicationInfo().dataDir, "no_backup"));
        } else {
            return p2.getNoBackupFilesDir();
        }
    }

Method android.support.v4.content.FileProvider.<clinit>() calling method java.io.File.<init>()


    static FileProvider()
    {
        android.support.v4.content.FileProvider.COLUMNS = new String[] {"_display_name", "_size"});
        android.support.v4.content.FileProvider.DEVICE_ROOT = new java.io.File("/");
        android.support.v4.content.FileProvider.sCache = new java.util.HashMap();
        return;
    }

Method android.support.v4.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 android.support.v4.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 {
                String v0_5 = new java.io.File(v1_2, vtmp6).getCanonicalFile();
                SecurityException v5_5 = v0_5.getPath().startsWith(v1_2.getPath());
            } catch (java.io.IOException) {
                StringBuilder v1_8 = new StringBuilder();
                v1_8.append("Failed to resolve canonical path for ");
                v1_8.append(v5_5);
                throw new IllegalArgumentException(v1_8.toString());
            }
            if (v5_5 == null) {
                throw new SecurityException("Resolved path jumped beyond configured root");
            } else {
                return v0_5;
            }
        }
    }

Method android.support.v4.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 android.support.v4.provider.RawDocumentFile.createDirectory() calling method java.io.File.<init>()


    public android.support.v4.provider.DocumentFile createDirectory(String p3)
    {
        java.io.File v0_1 = new java.io.File(this.mFile, p3);
        if ((!v0_1.isDirectory()) && (!v0_1.mkdir())) {
            return 0;
        } else {
            return new android.support.v4.provider.RawDocumentFile(this, v0_1);
        }
    }

Method android.support.v4.provider.RawDocumentFile.createFile() calling method java.io.File.<init>()


    public android.support.v4.provider.DocumentFile createFile(String p3, String p4)
    {
        int v3_5 = android.webkit.MimeTypeMap.getSingleton().getExtensionFromMimeType(p3);
        if (v3_5 != 0) {
            StringBuilder v0_5 = new StringBuilder();
            v0_5.append(p4);
            v0_5.append(".");
            v0_5.append(v3_5);
            p4 = v0_5.toString();
        }
        int v3_2 = new java.io.File(this.mFile, p4);
        try {
            v3_2.createNewFile();
            return new android.support.v4.provider.RawDocumentFile(this, v3_2);
        } catch (int v3_3) {
            StringBuilder v0_3 = new StringBuilder();
            v0_3.append("Failed to createFile: ");
            v0_3.append(v3_3);
            android.util.Log.w("DocumentFile", v0_3.toString());
            return 0;
        }
    }

Method android.support.v4.provider.RawDocumentFile.renameTo() calling method java.io.File.<init>()


    public boolean renameTo(String p3)
    {
        java.io.File v0_1 = new java.io.File(this.mFile.getParentFile(), p3);
        if (!this.mFile.renameTo(v0_1)) {
            return 0;
        } else {
            this.mFile = v0_1;
            return 1;
        }
    }

Method android.support.v4.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.drawable.BitmapDrawable v0_14 = this.getResPackage();
                if (android.text.TextUtils.isEmpty(v0_14)) {
                    v0_14 = p7.getPackageName();
                }
                try {
                    return android.support.v4.content.res.ResourcesCompat.getDrawable(android.support.v4.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 v1_9;
                android.graphics.drawable.BitmapDrawable v0_6 = android.net.Uri.parse(((String) this.mObj1));
                android.graphics.Bitmap v1_6 = v0_6.getScheme();
                if ((!"content".equals(v1_6)) && (!"file".equals(v1_6))) {
                    try {
                        v1_9 = new java.io.FileInputStream(new java.io.File(((String) this.mObj1)));
                    } catch (android.graphics.Bitmap v1_10) {
                        StringBuilder v4_3 = new StringBuilder();
                        v4_3.append("Unable to load image from path: ");
                        v4_3.append(v0_6);
                        android.util.Log.w("IconCompat", v4_3.toString(), v1_10);
                        v1_9 = 0;
                    }
                } else {
                    try {
                        v1_9 = p7.getContentResolver().openInputStream(v0_6);
                    } catch (android.graphics.Bitmap v1_12) {
                        StringBuilder v4_5 = new StringBuilder();
                        v4_5.append("Unable to load image from URI: ");
                        v4_5.append(v0_6);
                        android.util.Log.w("IconCompat", v4_5.toString(), v1_12);
                    }
                }
                if (v1_9 == null) {
                } else {
                    return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeStream(v1_9));
                }
            case 5:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.support.v4.graphics.drawable.IconCompat.createLegacyIconFromAdaptiveIcon(((android.graphics.Bitmap) this.mObj1), 0));
            default:
        }
        return 0;
    }

Method android.support.v4.graphics.TypefaceCompatUtil.mmap() calling method java.io.FileInputStream.<init>()


    private static java.nio.ByteBuffer mmap(java.io.File p9)
    {
        try {
            Throwable 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 {
                    try {
                        v1_1.close();
                    } catch (Throwable v1_2) {
                        v2_1.addSuppressed(v1_2);
                    }
                }
                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 android.support.v4.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 android.support.v4.graphics.TypefaceCompatApi21Impl.createFromFontInfo() calling method java.io.FileInputStream.<init>()


    public android.graphics.Typeface createFromFontInfo(android.content.Context p5, android.os.CancellationSignal p6, android.support.v4.provider.FontsContractCompat$FontInfo[] p7, int p8)
    {
        if (p7.length >= 1) {
            try {
                Throwable v6_1 = p5.getContentResolver().openFileDescriptor(this.findBestInfo(p7, p8).getUri(), "r", p6);
                try {
                    Throwable v7_1 = this.getFile(v6_1);
                } catch (Throwable v5_6) {
                    Throwable v7_7 = 0;
                    if (v6_1 != null) {
                        if (v7_7 == null) {
                            v6_1.close();
                        } else {
                            try {
                                v6_1.close();
                            } catch (Throwable v6_2) {
                                v7_7.addSuppressed(v6_2);
                            }
                        }
                    }
                    throw v5_6;
                } catch (Throwable v5_5) {
                    try {
                        throw v5_5;
                    } catch (Throwable v7_5) {
                        v7_7 = v5_5;
                        v5_6 = v7_5;
                    }
                }
                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 {
                    }
                }
                Throwable 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 {
                        try {
                            v7_3.close();
                        } catch (Throwable v7_4) {
                            v8_4.addSuppressed(v7_4);
                        }
                    }
                    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;
            } catch (java.io.IOException) {
                return 0;
            }
        } else {
            return 0;
        }
    }

Method android.support.v4.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.drawable.BitmapDrawable v0_14 = this.getResPackage();
                if (android.text.TextUtils.isEmpty(v0_14)) {
                    v0_14 = p7.getPackageName();
                }
                try {
                    return android.support.v4.content.res.ResourcesCompat.getDrawable(android.support.v4.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 v1_9;
                android.graphics.drawable.BitmapDrawable v0_6 = android.net.Uri.parse(((String) this.mObj1));
                android.graphics.Bitmap v1_6 = v0_6.getScheme();
                if ((!"content".equals(v1_6)) && (!"file".equals(v1_6))) {
                    try {
                        v1_9 = new java.io.FileInputStream(new java.io.File(((String) this.mObj1)));
                    } catch (android.graphics.Bitmap v1_10) {
                        StringBuilder v4_3 = new StringBuilder();
                        v4_3.append("Unable to load image from path: ");
                        v4_3.append(v0_6);
                        android.util.Log.w("IconCompat", v4_3.toString(), v1_10);
                        v1_9 = 0;
                    }
                } else {
                    try {
                        v1_9 = p7.getContentResolver().openInputStream(v0_6);
                    } catch (android.graphics.Bitmap v1_12) {
                        StringBuilder v4_5 = new StringBuilder();
                        v4_5.append("Unable to load image from URI: ");
                        v4_5.append(v0_6);
                        android.util.Log.w("IconCompat", v4_5.toString(), v1_12);
                    }
                }
                if (v1_9 == null) {
                } else {
                    return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.graphics.BitmapFactory.decodeStream(v1_9));
                }
            case 5:
                return new android.graphics.drawable.BitmapDrawable(p7.getResources(), android.support.v4.graphics.drawable.IconCompat.createLegacyIconFromAdaptiveIcon(((android.graphics.Bitmap) this.mObj1), 0));
            default:
        }
        return 0;
    }

Method android.support.v4.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;
                android.support.v4.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());
                android.support.v4.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);
            }
            android.support.v4.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());
            android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v2_1);
            android.os.StrictMode.setThreadPolicy(v0);
            return 0;
        }
    }

Method android.support.v4.print.PrintHelper$1.doInBackground() calling method java.io.FileOutputStream.<init>()


    protected varargs Throwable doInBackground(Void[] p8)
    {
        try {
            if (!this.val$cancellationSignal.isCanceled()) {
                android.graphics.Bitmap v8_10 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$pdfAttributes);
                android.graphics.Bitmap v1_1 = android.support.v4.print.PrintHelper.convertBitmapForColorMode(this.val$bitmap, this.val$pdfAttributes.getColorMode());
                if (!this.val$cancellationSignal.isCanceled()) {
                    try {
                        java.io.FileOutputStream v2_6;
                        java.io.FileDescriptor v3_0 = v8_10.startPage(1);
                    } catch (Throwable v0_1) {
                        v8_10.close();
                        if (this.val$fileDescriptor != null) {
                            this.val$fileDescriptor.close();
                        }
                        if (v1_1 != this.val$bitmap) {
                            v1_1.recycle();
                        }
                        throw v0_1;
                    }
                    if (!android.support.v4.print.PrintHelper.IS_MIN_MARGINS_HANDLING_CORRECT) {
                        android.graphics.Matrix v4_2 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$attributes);
                        java.io.FileOutputStream v2_5 = v4_2.startPage(1);
                        android.graphics.Canvas v5_3 = new android.graphics.RectF(v2_5.getInfo().getContentRect());
                        v4_2.finishPage(v2_5);
                        v4_2.close();
                        v2_6 = v5_3;
                    } else {
                        v2_6 = new android.graphics.RectF(v3_0.getInfo().getContentRect());
                    }
                    android.graphics.Matrix v4_6 = android.support.v4.print.PrintHelper.getMatrix(v1_1.getWidth(), v1_1.getHeight(), v2_6, this.val$fittingMode);
                    if (!android.support.v4.print.PrintHelper.IS_MIN_MARGINS_HANDLING_CORRECT) {
                        v4_6.postTranslate(v2_6.left, v2_6.top);
                        v3_0.getCanvas().clipRect(v2_6);
                    } else {
                    }
                    v3_0.getCanvas().drawBitmap(v1_1, v4_6, 0);
                    v8_10.finishPage(v3_0);
                    if (!this.val$cancellationSignal.isCanceled()) {
                        v8_10.writeTo(new java.io.FileOutputStream(this.val$fileDescriptor.getFileDescriptor()));
                        v8_10.close();
                        if (this.val$fileDescriptor != null) {
                            this.val$fileDescriptor.close();
                        }
                        if (v1_1 != this.val$bitmap) {
                            v1_1.recycle();
                        }
                        return 0;
                    } else {
                        v8_10.close();
                        if (this.val$fileDescriptor != null) {
                            this.val$fileDescriptor.close();
                        }
                        if (v1_1 != this.val$bitmap) {
                            v1_1.recycle();
                        }
                        return 0;
                    }
                } else {
                    return 0;
                }
            } else {
                return 0;
            }
        } catch (android.graphics.Bitmap v8_2) {
            return v8_2;
        }
    }

Method android.support.v4.util.AtomicFile.startWrite() calling method java.io.FileOutputStream.<init>()


    public java.io.FileOutputStream startWrite()
    {
        if (this.mBaseName.exists()) {
            if (this.mBackupName.exists()) {
                this.mBaseName.delete();
            } else {
                if (!this.mBaseName.renameTo(this.mBackupName)) {
                    String v1_2 = new StringBuilder();
                    v1_2.append("Couldn\'t rename file ");
                    v1_2.append(this.mBaseName);
                    v1_2.append(" to backup file ");
                    v1_2.append(this.mBackupName);
                    android.util.Log.w("AtomicFile", v1_2.toString());
                }
            }
        }
        try {
            java.io.IOException v0_6 = new java.io.FileOutputStream(this.mBaseName);
        } catch (java.io.FileNotFoundException) {
            if (!this.mBaseName.getParentFile().mkdirs()) {
                String v1_6 = new StringBuilder();
                v1_6.append("Couldn\'t create directory ");
                v1_6.append(this.mBaseName);
                throw new java.io.IOException(v1_6.toString());
            } else {
                try {
                    v0_6 = new java.io.FileOutputStream(this.mBaseName);
                } catch (java.io.FileNotFoundException) {
                    String v1_10 = new StringBuilder();
                    v1_10.append("Couldn\'t create ");
                    v1_10.append(this.mBaseName);
                    throw new java.io.IOException(v1_10.toString());
                }
            }
        }
        return v0_6;
    }