fix: normalize paths for uncompressed assets & unknown files

This commit is contained in:
Connor Tumbleson 2018-04-06 10:31:28 -04:00
parent e35f66b0e0
commit ca25a26944
2 changed files with 8 additions and 5 deletions

View File

@ -652,7 +652,8 @@ public class Androlib {
// loop through unknown files
for (Map.Entry<String,String> unknownFileInfo : files.entrySet()) {
String cleanedPath = BrutIO.sanitizeUnknownFile(unknownFileDir, unknownFileInfo.getKey());
String normalizedPath = BrutIO.normalizePath(unknownFileInfo.getKey());
String cleanedPath = BrutIO.sanitizeUnknownFile(unknownFileDir, normalizedPath);
File inputFile = new File(unknownFileDir, cleanedPath);
if (inputFile.isDirectory()) {
continue;
@ -683,15 +684,16 @@ public class Androlib {
File assetFileDir = new File(appDir, ASSET_DIRNAME);
for (String asset : files) {
String cleanedPath = BrutIO.sanitizeUnknownFile(assetFileDir, asset);
String normalizedPath = BrutIO.normalizePath(asset);
String cleanedPath = BrutIO.sanitizeUnknownFile(assetFileDir, normalizedPath);
File inputFile = new File(appDir, cleanedPath);
if (inputFile.isDirectory()) {
continue;
}
LOGGER.fine(String.format("Copying uncompressed asset: %s", asset));
ZipEntry newEntry = getStoredZipEntry(cleanedPath, inputFile);
LOGGER.fine(String.format("Copying uncompressed asset: %s", normalizedPath));
ZipEntry newEntry = getStoredZipEntry(normalizedPath, inputFile);
outputFile.putNextEntry(newEntry);
BrutIO.copy(inputFile, outputFile);
outputFile.closeEntry();

View File

@ -16,6 +16,7 @@
*/
package brut.androlib.res.data;
import brut.util.BrutIO;
import java.util.LinkedHashMap;
import java.util.Map;
@ -27,7 +28,7 @@ public class ResUnknownFiles {
private final Map<String, String> mUnknownFiles = new LinkedHashMap<>();
public void addUnknownFileInfo(String file, String value) {
mUnknownFiles.put(file, value);
mUnknownFiles.put(BrutIO.normalizePath(file), value);
}
public Map<String, String> getUnknownFiles() {