aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTao Bao2017-03-10 16:21:25 -0600
committerTao Bao2017-03-10 17:16:27 -0600
commitdb57f0d7f427538b177ef82dde385e4207e35067 (patch)
tree48cef153e56085e8d73e9c097d379d6d696d498d /update_verifier
parent7a0dfec771e787b12273a85708bb02493a96b997 (diff)
downloadplatform-bootable-recovery-db57f0d7f427538b177ef82dde385e4207e35067.tar.gz
platform-bootable-recovery-db57f0d7f427538b177ef82dde385e4207e35067.tar.xz
platform-bootable-recovery-db57f0d7f427538b177ef82dde385e4207e35067.zip
update_verifier: Set the success flag if dm-verity is not enabled.
For devices that are not using dm-verity, update_verifier can't verify anything, but to mark the successfully booted flag unconditionally. Test: Successfully-booted flag is set on devices w/o dm-verity. Test: Successfully-booted flag is set after verification on devices w/ dm-verity. Change-Id: I79ab2caec2d4284aad0d66dd161adabebde175b6
Diffstat (limited to 'update_verifier')
-rw-r--r--update_verifier/Android.mk4
-rw-r--r--update_verifier/update_verifier.cpp5
2 files changed, 9 insertions, 0 deletions
diff --git a/update_verifier/Android.mk b/update_verifier/Android.mk
index 49d19b0e..c1051a54 100644
--- a/update_verifier/Android.mk
+++ b/update_verifier/Android.mk
@@ -32,4 +32,8 @@ LOCAL_SHARED_LIBRARIES := \
32LOCAL_CFLAGS := -Werror 32LOCAL_CFLAGS := -Werror
33LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. 33LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
34 34
35ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
36 LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
37endif
38
35include $(BUILD_EXECUTABLE) 39include $(BUILD_EXECUTABLE)
diff --git a/update_verifier/update_verifier.cpp b/update_verifier/update_verifier.cpp
index a4799cc3..83b1c46c 100644
--- a/update_verifier/update_verifier.cpp
+++ b/update_verifier/update_verifier.cpp
@@ -216,6 +216,8 @@ int main(int argc, char** argv) {
216 216
217 if (is_successful == BoolResult::FALSE) { 217 if (is_successful == BoolResult::FALSE) {
218 // The current slot has not booted successfully. 218 // The current slot has not booted successfully.
219
220#ifdef PRODUCT_SUPPORTS_VERITY
219 std::string verity_mode = android::base::GetProperty("ro.boot.veritymode", ""); 221 std::string verity_mode = android::base::GetProperty("ro.boot.veritymode", "");
220 if (verity_mode.empty()) { 222 if (verity_mode.empty()) {
221 LOG(ERROR) << "Failed to get dm-verity mode."; 223 LOG(ERROR) << "Failed to get dm-verity mode.";
@@ -232,6 +234,9 @@ int main(int argc, char** argv) {
232 LOG(ERROR) << "Failed to verify all blocks in care map file."; 234 LOG(ERROR) << "Failed to verify all blocks in care map file.";
233 return -1; 235 return -1;
234 } 236 }
237#else
238 LOG(WARNING) << "dm-verity not enabled; marking without verification.";
239#endif
235 240
236 CommandResult cr; 241 CommandResult cr;
237 module->markBootSuccessful([&cr](CommandResult result) { cr = result; }); 242 module->markBootSuccessful([&cr](CommandResult result) { cr = result; });