Refactor: break fs-verity data gen into 2 parts
Break fs-verity generation method into Merkle tree generation and
fs-verity footer (was called header + extension) generation. This makes
them easier to reuse later.
Also:
* Add some null-ness annotations.
* Move generateApkVerity from ApkSigningBlockUtils to ApkVerityBuilder,
since it's more related to verity but not APK signing format.
* Rename some of "fs-verity" to "apk-verity" to disambiguate between
our experimental implementation (deprecated) and upstream.
Test: atest PtsApkVerityTestCases
Bug: 112037636
Change-Id: I0d70121071a3e78f80ae059a60e193afbadea337
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
index 758cd2b..939522d 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV3Verifier.java
@@ -534,11 +534,11 @@
NoSuchAlgorithmException {
try (RandomAccessFile apk = new RandomAccessFile(apkPath, "r")) {
SignatureInfo signatureInfo = findSignature(apk);
- return ApkSigningBlockUtils.generateApkVerity(apkPath, bufferFactory, signatureInfo);
+ return ApkVerityBuilder.generateApkVerity(apkPath, bufferFactory, signatureInfo);
}
}
- static byte[] generateFsverityRootHash(String apkPath)
+ static byte[] generateApkVerityRootHash(String apkPath)
throws NoSuchAlgorithmException, DigestException, IOException,
SignatureNotFoundException {
try (RandomAccessFile apk = new RandomAccessFile(apkPath, "r")) {
@@ -547,7 +547,7 @@
if (vSigner.verityRootHash == null) {
return null;
}
- return ApkVerityBuilder.generateFsverityRootHash(
+ return ApkVerityBuilder.generateApkVerityRootHash(
apk, ByteBuffer.wrap(vSigner.verityRootHash), signatureInfo);
}
}