正在查看: Crafto v9.3.3 应用的 X0.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Crafto v9.3.3 应用的 X0.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package sf;
import com.google.firebase.crashlytics.internal.metadata.UserMetadata;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.util.Properties;
public final class X0 {
public static final tf.x h = new tf.x("SliceMetadataManager");
public final C1148D b;
public final String c;
public final int d;
public final long e;
public final String f;
public final byte[] a = new byte[UserMetadata.MAX_INTERNAL_KEY_SIZE];
public int g = -1;
public X0(C1148D c1148d, String str, int i, long j, String str2) {
this.b = c1148d;
this.c = str;
this.d = i;
this.e = j;
this.f = str2;
}
public final int a() throws IOException {
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f), "checkpoint.dat");
if (!file.exists()) {
return 0;
}
FileInputStream fileInputStream = new FileInputStream(file);
try {
Properties properties = new Properties();
properties.load(fileInputStream);
fileInputStream.close();
if (Integer.parseInt(properties.getProperty("fileStatus", "-1")) == 4) {
return -1;
}
if (properties.getProperty("previousChunk") != null) {
return Integer.parseInt(properties.getProperty("previousChunk")) + 1;
}
throw new Y("Slice checkpoint file corrupt.");
} catch (Throwable th2) {
try {
fileInputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final J b() throws IOException {
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f), "checkpoint.dat");
if (!file.exists()) {
throw new Y("Slice checkpoint file does not exist.");
}
Properties properties = new Properties();
FileInputStream fileInputStream = new FileInputStream(file);
try {
properties.load(fileInputStream);
fileInputStream.close();
if (properties.getProperty("fileStatus") == null || properties.getProperty("previousChunk") == null) {
throw new Y("Slice checkpoint file corrupt.");
}
try {
int parseInt = Integer.parseInt(properties.getProperty("fileStatus"));
String property = properties.getProperty("fileName");
long parseLong = Long.parseLong(properties.getProperty("fileOffset", "-1"));
long parseLong2 = Long.parseLong(properties.getProperty("remainingBytes", "-1"));
int parseInt2 = Integer.parseInt(properties.getProperty("previousChunk"));
this.g = Integer.parseInt(properties.getProperty("metadataFileCounter", "0"));
return new J(parseInt, parseInt2, parseLong, parseLong2, property);
} catch (NumberFormatException e) {
throw new Y("Slice checkpoint file corrupt.", e);
}
} catch (Throwable th2) {
try {
fileInputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final File c() {
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f);
if (!file.exists()) {
file.mkdirs();
}
return new File(file, this.g + "-NAM.dat");
}
public final void d(long j, byte[] bArr, int i, int i2) throws IOException {
RandomAccessFile randomAccessFile = new RandomAccessFile(c(), "rw");
try {
randomAccessFile.seek(j);
randomAccessFile.write(bArr, i, i2);
randomAccessFile.close();
} catch (Throwable th2) {
try {
randomAccessFile.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final void e(int i) throws IOException {
Properties properties = new Properties();
properties.put("fileStatus", "3");
properties.put("fileOffset", String.valueOf(c().length()));
properties.put("previousChunk", String.valueOf(i));
properties.put("metadataFileCounter", String.valueOf(this.g));
FileOutputStream fileOutputStream = new FileOutputStream(l());
try {
properties.store(fileOutputStream, (String) null);
fileOutputStream.close();
} catch (Throwable th2) {
try {
fileOutputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final void f(String str, long j, long j2, int i) throws IOException {
Properties properties = new Properties();
properties.put("fileStatus", "1");
properties.put("fileName", str);
properties.put("fileOffset", String.valueOf(j));
properties.put("remainingBytes", String.valueOf(j2));
properties.put("previousChunk", String.valueOf(i));
properties.put("metadataFileCounter", String.valueOf(this.g));
FileOutputStream fileOutputStream = new FileOutputStream(l());
try {
properties.store(fileOutputStream, (String) null);
fileOutputStream.close();
} catch (Throwable th2) {
try {
fileOutputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final void g(byte[] bArr, int i) throws IOException {
Properties properties = new Properties();
properties.put("fileStatus", "2");
properties.put("previousChunk", String.valueOf(i));
properties.put("metadataFileCounter", String.valueOf(this.g));
FileOutputStream fileOutputStream = new FileOutputStream(l());
try {
properties.store(fileOutputStream, (String) null);
fileOutputStream.close();
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f), "checkpoint_ext.dat");
if (file.exists()) {
file.delete();
}
fileOutputStream = new FileOutputStream(file);
try {
fileOutputStream.write(bArr);
fileOutputStream.close();
} finally {
try {
fileOutputStream.close();
} catch (Throwable th2) {
th.addSuppressed(th2);
}
}
} catch (Throwable th3) {
throw th3;
}
}
public final void h(int i) throws IOException {
Properties properties = new Properties();
properties.put("fileStatus", "4");
properties.put("previousChunk", String.valueOf(i));
properties.put("metadataFileCounter", String.valueOf(this.g));
FileOutputStream fileOutputStream = new FileOutputStream(l());
try {
properties.store(fileOutputStream, (String) null);
fileOutputStream.close();
} catch (Throwable th2) {
try {
fileOutputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final void i(byte[] bArr) throws IOException {
this.g++;
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f);
if (!file.exists()) {
file.mkdirs();
}
try {
FileOutputStream fileOutputStream = new FileOutputStream(new File(file, this.g + "-LFH.dat"));
try {
fileOutputStream.write(bArr);
fileOutputStream.close();
} finally {
}
} catch (IOException e) {
throw new Y("Could not write metadata file.", e);
}
}
public final void j(InputStream inputStream, byte[] bArr) throws IOException {
byte[] bArr2 = this.a;
this.g++;
FileOutputStream fileOutputStream = new FileOutputStream(c());
try {
fileOutputStream.write(bArr);
int read = inputStream.read(bArr2);
while (read > 0) {
fileOutputStream.write(bArr2, 0, read);
read = inputStream.read(bArr2);
}
fileOutputStream.close();
} catch (Throwable th2) {
try {
fileOutputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final void k(byte[] bArr, int i) throws IOException {
this.g++;
FileOutputStream fileOutputStream = new FileOutputStream(c());
try {
fileOutputStream.write(bArr, 0, i);
fileOutputStream.close();
} catch (Throwable th2) {
try {
fileOutputStream.close();
} catch (Throwable th3) {
th2.addSuppressed(th3);
}
throw th2;
}
}
public final File l() throws IOException {
C1148D c1148d = this.b;
c1148d.getClass();
File file = new File(new File(new File(new File(c1148d.c(this.c, this.d, this.e), "_slices"), "_metadata"), this.f), "checkpoint.dat");
file.getParentFile().mkdirs();
file.createNewFile();
return file;
}
}