From 9ebd5794754865f29c9150e78192d3e9b6fd1297 Mon Sep 17 00:00:00 2001 From: luk1337 Date: Tue, 13 Aug 2024 01:17:50 +0200 Subject: [PATCH] Sort files list in FileDirectory::loadAll() (#3657) This lets us assemble classes.dex in a reproducible manner. Test: apktool d test.apk > /dev/null apktool b test > /dev/null sha1sum test/build/apk/classes.dex apktool -f d test.apk > /dev/null apktool b test > /dev/null sha1sum test/build/apk/classes.dex --- brut.j.dir/src/main/java/brut/directory/FileDirectory.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/brut.j.dir/src/main/java/brut/directory/FileDirectory.java b/brut.j.dir/src/main/java/brut/directory/FileDirectory.java index 8a9f9915..fd6e88a5 100644 --- a/brut.j.dir/src/main/java/brut/directory/FileDirectory.java +++ b/brut.j.dir/src/main/java/brut/directory/FileDirectory.java @@ -18,6 +18,8 @@ package brut.directory; import java.io.*; import java.net.URLDecoder; +import java.util.Arrays; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -107,6 +109,8 @@ public class FileDirectory extends AbstractDirectory { mDirs = new LinkedHashMap<>(); File[] files = getDir().listFiles(); + Arrays.sort(files, Comparator.comparing(f -> f.getName())); + for (File file : files) { if (file.isFile()) { mFiles.add(file.getName());