Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ed7952df authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "BinaryTransparencyService: Translate content digest algo ID to string"

parents 533e83f2 00001111
Loading
Loading
Loading
Loading
+22 −42
Original line number Original line Diff line number Diff line
@@ -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");
                    }
                    }
                }
                }


@@ -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");
                            }
                            }
                        }
                        }
                    }
                    }
@@ -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;
@@ -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);
@@ -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);
@@ -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<>();