Add ability to set --rotation-min-sdk-version for signapk.
Bug: 197787352 Test: m signapk Change-Id: I3b5e9bb3985c2ae83381499a44b339a7b1deb05c
This commit is contained in:
@@ -1050,6 +1050,7 @@ class SignApk {
|
||||
boolean signUsingApkSignatureSchemeV2 = true;
|
||||
boolean signUsingApkSignatureSchemeV4 = false;
|
||||
SigningCertificateLineage certLineage = null;
|
||||
Integer rotationMinSdkVersion = null;
|
||||
|
||||
int argstart = 0;
|
||||
while (argstart < args.length && args[argstart].startsWith("-")) {
|
||||
@@ -1092,6 +1093,15 @@ class SignApk {
|
||||
"Error reading lineage file: " + e.getMessage());
|
||||
}
|
||||
++argstart;
|
||||
} else if ("--rotation-min-sdk-version".equals(args[argstart])) {
|
||||
String rotationMinSdkVersionString = args[++argstart];
|
||||
try {
|
||||
rotationMinSdkVersion = Integer.parseInt(rotationMinSdkVersionString);
|
||||
} catch (NumberFormatException e) {
|
||||
throw new IllegalArgumentException(
|
||||
"--rotation-min-sdk-version must be a decimal number: " + rotationMinSdkVersionString);
|
||||
}
|
||||
++argstart;
|
||||
} else {
|
||||
usage();
|
||||
}
|
||||
@@ -1175,15 +1185,22 @@ class SignApk {
|
||||
}
|
||||
}
|
||||
|
||||
try (ApkSignerEngine apkSigner =
|
||||
new DefaultApkSignerEngine.Builder(
|
||||
createSignerConfigs(privateKey, publicKey), minSdkVersion)
|
||||
.setV1SigningEnabled(true)
|
||||
.setV2SigningEnabled(signUsingApkSignatureSchemeV2)
|
||||
.setOtherSignersSignaturesPreserved(false)
|
||||
.setCreatedBy("1.0 (Android SignApk)")
|
||||
.setSigningCertificateLineage(certLineage)
|
||||
.build()) {
|
||||
DefaultApkSignerEngine.Builder builder = new DefaultApkSignerEngine.Builder(
|
||||
createSignerConfigs(privateKey, publicKey), minSdkVersion)
|
||||
.setV1SigningEnabled(true)
|
||||
.setV2SigningEnabled(signUsingApkSignatureSchemeV2)
|
||||
.setOtherSignersSignaturesPreserved(false)
|
||||
.setCreatedBy("1.0 (Android SignApk)");
|
||||
|
||||
if (certLineage != null) {
|
||||
builder = builder.setSigningCertificateLineage(certLineage);
|
||||
}
|
||||
|
||||
if (rotationMinSdkVersion != null) {
|
||||
builder = builder.setMinSdkVersionForRotation(rotationMinSdkVersion);
|
||||
}
|
||||
|
||||
try (ApkSignerEngine apkSigner = builder.build()) {
|
||||
// We don't preserve the input APK's APK Signing Block (which contains v2
|
||||
// signatures)
|
||||
apkSigner.inputApkSigningBlock(null);
|
||||
|
Reference in New Issue
Block a user