diff options
-rw-r--r-- | bootloader_message/bootloader_message.cpp | 23 | ||||
-rw-r--r-- | roots.cpp | 2 | ||||
-rw-r--r-- | tests/common/component_test_util.h | 17 | ||||
-rw-r--r-- | uncrypt/uncrypt.cpp | 15 | ||||
-rw-r--r-- | update_verifier/Android.mk | 4 | ||||
-rw-r--r-- | update_verifier/update_verifier.cpp | 5 |
6 files changed, 22 insertions, 44 deletions
diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index b873d3dc3..d8086be28 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -29,27 +29,14 @@ #include <android-base/unique_fd.h> #include <fs_mgr.h> -static struct fstab* read_fstab(std::string* err) { - std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); - if (ro_hardware.empty()) { - *err = "failed to get ro.hardware"; - return nullptr; - } - // The fstab path is always "/fstab.${ro.hardware}". - std::string fstab_path = "/fstab." + ro_hardware; - struct fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str()); - if (fstab == nullptr) { - *err = "failed to read " + fstab_path; - } - return fstab; -} - static std::string get_misc_blk_device(std::string* err) { - struct fstab* fstab = read_fstab(err); - if (fstab == nullptr) { + std::unique_ptr<fstab, decltype(&fs_mgr_free_fstab)> fstab(fs_mgr_read_fstab_default(), + fs_mgr_free_fstab); + if (!fstab) { + *err = "failed to read default fstab"; return ""; } - fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc"); + fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc"); if (record == nullptr) { *err = "failed to find /misc partition"; return ""; @@ -44,7 +44,7 @@ void load_volume_table() int i; int ret; - fstab = fs_mgr_read_fstab("/etc/recovery.fstab"); + fstab = fs_mgr_read_fstab_with_dt("/etc/recovery.fstab"); if (!fstab) { LOG(ERROR) << "failed to read /etc/recovery.fstab"; return; diff --git a/tests/common/component_test_util.h b/tests/common/component_test_util.h index 44322972b..3fee32d62 100644 --- a/tests/common/component_test_util.h +++ b/tests/common/component_test_util.h @@ -24,21 +24,14 @@ // Check if the /misc entry exists in the fstab. static bool parse_misc() { - // The fstab path is "/fstab.${ro.hardware}". - std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); - if (ro_hardware.empty()) { - GTEST_LOG_(INFO) << "Failed to get ro.hardware."; + std::unique_ptr<fstab, decltype(&fs_mgr_free_fstab)> fstab(fs_mgr_read_fstab_default(), + fs_mgr_free_fstab); + if (!fstab) { + GTEST_LOG_(INFO) << "Failed to read default fstab"; return false; } - std::string fstab_path = "/fstab." + ro_hardware; - fstab* fstab = fs_mgr_read_fstab(fstab_path.c_str()); - if (fstab == nullptr) { - GTEST_LOG_(INFO) << "Failed to read " << fstab_path; - return false; - } - - fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/misc"); + fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc"); if (record == nullptr) { GTEST_LOG_(INFO) << "Failed to find /misc in fstab."; return false; diff --git a/uncrypt/uncrypt.cpp b/uncrypt/uncrypt.cpp index 4f5b2f807..ad3bdce7a 100644 --- a/uncrypt/uncrypt.cpp +++ b/uncrypt/uncrypt.cpp @@ -163,20 +163,9 @@ static void add_block_to_ranges(std::vector<int>& ranges, int new_block) { } static struct fstab* read_fstab() { - fstab = NULL; - - // The fstab path is always "/fstab.${ro.hardware}". - std::string ro_hardware = android::base::GetProperty("ro.hardware", ""); - if (ro_hardware.empty()) { - LOG(ERROR) << "failed to get ro.hardware"; - return NULL; - } - - std::string fstab_path = "/fstab." + ro_hardware; - - fstab = fs_mgr_read_fstab(fstab_path.c_str()); + fstab = fs_mgr_read_fstab_default(); if (!fstab) { - LOG(ERROR) << "failed to read " << fstab_path; + LOG(ERROR) << "failed to read default fstab"; return NULL; } diff --git a/update_verifier/Android.mk b/update_verifier/Android.mk index 49d19b0e1..c1051a54a 100644 --- a/update_verifier/Android.mk +++ b/update_verifier/Android.mk @@ -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) diff --git a/update_verifier/update_verifier.cpp b/update_verifier/update_verifier.cpp index a4799cc31..83b1c46c4 100644 --- a/update_verifier/update_verifier.cpp +++ b/update_verifier/update_verifier.cpp @@ -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; }); |