diff options
author | Kalesh Singh <kaleshsingh@google.com> | 2023-01-10 18:08:09 +0100 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-01-10 18:08:09 +0100 |
commit | 9fd1bd240e094a0f45f998a58039bca9c6578836 (patch) | |
tree | fa474dbcd1043cf932a0277d2e3abcdbfd9391ef /update_verifier/update_verifier.cpp | |
parent | Import translations. DO NOT MERGE ANYWHERE (diff) | |
parent | update_verifier: Verify blocks (diff) | |
download | android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar.gz android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar.bz2 android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar.lz android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar.xz android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.tar.zst android_bootable_recovery-9fd1bd240e094a0f45f998a58039bca9c6578836.zip |
Diffstat (limited to 'update_verifier/update_verifier.cpp')
-rw-r--r-- | update_verifier/update_verifier.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/update_verifier/update_verifier.cpp b/update_verifier/update_verifier.cpp index a042f9008..88fcfa502 100644 --- a/update_verifier/update_verifier.cpp +++ b/update_verifier/update_verifier.cpp @@ -52,6 +52,7 @@ #include <future> #include <thread> +#include <android-base/chrono_utils.h> #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/parseint.h> @@ -188,7 +189,28 @@ bool UpdateVerifier::ReadBlocks(const std::string partition_name, return ret; } +bool UpdateVerifier::CheckVerificationStatus() { + auto client = + android::snapshot::SnapuserdClient::Connect(android::snapshot::kSnapuserdSocket, 5s); + if (!client) { + LOG(ERROR) << "Unable to connect to snapuserd"; + return false; + } + + return client->QueryUpdateVerification(); +} + bool UpdateVerifier::VerifyPartitions() { + const bool userspace_snapshots = + android::base::GetBoolProperty("ro.virtual_ab.userspace.snapshots.enabled", false); + + if (userspace_snapshots && CheckVerificationStatus()) { + LOG(INFO) << "Partitions verified by snapuserd daemon"; + return true; + } + + LOG(INFO) << "Partitions not verified by snapuserd daemon"; + auto dm_block_devices = FindDmPartitions(); if (dm_block_devices.empty()) { LOG(ERROR) << "No dm-enabled block device is found."; |