File tree 3 files changed +12
-24
lines changed
src/main/kotlin/app/revanced/utils/signing/align
3 files changed +12
-24
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package app.revanced.utils.signing.align
2
2
3
3
import app.revanced.utils.signing.align.stream.MultiOutputStream
4
4
import app.revanced.utils.signing.align.stream.PeekingFakeStream
5
+ import java.io.BufferedOutputStream
5
6
import java.io.File
6
7
import java.util.*
7
8
import java.util.zip.ZipEntry
@@ -18,7 +19,7 @@ internal object ZipAligner {
18
19
val peekingFakeStream = PeekingFakeStream ()
19
20
val fakeOutputStream = ZipOutputStream (peekingFakeStream)
20
21
// real
21
- val zipOutputStream = ZipOutputStream (output.outputStream())
22
+ val zipOutputStream = ZipOutputStream (BufferedOutputStream ( output.outputStream() ))
22
23
23
24
val multiOutputStream = MultiOutputStream (
24
25
listOf (
@@ -40,8 +41,6 @@ internal object ZipAligner {
40
41
val newOffset = fileOffset + bias
41
42
padding = ((alignment - (newOffset % alignment)) % alignment).toInt()
42
43
43
- // fake, used to add the padding, because we add it to real as well in the extra field
44
- peekingFakeStream.seek(padding.toLong())
45
44
// real
46
45
entry.extra = if (entry.extra == null ) ByteArray (padding)
47
46
else Arrays .copyOf(entry.extra, entry.extra.size + padding)
Original file line number Diff line number Diff line change @@ -5,21 +5,16 @@ import java.io.OutputStream
5
5
internal class MultiOutputStream (
6
6
private val streams : Iterable <OutputStream >,
7
7
) : OutputStream() {
8
- override fun write (b : ByteArray , off : Int , len : Int ) {
9
- streams.forEach {
10
- it.write(b, off, len)
11
- }
8
+ override fun write (b : ByteArray , off : Int , len : Int ) = streams.forEach {
9
+ it.write(b, off, len)
12
10
}
13
11
14
- override fun write (b : ByteArray ) {
15
- streams.forEach {
16
- it.write(b)
17
- }
12
+ override fun write (b : ByteArray ) = streams.forEach {
13
+ it.write(b)
18
14
}
19
15
20
- override fun write (b : Int ) {
21
- streams.forEach {
22
- it.write(b)
23
- }
16
+ override fun write (b : Int ) = streams.forEach {
17
+ it.write(b)
24
18
}
19
+
25
20
}
Original file line number Diff line number Diff line change @@ -2,16 +2,10 @@ package app.revanced.utils.signing.align.stream
2
2
3
3
import java.io.OutputStream
4
4
5
- internal class PeekingFakeStream : OutputStream () {
5
+ internal class PeekingFakeStream : OutputStream () {
6
6
private var numberOfBytes: Long = 0
7
7
8
- fun seek (n : Long ) {
9
- numberOfBytes + = n
10
- }
11
-
12
- fun peek (): Long {
13
- return numberOfBytes
14
- }
8
+ fun peek () = numberOfBytes
15
9
16
10
override fun write (b : Int ) {
17
11
numberOfBytes++
@@ -22,6 +16,6 @@ internal class PeekingFakeStream : OutputStream() {
22
16
}
23
17
24
18
override fun write (b : ByteArray , offset : Int , len : Int ) {
25
- numberOfBytes + = len - offset
19
+ numberOfBytes + = len
26
20
}
27
21
}
You can’t perform that action at this time.
0 commit comments