mirror of
https://github.com/revanced/Apktool.git
synced 2025-05-02 06:54:25 +02:00
remove BrutIO copy method
`copy` method already in IOUtils
This commit is contained in:
parent
fc189e434b
commit
407ffdc5fe
@ -36,6 +36,7 @@ import java.util.zip.ZipEntry;
|
|||||||
import java.util.zip.ZipFile;
|
import java.util.zip.ZipFile;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.yaml.snakeyaml.DumperOptions;
|
import org.yaml.snakeyaml.DumperOptions;
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
|
||||||
@ -230,7 +231,7 @@ public class Androlib {
|
|||||||
|
|
||||||
try (
|
try (
|
||||||
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
|
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
|
||||||
new File(mOutDir, "apktool.yml")), "UTF-8"));
|
new File(mOutDir, "apktool.yml")), "UTF-8"))
|
||||||
) {
|
) {
|
||||||
yaml.dump(meta, writer);
|
yaml.dump(meta, writer);
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
@ -241,7 +242,7 @@ public class Androlib {
|
|||||||
public Map<String, Object> readMetaFile(ExtFile appDir)
|
public Map<String, Object> readMetaFile(ExtFile appDir)
|
||||||
throws AndrolibException {
|
throws AndrolibException {
|
||||||
try(
|
try(
|
||||||
InputStream in = appDir.getDirectory().getFileInput("apktool.yml");
|
InputStream in = appDir.getDirectory().getFileInput("apktool.yml")
|
||||||
) {
|
) {
|
||||||
Yaml yaml = new Yaml();
|
Yaml yaml = new Yaml();
|
||||||
return (Map<String, Object>) yaml.load(in);
|
return (Map<String, Object>) yaml.load(in);
|
||||||
@ -557,9 +558,8 @@ public class Androlib {
|
|||||||
ZipFile inputFile = new ZipFile(tempFile);
|
ZipFile inputFile = new ZipFile(tempFile);
|
||||||
ZipOutputStream actualOutput = new ZipOutputStream(new FileOutputStream(outFile));
|
ZipOutputStream actualOutput = new ZipOutputStream(new FileOutputStream(outFile));
|
||||||
) {
|
) {
|
||||||
byte[] buffer = new byte[4096 * 1024];
|
copyExistingFiles(inputFile, actualOutput);
|
||||||
copyExistingFiles(inputFile, actualOutput, buffer);
|
copyUnknownFiles(appDir, actualOutput, files);
|
||||||
copyUnknownFiles(appDir, actualOutput, files, buffer);
|
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
throw new AndrolibException(ex);
|
throw new AndrolibException(ex);
|
||||||
}
|
}
|
||||||
@ -569,7 +569,7 @@ public class Androlib {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void copyExistingFiles(ZipFile inputFile, ZipOutputStream outputFile, byte[] buffer) throws IOException {
|
private void copyExistingFiles(ZipFile inputFile, ZipOutputStream outputFile) throws IOException {
|
||||||
// First, copy the contents from the existing outFile:
|
// First, copy the contents from the existing outFile:
|
||||||
Enumeration<? extends ZipEntry> entries = inputFile.entries();
|
Enumeration<? extends ZipEntry> entries = inputFile.entries();
|
||||||
while (entries.hasMoreElements()) {
|
while (entries.hasMoreElements()) {
|
||||||
@ -580,14 +580,18 @@ public class Androlib {
|
|||||||
|
|
||||||
// No need to create directory entries in the final apk
|
// No need to create directory entries in the final apk
|
||||||
if (!entry.isDirectory()) {
|
if (!entry.isDirectory()) {
|
||||||
BrutIO.copy(inputFile.getInputStream(entry), outputFile, buffer);
|
try (
|
||||||
|
InputStream is = inputFile.getInputStream(entry)
|
||||||
|
){
|
||||||
|
IOUtils.copy(is, outputFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
outputFile.closeEntry();
|
outputFile.closeEntry();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void copyUnknownFiles(File appDir, ZipOutputStream outputFile, Map<String, String> files, byte[] buffer)
|
private void copyUnknownFiles(File appDir, ZipOutputStream outputFile, Map<String, String> files)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
File unknownFileDir = new File(appDir, UNK_DIRNAME);
|
File unknownFileDir = new File(appDir, UNK_DIRNAME);
|
||||||
|
|
||||||
@ -606,7 +610,7 @@ public class Androlib {
|
|||||||
newEntry.setSize(inputFile.length());
|
newEntry.setSize(inputFile.length());
|
||||||
newEntry.setCompressedSize(-1);
|
newEntry.setCompressedSize(-1);
|
||||||
BufferedInputStream unknownFile = new BufferedInputStream(new FileInputStream(inputFile));
|
BufferedInputStream unknownFile = new BufferedInputStream(new FileInputStream(inputFile));
|
||||||
CRC32 crc = BrutIO.calculateCrc(unknownFile, buffer);
|
CRC32 crc = BrutIO.calculateCrc(unknownFile);
|
||||||
newEntry.setCrc(crc.getValue());
|
newEntry.setCrc(crc.getValue());
|
||||||
|
|
||||||
LOGGER.fine("\tsize: " + newEntry.getSize());
|
LOGGER.fine("\tsize: " + newEntry.getSize());
|
||||||
@ -615,8 +619,11 @@ public class Androlib {
|
|||||||
}
|
}
|
||||||
outputFile.putNextEntry(newEntry);
|
outputFile.putNextEntry(newEntry);
|
||||||
|
|
||||||
BufferedInputStream unknownFile = new BufferedInputStream(new FileInputStream(inputFile));
|
try (
|
||||||
BrutIO.copy(unknownFile, outputFile, buffer);
|
FileInputStream fis = new FileInputStream(inputFile)
|
||||||
|
){
|
||||||
|
IOUtils.copy(fis, outputFile);
|
||||||
|
}
|
||||||
outputFile.closeEntry();
|
outputFile.closeEntry();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,8 @@ public class BrutIO {
|
|||||||
try {
|
try {
|
||||||
IOUtils.copy(in, out);
|
IOUtils.copy(in, out);
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
IOUtils.closeQuietly(in);
|
||||||
in.close();
|
IOUtils.closeQuietly(out);
|
||||||
out.close();
|
|
||||||
} catch (IOException ex) {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,19 +60,14 @@ public class BrutIO {
|
|||||||
return modified;
|
return modified;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CRC32 calculateCrc(InputStream input, byte[] buffer) throws IOException {
|
public static CRC32 calculateCrc(InputStream input) throws IOException {
|
||||||
CRC32 crc = new CRC32();
|
CRC32 crc = new CRC32();
|
||||||
int bytesRead = 0;
|
int bytesRead;
|
||||||
|
byte[] buffer = new byte[8192];
|
||||||
while((bytesRead = input.read(buffer)) != -1) {
|
while((bytesRead = input.read(buffer)) != -1) {
|
||||||
crc.update(buffer, 0, bytesRead);
|
crc.update(buffer, 0, bytesRead);
|
||||||
}
|
}
|
||||||
return crc;
|
return crc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void copy(InputStream input, OutputStream output, byte[] buffer) throws IOException {
|
|
||||||
int bytesRead;
|
|
||||||
while((bytesRead = input.read(buffer)) != -1) {
|
|
||||||
output.write(buffer, 0, bytesRead);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user