Loading services/core/java/com/android/server/BinaryTransparencyService.java +22 −42 Original line number Original line Diff line number Diff line Loading @@ -489,24 +489,10 @@ public class BinaryTransparencyService extends SystemService { Integer algorithmId = entry.getKey(); Integer algorithmId = entry.getKey(); byte[] contentDigest = entry.getValue(); byte[] contentDigest = entry.getValue(); // TODO(b/259348134): consider refactoring the following to a helper method pw.print(translateContentDigestAlgorithmIdToString(algorithmId)); switch (algorithmId) { pw.print(":"); case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: pw.print("CHUNKED_SHA256:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: pw.print("CHUNKED_SHA512:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: pw.print("VERITY_CHUNKED_SHA256:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: pw.print("SHA256:"); break; default: pw.print("UNKNOWN_ALGO_ID(" + algorithmId + "):"); } pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print("\n"); } } } } Loading @@ -533,31 +519,13 @@ public class BinaryTransparencyService extends SystemService { pw.println("ERROR: Failed to compute package content digest for " pw.println("ERROR: Failed to compute package content digest for " + origPackageFilepath); + origPackageFilepath); } else { } else { // TODO(b/259348134): consider refactoring this to a helper method for (Map.Entry<Integer, byte[]> entry : contentDigests.entrySet()) { for (Map.Entry<Integer, byte[]> entry : contentDigests.entrySet()) { Integer algorithmId = entry.getKey(); Integer algorithmId = entry.getKey(); byte[] contentDigest = entry.getValue(); byte[] contentDigest = entry.getValue(); pw.print("|--> Pre-installed package content digest algorithm: "); pw.println("|--> Pre-installed package content digest: " switch (algorithmId) { + HexEncoding.encodeToString(contentDigest, false)); case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: pw.println("|--> Pre-installed package content digest algorithm: " pw.print("CHUNKED_SHA256"); + translateContentDigestAlgorithmIdToString(algorithmId)); break; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: pw.print("CHUNKED_SHA512"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: pw.print("VERITY_CHUNKED_SHA256"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: pw.print("SHA256"); break; default: pw.print("UNKNOWN"); } pw.print("\n"); pw.print("|--> Pre-installed package content digest: "); pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print("\n"); } } } } } } Loading Loading @@ -739,7 +707,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageName + "," pw.print(packageName + "," + packageInfo.getLongVersionCode() + ","); + packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { ModuleInfo moduleInfo; ModuleInfo moduleInfo; Loading Loading @@ -802,7 +769,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageInfo.packageName + ","); pw.print(packageInfo.packageName + ","); pw.print(packageInfo.getLongVersionCode() + ","); pw.print(packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { printModuleDetails(module, pw); printModuleDetails(module, pw); Loading Loading @@ -858,7 +824,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageInfo.packageName + ","); pw.print(packageInfo.packageName + ","); pw.print(packageInfo.getLongVersionCode() + ","); pw.print(packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { printAppDetails(packageInfo, printLibraries, pw); printAppDetails(packageInfo, printLibraries, pw); Loading Loading @@ -1079,6 +1044,21 @@ public class BinaryTransparencyService extends SystemService { FrameworkStatsLog.write(FrameworkStatsLog.VBMETA_DIGEST_REPORTED, mVbmetaDigest); FrameworkStatsLog.write(FrameworkStatsLog.VBMETA_DIGEST_REPORTED, mVbmetaDigest); } } private String translateContentDigestAlgorithmIdToString(int algorithmId) { switch (algorithmId) { case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: return "CHUNKED_SHA256"; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: return "CHUNKED_SHA512"; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: return "VERITY_CHUNKED_SHA256"; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: return "SHA256"; default: return "UNKNOWN_ALGO_ID(" + algorithmId + ")"; } } @NonNull @NonNull private List<PackageInfo> getCurrentInstalledApexs() { private List<PackageInfo> getCurrentInstalledApexs() { List<PackageInfo> results = new ArrayList<>(); List<PackageInfo> results = new ArrayList<>(); Loading Loading
services/core/java/com/android/server/BinaryTransparencyService.java +22 −42 Original line number Original line Diff line number Diff line Loading @@ -489,24 +489,10 @@ public class BinaryTransparencyService extends SystemService { Integer algorithmId = entry.getKey(); Integer algorithmId = entry.getKey(); byte[] contentDigest = entry.getValue(); byte[] contentDigest = entry.getValue(); // TODO(b/259348134): consider refactoring the following to a helper method pw.print(translateContentDigestAlgorithmIdToString(algorithmId)); switch (algorithmId) { pw.print(":"); case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: pw.print("CHUNKED_SHA256:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: pw.print("CHUNKED_SHA512:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: pw.print("VERITY_CHUNKED_SHA256:"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: pw.print("SHA256:"); break; default: pw.print("UNKNOWN_ALGO_ID(" + algorithmId + "):"); } pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print("\n"); } } } } Loading @@ -533,31 +519,13 @@ public class BinaryTransparencyService extends SystemService { pw.println("ERROR: Failed to compute package content digest for " pw.println("ERROR: Failed to compute package content digest for " + origPackageFilepath); + origPackageFilepath); } else { } else { // TODO(b/259348134): consider refactoring this to a helper method for (Map.Entry<Integer, byte[]> entry : contentDigests.entrySet()) { for (Map.Entry<Integer, byte[]> entry : contentDigests.entrySet()) { Integer algorithmId = entry.getKey(); Integer algorithmId = entry.getKey(); byte[] contentDigest = entry.getValue(); byte[] contentDigest = entry.getValue(); pw.print("|--> Pre-installed package content digest algorithm: "); pw.println("|--> Pre-installed package content digest: " switch (algorithmId) { + HexEncoding.encodeToString(contentDigest, false)); case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: pw.println("|--> Pre-installed package content digest algorithm: " pw.print("CHUNKED_SHA256"); + translateContentDigestAlgorithmIdToString(algorithmId)); break; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: pw.print("CHUNKED_SHA512"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: pw.print("VERITY_CHUNKED_SHA256"); break; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: pw.print("SHA256"); break; default: pw.print("UNKNOWN"); } pw.print("\n"); pw.print("|--> Pre-installed package content digest: "); pw.print(HexEncoding.encodeToString(contentDigest, false)); pw.print("\n"); } } } } } } Loading Loading @@ -739,7 +707,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageName + "," pw.print(packageName + "," + packageInfo.getLongVersionCode() + ","); + packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { ModuleInfo moduleInfo; ModuleInfo moduleInfo; Loading Loading @@ -802,7 +769,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageInfo.packageName + ","); pw.print(packageInfo.packageName + ","); pw.print(packageInfo.getLongVersionCode() + ","); pw.print(packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { printModuleDetails(module, pw); printModuleDetails(module, pw); Loading Loading @@ -858,7 +824,6 @@ public class BinaryTransparencyService extends SystemService { pw.print(packageInfo.packageName + ","); pw.print(packageInfo.packageName + ","); pw.print(packageInfo.getLongVersionCode() + ","); pw.print(packageInfo.getLongVersionCode() + ","); printPackageMeasurements(packageInfo, pw); printPackageMeasurements(packageInfo, pw); pw.print("\n"); if (verbose) { if (verbose) { printAppDetails(packageInfo, printLibraries, pw); printAppDetails(packageInfo, printLibraries, pw); Loading Loading @@ -1079,6 +1044,21 @@ public class BinaryTransparencyService extends SystemService { FrameworkStatsLog.write(FrameworkStatsLog.VBMETA_DIGEST_REPORTED, mVbmetaDigest); FrameworkStatsLog.write(FrameworkStatsLog.VBMETA_DIGEST_REPORTED, mVbmetaDigest); } } private String translateContentDigestAlgorithmIdToString(int algorithmId) { switch (algorithmId) { case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA256: return "CHUNKED_SHA256"; case ApkSigningBlockUtils.CONTENT_DIGEST_CHUNKED_SHA512: return "CHUNKED_SHA512"; case ApkSigningBlockUtils.CONTENT_DIGEST_VERITY_CHUNKED_SHA256: return "VERITY_CHUNKED_SHA256"; case ApkSigningBlockUtils.CONTENT_DIGEST_SHA256: return "SHA256"; default: return "UNKNOWN_ALGO_ID(" + algorithmId + ")"; } } @NonNull @NonNull private List<PackageInfo> getCurrentInstalledApexs() { private List<PackageInfo> getCurrentInstalledApexs() { List<PackageInfo> results = new ArrayList<>(); List<PackageInfo> results = new ArrayList<>(); Loading