mirror of
https://github.com/revanced/Apktool.git
synced 2025-01-07 10:35:52 +01:00
Merge branch 'stored_obfuscated_files'
This commit is contained in:
commit
273842279a
@ -177,16 +177,19 @@ public class Androlib {
|
|||||||
|
|
||||||
for (String file : files) {
|
for (String file : files) {
|
||||||
if (isAPKFileNames(file) && unk.getCompressionLevel(file) == 0) {
|
if (isAPKFileNames(file) && unk.getCompressionLevel(file) == 0) {
|
||||||
String ext = "";
|
String extOrFile = "";
|
||||||
if (unk.getSize(file) != 0) {
|
if (unk.getSize(file) != 0) {
|
||||||
ext = FilenameUtils.getExtension(file);
|
extOrFile = FilenameUtils.getExtension(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ext.isEmpty() || !NO_COMPRESS_PATTERN.matcher(ext).find()) {
|
if (extOrFile.isEmpty() || !NO_COMPRESS_PATTERN.matcher(extOrFile).find()) {
|
||||||
ext = file;
|
extOrFile = file;
|
||||||
|
if (mAndRes.mResFileMapping.containsKey(extOrFile)) {
|
||||||
|
extOrFile = mAndRes.mResFileMapping.get(extOrFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!uncompressedFilesOrExts.contains(ext)) {
|
if (!uncompressedFilesOrExts.contains(extOrFile)) {
|
||||||
uncompressedFilesOrExts.add(ext);
|
uncompressedFilesOrExts.add(extOrFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -247,7 +247,7 @@ final public class AndrolibResources {
|
|||||||
|
|
||||||
LOGGER.info("Decoding file-resources...");
|
LOGGER.info("Decoding file-resources...");
|
||||||
for (ResResource res : pkg.listFiles()) {
|
for (ResResource res : pkg.listFiles()) {
|
||||||
fileDecoder.decode(res, in, out);
|
fileDecoder.decode(res, in, out, mResFileMapping);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOGGER.info("Decoding values */* XMLs...");
|
LOGGER.info("Decoding values */* XMLs...");
|
||||||
@ -1046,6 +1046,8 @@ final public class AndrolibResources {
|
|||||||
|
|
||||||
public BuildOptions buildOptions;
|
public BuildOptions buildOptions;
|
||||||
|
|
||||||
|
public Map<String, String> mResFileMapping = new HashMap();
|
||||||
|
|
||||||
// TODO: dirty static hack. I have to refactor decoding mechanisms.
|
// TODO: dirty static hack. I have to refactor decoding mechanisms.
|
||||||
public static boolean sKeepBroken = false;
|
public static boolean sKeepBroken = false;
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ import brut.directory.Directory;
|
|||||||
import brut.directory.DirectoryException;
|
import brut.directory.DirectoryException;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@ -37,10 +38,11 @@ public class ResFileDecoder {
|
|||||||
this.mDecoders = decoders;
|
this.mDecoders = decoders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void decode(ResResource res, Directory inDir, Directory outDir)
|
public void decode(ResResource res, Directory inDir, Directory outDir, Map<String, String> resFileMapping)
|
||||||
throws AndrolibException {
|
throws AndrolibException {
|
||||||
|
|
||||||
ResFileValue fileValue = (ResFileValue) res.getValue();
|
ResFileValue fileValue = (ResFileValue) res.getValue();
|
||||||
|
String inFilePath = fileValue.toString();
|
||||||
String inFileName = fileValue.getStrippedPath();
|
String inFileName = fileValue.getStrippedPath();
|
||||||
String outResName = res.getFilePath();
|
String outResName = res.getFilePath();
|
||||||
String typeName = res.getResSpec().getType().getName();
|
String typeName = res.getResSpec().getType().getName();
|
||||||
@ -55,6 +57,11 @@ public class ResFileDecoder {
|
|||||||
outFileName = outResName + ext;
|
outFileName = outResName + ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String outFilePath = "res/" + outFileName;
|
||||||
|
if (!inFilePath.equals(outFilePath)) {
|
||||||
|
resFileMapping.put(inFilePath, outFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (typeName.equals("raw")) {
|
if (typeName.equals("raw")) {
|
||||||
decode(inDir, inFileName, outDir, outFileName, "raw");
|
decode(inDir, inFileName, outDir, outFileName, "raw");
|
||||||
|
Loading…
Reference in New Issue
Block a user