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
This commit is contained in:
Tao Bao 2017-03-10 14:21:25 -08:00
parent 7a0dfec771
commit db57f0d7f4
2 changed files with 9 additions and 0 deletions

View file

@ -32,4 +32,8 @@ LOCAL_SHARED_LIBRARIES := \
LOCAL_CFLAGS := -Werror
LOCAL_C_INCLUDES += $(LOCAL_PATH)/..
ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
endif
include $(BUILD_EXECUTABLE)

View file

@ -216,6 +216,8 @@ int main(int argc, char** argv) {
if (is_successful == BoolResult::FALSE) {
// The current slot has not booted successfully.
#ifdef PRODUCT_SUPPORTS_VERITY
std::string verity_mode = android::base::GetProperty("ro.boot.veritymode", "");
if (verity_mode.empty()) {
LOG(ERROR) << "Failed to get dm-verity mode.";
@ -232,6 +234,9 @@ int main(int argc, char** argv) {
LOG(ERROR) << "Failed to verify all blocks in care map file.";
return -1;
}
#else
LOG(WARNING) << "dm-verity not enabled; marking without verification.";
#endif
CommandResult cr;
module->markBootSuccessful([&cr](CommandResult result) { cr = result; });