Add ability to set --rotation-min-sdk-version for signapk.
Bug: 197787352 Test: m signapk Change-Id: I3b5e9bb3985c2ae83381499a44b339a7b1deb05c
This commit is contained in:
@@ -142,6 +142,9 @@ else
|
|||||||
|
|
||||||
$(built_module): $(LOCAL_CERTIFICATE_LINEAGE)
|
$(built_module): $(LOCAL_CERTIFICATE_LINEAGE)
|
||||||
$(built_module): PRIVATE_CERTIFICATE_LINEAGE := $(LOCAL_CERTIFICATE_LINEAGE)
|
$(built_module): PRIVATE_CERTIFICATE_LINEAGE := $(LOCAL_CERTIFICATE_LINEAGE)
|
||||||
|
|
||||||
|
$(built_module): $(LOCAL_ROTATION_MIN_SDK_VERSION)
|
||||||
|
$(built_module): PRIVATE_ROTATION_MIN_SDK_VERSION := $(LOCAL_ROTATION_MIN_SDK_VERSION)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(LOCAL_MODULE_STEM),)
|
ifneq ($(LOCAL_MODULE_STEM),)
|
||||||
|
@@ -263,6 +263,7 @@ LOCAL_RES_LIBRARIES:=
|
|||||||
LOCAL_RESOURCE_DIR:=
|
LOCAL_RESOURCE_DIR:=
|
||||||
LOCAL_RLIB_LIBRARIES:=
|
LOCAL_RLIB_LIBRARIES:=
|
||||||
LOCAL_RMTYPEDEFS:=
|
LOCAL_RMTYPEDEFS:=
|
||||||
|
LOCAL_ROTATION_MIN_SDK_VERSION:=
|
||||||
LOCAL_RRO_THEME:=
|
LOCAL_RRO_THEME:=
|
||||||
LOCAL_RTTI_FLAG:=
|
LOCAL_RTTI_FLAG:=
|
||||||
LOCAL_SANITIZE:=
|
LOCAL_SANITIZE:=
|
||||||
|
@@ -2351,6 +2351,7 @@ define sign-package-arg
|
|||||||
$(hide) mv $(1) $(1).unsigned
|
$(hide) mv $(1) $(1).unsigned
|
||||||
$(hide) $(JAVA) -Djava.library.path=$$(dirname $(SIGNAPK_JNI_LIBRARY_PATH)) -jar $(SIGNAPK_JAR) \
|
$(hide) $(JAVA) -Djava.library.path=$$(dirname $(SIGNAPK_JNI_LIBRARY_PATH)) -jar $(SIGNAPK_JAR) \
|
||||||
$(if $(strip $(PRIVATE_CERTIFICATE_LINEAGE)), --lineage $(PRIVATE_CERTIFICATE_LINEAGE)) \
|
$(if $(strip $(PRIVATE_CERTIFICATE_LINEAGE)), --lineage $(PRIVATE_CERTIFICATE_LINEAGE)) \
|
||||||
|
$(if $(strip $(PRIVATE_ROTATION_MIN_SDK_VERSION)), --rotation-min-sdk-version $(PRIVATE_ROTATION_MIN_SDK_VERSION)) \
|
||||||
$(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \
|
$(PRIVATE_CERTIFICATE) $(PRIVATE_PRIVATE_KEY) \
|
||||||
$(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed
|
$(PRIVATE_ADDITIONAL_CERTIFICATES) $(1).unsigned $(1).signed
|
||||||
$(hide) mv $(1).signed $(1)
|
$(hide) mv $(1).signed $(1)
|
||||||
|
@@ -469,6 +469,9 @@ $(LOCAL_BUILT_MODULE): PRIVATE_ADDITIONAL_CERTIFICATES := $(additional_certifica
|
|||||||
$(LOCAL_BUILT_MODULE): $(LOCAL_CERTIFICATE_LINEAGE)
|
$(LOCAL_BUILT_MODULE): $(LOCAL_CERTIFICATE_LINEAGE)
|
||||||
$(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE_LINEAGE := $(LOCAL_CERTIFICATE_LINEAGE)
|
$(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE_LINEAGE := $(LOCAL_CERTIFICATE_LINEAGE)
|
||||||
|
|
||||||
|
$(LOCAL_BUILT_MODULE): $(LOCAL_ROTATION_MIN_SDK_VERSION)
|
||||||
|
$(LOCAL_BUILT_MODULE): PRIVATE_ROTATION_MIN_SDK_VERSION := $(LOCAL_ROTATION_MIN_SDK_VERSION)
|
||||||
|
|
||||||
# Set a actual_partition_tag (calculated in base_rules.mk) for the package.
|
# Set a actual_partition_tag (calculated in base_rules.mk) for the package.
|
||||||
PACKAGES.$(LOCAL_PACKAGE_NAME).PARTITION := $(actual_partition_tag)
|
PACKAGES.$(LOCAL_PACKAGE_NAME).PARTITION := $(actual_partition_tag)
|
||||||
|
|
||||||
|
@@ -1050,6 +1050,7 @@ class SignApk {
|
|||||||
boolean signUsingApkSignatureSchemeV2 = true;
|
boolean signUsingApkSignatureSchemeV2 = true;
|
||||||
boolean signUsingApkSignatureSchemeV4 = false;
|
boolean signUsingApkSignatureSchemeV4 = false;
|
||||||
SigningCertificateLineage certLineage = null;
|
SigningCertificateLineage certLineage = null;
|
||||||
|
Integer rotationMinSdkVersion = null;
|
||||||
|
|
||||||
int argstart = 0;
|
int argstart = 0;
|
||||||
while (argstart < args.length && args[argstart].startsWith("-")) {
|
while (argstart < args.length && args[argstart].startsWith("-")) {
|
||||||
@@ -1092,6 +1093,15 @@ class SignApk {
|
|||||||
"Error reading lineage file: " + e.getMessage());
|
"Error reading lineage file: " + e.getMessage());
|
||||||
}
|
}
|
||||||
++argstart;
|
++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 {
|
} else {
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
@@ -1175,15 +1185,22 @@ class SignApk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try (ApkSignerEngine apkSigner =
|
DefaultApkSignerEngine.Builder builder = new DefaultApkSignerEngine.Builder(
|
||||||
new DefaultApkSignerEngine.Builder(
|
createSignerConfigs(privateKey, publicKey), minSdkVersion)
|
||||||
createSignerConfigs(privateKey, publicKey), minSdkVersion)
|
.setV1SigningEnabled(true)
|
||||||
.setV1SigningEnabled(true)
|
.setV2SigningEnabled(signUsingApkSignatureSchemeV2)
|
||||||
.setV2SigningEnabled(signUsingApkSignatureSchemeV2)
|
.setOtherSignersSignaturesPreserved(false)
|
||||||
.setOtherSignersSignaturesPreserved(false)
|
.setCreatedBy("1.0 (Android SignApk)");
|
||||||
.setCreatedBy("1.0 (Android SignApk)")
|
|
||||||
.setSigningCertificateLineage(certLineage)
|
if (certLineage != null) {
|
||||||
.build()) {
|
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
|
// We don't preserve the input APK's APK Signing Block (which contains v2
|
||||||
// signatures)
|
// signatures)
|
||||||
apkSigner.inputApkSigningBlock(null);
|
apkSigner.inputApkSigningBlock(null);
|
||||||
|
Reference in New Issue
Block a user