mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 06:14:25 +02:00
fix: archive2 alignment
This commit is contained in:
parent
61b3b6aee5
commit
7582c132f9
@ -29,7 +29,6 @@ public class ZipAligner {
|
|||||||
private final Map<Pattern, Integer> alignmentMap;
|
private final Map<Pattern, Integer> alignmentMap;
|
||||||
private int defaultAlignment;
|
private int defaultAlignment;
|
||||||
private boolean enableDataDescriptor;
|
private boolean enableDataDescriptor;
|
||||||
private long mTotalPadding;
|
|
||||||
private long mCurrentOffset;
|
private long mCurrentOffset;
|
||||||
|
|
||||||
public ZipAligner(){
|
public ZipAligner(){
|
||||||
@ -55,7 +54,6 @@ public class ZipAligner {
|
|||||||
this.defaultAlignment = defaultAlignment;
|
this.defaultAlignment = defaultAlignment;
|
||||||
}
|
}
|
||||||
public void reset(){
|
public void reset(){
|
||||||
mTotalPadding = 0;
|
|
||||||
mCurrentOffset = 0;
|
mCurrentOffset = 0;
|
||||||
}
|
}
|
||||||
public void setEnableDataDescriptor(boolean enableDataDescriptor) {
|
public void setEnableDataDescriptor(boolean enableDataDescriptor) {
|
||||||
@ -63,15 +61,15 @@ public class ZipAligner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void align(InputSource inputSource, LocalFileHeader lfh){
|
void align(InputSource inputSource, LocalFileHeader lfh){
|
||||||
|
lfh.setExtra(null);
|
||||||
int padding;
|
int padding;
|
||||||
if(inputSource.getMethod() != ZipEntry.STORED){
|
if(inputSource.getMethod() != ZipEntry.STORED){
|
||||||
padding = 0;
|
padding = 0;
|
||||||
createDataDescriptor(lfh);
|
createDataDescriptor(lfh);
|
||||||
}else {
|
}else {
|
||||||
int alignment = getAlignment(inputSource.getAlias());
|
int alignment = getAlignment(inputSource.getAlias());
|
||||||
long newOffset = mCurrentOffset + mTotalPadding;
|
long dataOffset = mCurrentOffset + lfh.countBytes();
|
||||||
padding = (int) ((alignment - (newOffset % alignment)) % alignment);
|
padding = (int) ((alignment - (dataOffset % alignment)) % alignment);
|
||||||
mTotalPadding += padding;
|
|
||||||
}
|
}
|
||||||
lfh.setExtra(new byte[padding]);
|
lfh.setExtra(new byte[padding]);
|
||||||
mCurrentOffset += lfh.getDataSize() + lfh.countBytes();
|
mCurrentOffset += lfh.getDataSize() + lfh.countBytes();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user