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 com.google.android.gms.common.data.BitmapTeleporter.zabz() calling method java.io.FileOutputStream.<init>()


    private final java.io.FileOutputStream zabz()
    {
        if (this.zali != null) {
            try {
                IllegalStateException v0_6 = java.io.File.createTempFile("teleporter", ".tmp", this.zali);
                try {
                    String v1_2 = new java.io.FileOutputStream(v0_6);
                    this.zalf = android.os.ParcelFileDescriptor.open(v0_6, 268435456);
                    v0_6.delete();
                    return v1_2;
                } catch (java.io.FileNotFoundException) {
                    throw new IllegalStateException("Temporary file is somehow already deleted");
                }
            } catch (IllegalStateException v0_7) {
                throw new IllegalStateException("Could not create temporary file", v0_7);
            }
            v1_2 = new java.io.FileOutputStream(v0_6);
            this.zalf = android.os.ParcelFileDescriptor.open(v0_6, 268435456);
            v0_6.delete();
            return v1_2;
        } else {
            throw new IllegalStateException("setTempDir() must be called before writing this object to a parcel");
        }
    }

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()) {
                try {
                    v0_6 = new java.io.FileOutputStream(this.mBaseName);
                } catch (java.io.FileNotFoundException) {
                    String v1_7 = new StringBuilder();
                    v1_7.append("Couldn\'t create ");
                    v1_7.append(this.mBaseName);
                    throw new java.io.IOException(v1_7.toString());
                }
            } else {
                String v1_10 = new StringBuilder();
                v1_10.append("Couldn\'t create directory ");
                v1_10.append(this.mBaseName);
                throw new java.io.IOException(v1_10.toString());
            }
        }
        return v0_6;
    }

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


    protected varargs Throwable doInBackground(Void[] p9)
    {
        try {
            if (!this.val$cancellationSignal.isCanceled()) {
                android.graphics.Bitmap v9_10 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$pdfAttributes);
                android.graphics.Bitmap v1_1 = android.support.v4.print.PrintHelper$PrintHelperApi19.access$100(this.this$0, this.val$bitmap, this.val$pdfAttributes.getColorMode());
                if (!this.val$cancellationSignal.isCanceled()) {
                    try {
                        java.io.FileOutputStream v2_5;
                        java.io.FileDescriptor v3_2 = v9_10.startPage(1);
                    } catch (Throwable v0_1) {
                        v9_10.close();
                        if (this.val$fileDescriptor != null) {
                            this.val$fileDescriptor.close();
                        }
                        if (v1_1 != this.val$bitmap) {
                            v1_1.recycle();
                        }
                        throw v0_1;
                    }
                    if (!this.this$0.mIsMinMarginsHandlingCorrect) {
                        android.graphics.Matrix v4_3 = new android.print.pdf.PrintedPdfDocument(this.this$0.mContext, this.val$attributes);
                        java.io.FileOutputStream v2_4 = v4_3.startPage(1);
                        android.graphics.Canvas v5_3 = new android.graphics.RectF(v2_4.getInfo().getContentRect());
                        v4_3.finishPage(v2_4);
                        v4_3.close();
                        v2_5 = v5_3;
                    } else {
                        v2_5 = new android.graphics.RectF(v3_2.getInfo().getContentRect());
                    }
                    android.graphics.Matrix v4_7 = android.support.v4.print.PrintHelper$PrintHelperApi19.access$200(this.this$0, v1_1.getWidth(), v1_1.getHeight(), v2_5, this.val$fittingMode);
                    if (!this.this$0.mIsMinMarginsHandlingCorrect) {
                        v4_7.postTranslate(v2_5.left, v2_5.top);
                        v3_2.getCanvas().clipRect(v2_5);
                    } else {
                    }
                    v3_2.getCanvas().drawBitmap(v1_1, v4_7, 0);
                    v9_10.finishPage(v3_2);
                    if (!this.val$cancellationSignal.isCanceled()) {
                        v9_10.writeTo(new java.io.FileOutputStream(this.val$fileDescriptor.getFileDescriptor()));
                        v9_10.close();
                        if (this.val$fileDescriptor != null) {
                            this.val$fileDescriptor.close();
                        }
                        if (v1_1 != this.val$bitmap) {
                            v1_1.recycle();
                        }
                        return 0;
                    } else {
                        v9_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 v9_4) {
            return v9_4;
        }
    }

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


    public static boolean copyToFile(java.io.File p4, java.io.InputStream p5)
    {
        int v1_0 = 0;
        try {
            StringBuilder v2_3 = new java.io.FileOutputStream(p4, 0);
            try {
                int v4_7 = new byte[1024];
            } catch (int v4_4) {
                v1_0 = v2_3;
                android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v1_0);
                throw v4_4;
            } catch (int v4_1) {
                v1_0 = v2_3;
                StringBuilder v2_1 = new StringBuilder();
                v2_1.append("Error copying resource contents to temp file: ");
                v2_1.append(v4_1.getMessage());
                android.util.Log.e("TypefaceCompatUtil", v2_1.toString());
                android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v1_0);
                return 0;
            }
            while(true) {
                int v1_1 = p5.read(v4_7);
                if (v1_1 == -1) {
                    break;
                }
                v2_3.write(v4_7, 0, v1_1);
            }
            android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v2_3);
            return 1;
        } catch (int v4_4) {
        } catch (int v4_1) {
            v2_1 = new StringBuilder();
            v2_1.append("Error copying resource contents to temp file: ");
            v2_1.append(v4_1.getMessage());
            android.util.Log.e("TypefaceCompatUtil", v2_1.toString());
            android.support.v4.graphics.TypefaceCompatUtil.closeQuietly(v1_0);
            return 0;
        }
    }

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 (v7_3 != null) {
                        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;
                    }
                }
                if (v7_3 != null) {
                    v7_3.close();
                }
                if (v6_1 != null) {
                    v6_1.close();
                }
                return v5_2;
            } catch (java.io.IOException) {
                return 0;
            }
        } else {
            return 0;
        }
    }

Method com.google.firebase.iid.zzy.zza() calling method java.io.FileInputStream.<init>()


    private final com.google.firebase.iid.zzz zza(java.io.File p10)
    {
        java.io.FileInputStream v0_1 = new java.io.FileInputStream(p10);
        Throwable v10_1 = 0;
        try {
            java.nio.channels.FileChannel v7 = v0_1.getChannel();
            try {
                v7.lock(0, nan, 1);
                Throwable v1_0 = com.google.firebase.iid.zzy.zza(v7);
            } catch (Throwable v1_2) {
                Throwable v2_1 = 0;
                if (v7 != null) {
                    com.google.firebase.iid.zzy.zza(v2_1, v7);
                }
                throw v1_2;
            } catch (Throwable v1_1) {
                try {
                    throw v1_1;
                } catch (Throwable v2_0) {
                    v2_1 = v1_1;
                    v1_2 = v2_0;
                }
            }
            if (v7 != null) {
                com.google.firebase.iid.zzy.zza(0, v7);
            }
            com.google.firebase.iid.zzy.zza(0, v0_1);
            return v1_0;
        } catch (Throwable v1_3) {
            com.google.firebase.iid.zzy.zza(v10_1, v0_1);
            throw v1_3;
        } catch (Throwable v10_1) {
            throw v10_1;
        }
    }

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.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 (v1_1 != null) {
                    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;
                }
            }
            if (v1_1 != null) {
                v1_1.close();
            }
            return v9_1;
        } catch (java.io.IOException) {
            return 0;
        }
    }

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 (v9_1 != null) {
                        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;
                    }
                }
                if (v9_1 != null) {
                    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 com.google.android.gms.common.util.ProcessUtils.zzj() calling method java.io.FileReader.<init>()


    private static java.io.BufferedReader zzj(String p3)
    {
        android.os.StrictMode$ThreadPolicy v0 = android.os.StrictMode.allowThreadDiskReads();
        try {
            java.io.BufferedReader v1_1 = new java.io.BufferedReader(new java.io.FileReader(p3));
            android.os.StrictMode.setThreadPolicy(v0);
            return v1_1;
        } catch (Throwable v3_1) {
            android.os.StrictMode.setThreadPolicy(v0);
            throw v3_1;
        }
    }

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 com.google.android.gms.measurement.internal.zzfo.zzmd() calling method java.io.File.<init>()


    private final boolean zzmd()
    {
        this.zzaf();
        try {
            this.zzatz = new java.io.RandomAccessFile(new java.io.File(this.zzada.getContext().getFilesDir(), "google_app_measurement.db"), "rw").getChannel();
            this.zzaty = this.zzatz.tryLock();
        } catch (int v0_14) {
            this.zzada.zzgt().zzjg().zzg("Failed to acquire storage lock", v0_14);
            return 0;
        } catch (int v0_13) {
            this.zzada.zzgt().zzjg().zzg("Failed to access storage lock file", v0_13);
            return 0;
        }
        if (this.zzaty == null) {
            this.zzada.zzgt().zzjg().zzby("Storage concurrent data access panic");
            return 0;
        } else {
            this.zzada.zzgt().zzjo().zzby("Storage concurrent access okay");
            return 1;
        }
    }

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.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.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.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) {
            try {
                String v0_3 = new java.io.File(v1_2, vtmp6).getCanonicalFile();
                SecurityException v5_4 = v0_3.getPath().startsWith(v1_2.getPath());
            } catch (java.io.IOException) {
                StringBuilder v1_6 = new StringBuilder();
                v1_6.append("Failed to resolve canonical path for ");
                v1_6.append(v5_4);
                throw new IllegalArgumentException(v1_6.toString());
            }
            if (v5_4 != null) {
                return v0_3;
            } else {
                throw new SecurityException("Resolved path jumped beyond configured root");
            }
        } else {
            StringBuilder v1_8 = new StringBuilder();
            v1_8.append("Unable to find configured root for ");
            v1_8.append(p5);
            throw new IllegalArgumentException(v1_8.toString());
        }
    }

Method com.google.firebase.iid.zzy.zzf() calling method java.io.File.<init>()


    private static java.io.File zzf(android.content.Context p2, String p3)
    {
        AssertionError v3_2;
        if (!android.text.TextUtils.isEmpty(p3)) {
            try {
                AssertionError v3_6 = android.util.Base64.encodeToString(p3.getBytes("UTF-8"), 11);
                StringBuilder v1_1 = new StringBuilder((String.valueOf(v3_6).length() + 33));
                v1_1.append("com.google.InstanceId_");
                v1_1.append(v3_6);
                v1_1.append(".properties");
                v3_2 = v1_1.toString();
            } catch (java.io.UnsupportedEncodingException v2_1) {
                throw new AssertionError(v2_1);
            }
        } else {
            v3_2 = "com.google.InstanceId.properties";
        }
        return new java.io.File(com.google.firebase.iid.zzy.zzb(p2), v3_2);
    }

Method com.google.firebase.iid.zzaw.<init>() calling method java.io.File.<init>()


    private zzaw(android.content.Context p3, com.google.firebase.iid.zzy p4)
    {
        this.zzde = new android.support.v4.util.ArrayMap();
        this.zzx = p3;
        this.zzdc = p3.getSharedPreferences("com.google.android.gms.appid", 0);
        this.zzdd = p4;
        String v0_2 = new java.io.File(android.support.v4.content.ContextCompat.getNoBackupFilesDir(this.zzx), "com.google.android.gms.appid-no-backup");
        if (!v0_2.exists()) {
            try {
                if ((v0_2.createNewFile()) && (!this.isEmpty())) {
                    android.util.Log.i("FirebaseInstanceId", "App restored, clearing state");
                    this.zzal();
                    com.google.firebase.iid.FirebaseInstanceId.getInstance().zzm();
                }
            } catch (String v3_7) {
                if (!android.util.Log.isLoggable("FirebaseInstanceId", 3)) {
                    return;
                } else {
                    String v3_9 = String.valueOf(v3_7.getMessage());
                    if (v3_9.length() == 0) {
                        String v3_11 = new String("Error creating file in no backup dir: ");
                    } else {
                        v3_11 = "Error creating file in no backup dir: ".concat(v3_9);
                    }
                    android.util.Log.d("FirebaseInstanceId", v3_11);
                    return;
                }
            }
            return;
        }
        return;
    }

Method com.google.firebase.database.tubesock.WebSocket.createSocket() calling method java.io.File.<init>()


    private java.net.Socket createSocket()
    {
        com.google.firebase.database.tubesock.WebSocketException v0_7;
        com.google.firebase.database.tubesock.WebSocketException v0_2 = this.url.getScheme();
        com.google.firebase.database.tubesock.WebSocketException v1_5 = this.url.getHost();
        String v2_7 = this.url.getPort();
        if ((v0_2 == null) || (!v0_2.equals("ws"))) {
            if ((v0_2 == null) || (!v0_2.equals("wss"))) {
                String v2_6 = new StringBuilder();
                v2_6.append("unsupported protocol: ");
                v2_6.append(v0_2);
                throw new com.google.firebase.database.tubesock.WebSocketException(v2_6.toString());
            } else {
                if (v2_7 == -1) {
                    v2_7 = 443;
                }
                com.google.firebase.database.tubesock.WebSocketException v0_4 = 0;
                try {
                    if (this.sslCacheDirectory != null) {
                        v0_4 = new android.net.SSLSessionCache(new java.io.File(this.sslCacheDirectory));
                    }
                    try {
                        v0_7 = ((javax.net.ssl.SSLSocket) android.net.SSLCertificateSocketFactory.getDefault(60000, v0_4).createSocket(v1_5, v2_7));
                    } catch (com.google.firebase.database.tubesock.WebSocketException v0_11) {
                        java.net.URI v3_16 = new StringBuilder();
                        v3_16.append("unknown host: ");
                        v3_16.append(v1_5);
                        throw new com.google.firebase.database.tubesock.WebSocketException(v3_16.toString(), v0_11);
                    } catch (com.google.firebase.database.tubesock.WebSocketException v0_10) {
                        String v2_15 = new StringBuilder();
                        v2_15.append("error while creating secure socket to ");
                        v2_15.append(this.url);
                        throw new com.google.firebase.database.tubesock.WebSocketException(v2_15.toString(), v0_10);
                    }
                    if (!javax.net.ssl.HttpsURLConnection.getDefaultHostnameVerifier().verify(v1_5, v0_7.getSession())) {
                        String v2_12 = new StringBuilder();
                        v2_12.append("Error while verifying secure socket to ");
                        v2_12.append(this.url);
                        throw new com.google.firebase.database.tubesock.WebSocketException(v2_12.toString());
                    }
                } catch (java.net.URI v3_6) {
                    Object[] v6_1 = new Object[0];
                    this.logger.debug("Failed to initialize SSL session cache", v3_6, v6_1);
                }
            }
        } else {
            if (v2_7 == -1) {
                v2_7 = 80;
            }
            try {
                v0_7 = new java.net.Socket(v1_5, v2_7);
            } catch (com.google.firebase.database.tubesock.WebSocketException v0_1) {
                java.net.URI v3_3 = new StringBuilder();
                v3_3.append("unknown host: ");
                v3_3.append(v1_5);
                throw new com.google.firebase.database.tubesock.WebSocketException(v3_3.toString(), v0_1);
            } catch (com.google.firebase.database.tubesock.WebSocketException v0_13) {
                String v2_1 = new StringBuilder();
                v2_1.append("error while creating socket to ");
                v2_1.append(this.url);
                throw new com.google.firebase.database.tubesock.WebSocketException(v2_1.toString(), v0_13);
            }
        }
        return v0_7;
    }

Method com.google.android.gms.measurement.internal.zzx.zza() calling method java.io.File.<init>()


    static void zza(com.google.android.gms.measurement.internal.zzas p3, android.database.sqlite.SQLiteDatabase p4)
    {
        if (p3 != null) {
            java.io.File v0_1 = new java.io.File(p4.getPath());
            if (!v0_1.setReadable(0, 0)) {
                p3.zzjj().zzby("Failed to turn off database read permission");
            }
            if (!v0_1.setWritable(0, 0)) {
                p3.zzjj().zzby("Failed to turn off database write permission");
            }
            if (!v0_1.setReadable(1, 1)) {
                p3.zzjj().zzby("Failed to turn on database read permission for owner");
            }
            if (!v0_1.setWritable(1, 1)) {
                p3.zzjj().zzby("Failed to turn on database write permission for owner");
            }
            return;
        } else {
            throw new IllegalArgumentException("Monitor must not be null");
        }
    }

Method com.google.android.gms.common.util.SharedPreferencesUtils.publishWorldReadableSharedPreferences() calling method java.io.File.<init>()


    public static void publishWorldReadableSharedPreferences(android.content.Context p3, android.content.SharedPreferences$Editor p4, String p5)
    {
        java.io.File v0_1 = new java.io.File(p3.getApplicationInfo().dataDir, "shared_prefs");
        java.io.File v3_5 = v0_1.getParentFile();
        if (v3_5 != null) {
            v3_5.setExecutable(1, 0);
        }
        v0_1.setExecutable(1, 0);
        p4.commit();
        new java.io.File(v0_1, String.valueOf(p5).concat(".xml")).setReadable(1, 0);
        return;
    }

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.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.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.<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.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.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.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.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 com.google.android.gms.measurement.internal.zzfo.zzmd() calling method java.io.RandomAccessFile.<init>()


    private final boolean zzmd()
    {
        this.zzaf();
        try {
            this.zzatz = new java.io.RandomAccessFile(new java.io.File(this.zzada.getContext().getFilesDir(), "google_app_measurement.db"), "rw").getChannel();
            this.zzaty = this.zzatz.tryLock();
        } catch (int v0_14) {
            this.zzada.zzgt().zzjg().zzg("Failed to acquire storage lock", v0_14);
            return 0;
        } catch (int v0_13) {
            this.zzada.zzgt().zzjg().zzg("Failed to access storage lock file", v0_13);
            return 0;
        }
        if (this.zzaty == null) {
            this.zzada.zzgt().zzjg().zzby("Storage concurrent data access panic");
            return 0;
        } else {
            this.zzada.zzgt().zzjo().zzby("Storage concurrent access okay");
            return 1;
        }
    }

Method com.google.firebase.iid.zzy.zza() calling method java.io.RandomAccessFile.<init>()


    private final com.google.firebase.iid.zzz zza(android.content.Context p9, String p10, com.google.firebase.iid.zzz p11, boolean p12)
    {
        if (android.util.Log.isLoggable("FirebaseInstanceId", 3)) {
            android.util.Log.d("FirebaseInstanceId", "Writing key to properties file");
        }
        StringBuilder v0_6 = new java.util.Properties();
        v0_6.setProperty("pub", com.google.firebase.iid.zzz.zza(p11));
        v0_6.setProperty("pri", com.google.firebase.iid.zzz.zzb(p11));
        v0_6.setProperty("cre", String.valueOf(com.google.firebase.iid.zzz.zzc(p11)));
        Throwable v9_3 = com.google.firebase.iid.zzy.zzf(p9, p10);
        try {
            v9_3.createNewFile();
            java.io.RandomAccessFile v2_4 = new java.io.RandomAccessFile(v9_3, "rw");
            try {
                Throwable v9_4 = v2_4.getChannel();
                try {
                    v9_4.lock();
                } catch (Throwable v11_2) {
                    String v12_11 = 0;
                    if (v9_4 != null) {
                        com.google.firebase.iid.zzy.zza(v12_11, v9_4);
                    }
                    throw v11_2;
                } catch (Throwable v11_1) {
                    try {
                        throw v11_1;
                    } catch (String v12_10) {
                        v12_11 = v11_1;
                        v11_2 = v12_10;
                    }
                }
                if ((p12 != null) && (v9_4.size() > 0)) {
                    try {
                        v9_4.position(0);
                        String v12_6 = com.google.firebase.iid.zzy.zza(v9_4);
                    } catch (String v12_7) {
                        if (android.util.Log.isLoggable("FirebaseInstanceId", 3)) {
                            String v12_8 = String.valueOf(v12_7);
                            StringBuilder v6_1 = new StringBuilder((String.valueOf(v12_8).length() + 64));
                            v6_1.append("Tried reading key pair before writing new one, but failed with: ");
                            v6_1.append(v12_8);
                            android.util.Log.d("FirebaseInstanceId", v6_1.toString());
                        }
                    }
                    if (v9_4 != null) {
                        com.google.firebase.iid.zzy.zza(0, v9_4);
                    }
                    com.google.firebase.iid.zzy.zza(0, v2_4);
                    return v12_6;
                }
                v9_4.position(0);
                v0_6.store(java.nio.channels.Channels.newOutputStream(v9_4), 0);
                if (v9_4 != null) {
                    com.google.firebase.iid.zzy.zza(0, v9_4);
                }
                com.google.firebase.iid.zzy.zza(0, v2_4);
                return p11;
            } catch (Throwable v9_6) {
                Throwable v11_4 = 0;
                com.google.firebase.iid.zzy.zza(v11_4, v2_4);
                throw v9_6;
            } catch (Throwable v9_5) {
                try {
                    throw v9_5;
                } catch (Throwable v11_3) {
                    v11_4 = v9_5;
                    v9_6 = v11_3;
                }
            }
        } catch (Throwable v9_7) {
            Throwable v9_1 = String.valueOf(v9_7);
            StringBuilder v0_2 = new StringBuilder((String.valueOf(v9_1).length() + 21));
            v0_2.append("Failed to write key: ");
            v0_2.append(v9_1);
            android.util.Log.w("FirebaseInstanceId", v0_2.toString());
            return 0;
        }
    }

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

Couldn't retrieve source code