Migrate to the new apksig API
Following the new API contract, this effectively add extra padding before central dir to make it 4KB aligned. Test: build succeeded Bug: 30972906 Change-Id: I7cac9d2c4371b473c88df867b3b2ae906443db10
This commit is contained in:
@@ -1082,14 +1082,15 @@ class SignApk {
|
||||
ByteBuffer[] outputChunks = new ByteBuffer[] {v1SignedApk};
|
||||
|
||||
ZipSections zipSections = findMainZipSections(v1SignedApk);
|
||||
ApkSignerEngine.OutputApkSigningBlockRequest addV2SignatureRequest =
|
||||
apkSigner.outputZipSections(
|
||||
ApkSignerEngine.OutputApkSigningBlockRequest2 addV2SignatureRequest =
|
||||
apkSigner.outputZipSections2(
|
||||
DataSources.asDataSource(zipSections.beforeCentralDir),
|
||||
DataSources.asDataSource(zipSections.centralDir),
|
||||
DataSources.asDataSource(zipSections.eocd));
|
||||
if (addV2SignatureRequest != null) {
|
||||
// Need to insert the returned APK Signing Block before ZIP Central
|
||||
// Directory.
|
||||
int padding = addV2SignatureRequest.getPaddingSizeBeforeApkSigningBlock();
|
||||
byte[] apkSigningBlock = addV2SignatureRequest.getApkSigningBlock();
|
||||
// Because the APK Signing Block is inserted before the Central Directory,
|
||||
// we need to adjust accordingly the offset of Central Directory inside the
|
||||
@@ -1100,10 +1101,12 @@ class SignApk {
|
||||
modifiedEocd.order(ByteOrder.LITTLE_ENDIAN);
|
||||
ApkUtils.setZipEocdCentralDirectoryOffset(
|
||||
modifiedEocd,
|
||||
zipSections.beforeCentralDir.remaining() + apkSigningBlock.length);
|
||||
zipSections.beforeCentralDir.remaining() + padding +
|
||||
apkSigningBlock.length);
|
||||
outputChunks =
|
||||
new ByteBuffer[] {
|
||||
zipSections.beforeCentralDir,
|
||||
ByteBuffer.allocate(padding),
|
||||
ByteBuffer.wrap(apkSigningBlock),
|
||||
zipSections.centralDir,
|
||||
modifiedEocd};
|
||||
|
Reference in New Issue
Block a user