Skip to content

Commit ac5742d

Browse files
committed
refactor: Move alignment code to ZipFile
1 parent a022feb commit ac5742d

File tree

4 files changed

+18
-22
lines changed

4 files changed

+18
-22
lines changed

revanced-lib/api/revanced-lib.api

+5-5
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,18 @@ public final class app/revanced/lib/signing/SigningOptions {
9696
public fun toString ()Ljava/lang/String;
9797
}
9898

99-
public final class app/revanced/lib/zip/ZipAligner {
100-
public static final field INSTANCE Lapp/revanced/lib/zip/ZipAligner;
101-
public final fun getApkZipEntryAlignment ()Lkotlin/jvm/functions/Function1;
102-
}
103-
10499
public final class app/revanced/lib/zip/ZipFile : java/io/Closeable {
100+
public static final field ApkZipFile Lapp/revanced/lib/zip/ZipFile$ApkZipFile;
105101
public fun <init> (Ljava/io/File;)V
106102
public final fun addEntryCompressData (Lapp/revanced/lib/zip/structures/ZipEntry;[B)V
107103
public fun close ()V
108104
public final fun copyEntriesFromFileAligned (Lapp/revanced/lib/zip/ZipFile;Lkotlin/jvm/functions/Function1;)V
109105
}
110106

107+
public final class app/revanced/lib/zip/ZipFile$ApkZipFile {
108+
public final fun getApkZipEntryAlignment ()Lkotlin/jvm/functions/Function1;
109+
}
110+
111111
public final class app/revanced/lib/zip/structures/ZipEntry {
112112
public static final field Companion Lapp/revanced/lib/zip/structures/ZipEntry$Companion;
113113
public fun <init> (Ljava/lang/String;)V

revanced-lib/src/main/kotlin/app/revanced/lib/ApkUtils.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package app.revanced.lib
22

33
import app.revanced.lib.signing.ApkSigner
44
import app.revanced.lib.signing.SigningOptions
5-
import app.revanced.lib.zip.ZipAligner
65
import app.revanced.lib.zip.ZipFile
76
import app.revanced.lib.zip.structures.ZipEntry
87
import app.revanced.patcher.PatcherResult
@@ -35,15 +34,15 @@ object ApkUtils {
3534

3635
patchedEntriesSource.resourceFile?.let {
3736
file.copyEntriesFromFileAligned(
38-
ZipFile(it), ZipAligner.apkZipEntryAlignment
37+
ZipFile(it), ZipFile.apkZipEntryAlignment
3938
)
4039
}
4140

4241
// TODO: Do not compress result.doNotCompress
4342

4443
// TODO: Fix copying resources that are not needed anymore.
4544
file.copyEntriesFromFileAligned(
46-
ZipFile(apkFile), ZipAligner.apkZipEntryAlignment
45+
ZipFile(apkFile), ZipFile.apkZipEntryAlignment
4746
)
4847
}
4948
}

revanced-lib/src/main/kotlin/app/revanced/lib/zip/ZipAligner.kt

-14
This file was deleted.

revanced-lib/src/main/kotlin/app/revanced/lib/zip/ZipFile.kt

+11
Original file line numberDiff line numberDiff line change
@@ -178,4 +178,15 @@ class ZipFile(file: File) : Closeable {
178178
if (centralDirectoryNeedsRewrite) writeCD()
179179
filePointer.close()
180180
}
181+
182+
companion object ApkZipFile {
183+
private const val DEFAULT_ALIGNMENT = 4
184+
private const val LIBRARY_ALIGNMENT = 4096
185+
186+
val apkZipEntryAlignment = { entry: ZipEntry ->
187+
if (entry.compression.toUInt() != 0u) null
188+
else if (entry.fileName.endsWith(".so")) LIBRARY_ALIGNMENT
189+
else DEFAULT_ALIGNMENT
190+
}
191+
}
181192
}

0 commit comments

Comments
 (0)