Merge "update_verifier: Support AVB." am: e248e434ea
am: 1f108dae49
Change-Id: I85544f829783fade5e91cfa1d48013047056924d
This commit is contained in:
commit
b0c38f1cce
4 changed files with 24 additions and 7 deletions
|
@ -92,6 +92,10 @@ ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
|
||||||
LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
|
LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD_AVB_ENABLE),true)
|
||||||
|
LOCAL_CFLAGS += -DBOARD_AVB_ENABLE=1
|
||||||
|
endif
|
||||||
|
|
||||||
LOCAL_MODULE := recovery_component_test
|
LOCAL_MODULE := recovery_component_test
|
||||||
LOCAL_COMPATIBILITY_SUITE := device-tests
|
LOCAL_COMPATIBILITY_SUITE := device-tests
|
||||||
LOCAL_C_INCLUDES := bootable/recovery
|
LOCAL_C_INCLUDES := bootable/recovery
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
class UpdateVerifierTest : public ::testing::Test {
|
class UpdateVerifierTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
#ifdef PRODUCT_SUPPORTS_VERITY
|
#if defined(PRODUCT_SUPPORTS_VERITY) || defined(BOARD_AVB_ENABLE)
|
||||||
verity_supported = true;
|
verity_supported = true;
|
||||||
#else
|
#else
|
||||||
verity_supported = false;
|
verity_supported = false;
|
||||||
|
|
|
@ -39,6 +39,10 @@ ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SUPPORTS_VERITY),true)
|
||||||
LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
|
LOCAL_CFLAGS += -DPRODUCT_SUPPORTS_VERITY=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD_AVB_ENABLE),true)
|
||||||
|
LOCAL_CFLAGS += -DBOARD_AVB_ENABLE=1
|
||||||
|
endif
|
||||||
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
# update_verifier (executable)
|
# update_verifier (executable)
|
||||||
|
|
|
@ -99,13 +99,22 @@ static bool read_blocks(const std::string& partition, const std::string& range_s
|
||||||
std::string content;
|
std::string content;
|
||||||
if (!android::base::ReadFileToString(path, &content)) {
|
if (!android::base::ReadFileToString(path, &content)) {
|
||||||
PLOG(WARNING) << "Failed to read " << path;
|
PLOG(WARNING) << "Failed to read " << path;
|
||||||
} else if (android::base::Trim(content) == partition) {
|
} else {
|
||||||
|
std::string dm_block_name = android::base::Trim(content);
|
||||||
|
#ifdef BOARD_AVB_ENABLE
|
||||||
|
// AVB is using 'vroot' for the root block device but we're expecting 'system'.
|
||||||
|
if (dm_block_name == "vroot") {
|
||||||
|
dm_block_name = "system";
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (dm_block_name == partition) {
|
||||||
dm_block_device = DEV_PATH + std::string(namelist[n]->d_name);
|
dm_block_device = DEV_PATH + std::string(namelist[n]->d_name);
|
||||||
while (n--) {
|
while (n--) {
|
||||||
free(namelist[n]);
|
free(namelist[n]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
free(namelist[n]);
|
free(namelist[n]);
|
||||||
}
|
}
|
||||||
free(namelist);
|
free(namelist);
|
||||||
|
@ -229,7 +238,7 @@ int update_verifier(int argc, char** argv) {
|
||||||
if (is_successful == BoolResult::FALSE) {
|
if (is_successful == BoolResult::FALSE) {
|
||||||
// The current slot has not booted successfully.
|
// The current slot has not booted successfully.
|
||||||
|
|
||||||
#ifdef PRODUCT_SUPPORTS_VERITY
|
#if defined(PRODUCT_SUPPORTS_VERITY) || defined(BOARD_AVB_ENABLE)
|
||||||
std::string verity_mode = android::base::GetProperty("ro.boot.veritymode", "");
|
std::string verity_mode = android::base::GetProperty("ro.boot.veritymode", "");
|
||||||
if (verity_mode.empty()) {
|
if (verity_mode.empty()) {
|
||||||
LOG(ERROR) << "Failed to get dm-verity mode.";
|
LOG(ERROR) << "Failed to get dm-verity mode.";
|
||||||
|
|
Loading…
Reference in a new issue