diff options
author | Tao Bao | 2017-03-10 16:21:25 -0600 |
---|---|---|
committer | Tao Bao | 2017-03-10 17:16:27 -0600 |
commit | db57f0d7f427538b177ef82dde385e4207e35067 (patch) | |
tree | 48cef153e56085e8d73e9c097d379d6d696d498d /update_verifier | |
parent | 7a0dfec771e787b12273a85708bb02493a96b997 (diff) | |
download | platform-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.mk | 4 | ||||
-rw-r--r-- | update_verifier/update_verifier.cpp | 5 |
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 := \ | |||
32 | LOCAL_CFLAGS := -Werror | 32 | LOCAL_CFLAGS := -Werror |
33 | LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. | 33 | LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. |
34 | 34 | ||
35 | ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true) | ||
36 | LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1 | ||
37 | endif | ||
38 | |||
35 | include $(BUILD_EXECUTABLE) | 39 | include $(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; }); |