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, 44 insertions, 22 deletions
diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index d8086be28..b873d3dc3 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -29,14 +29,27 @@ #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) { - 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"; + struct fstab* fstab = read_fstab(err); + if (fstab == nullptr) { return ""; } - fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc"); + fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab, "/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_with_dt("/etc/recovery.fstab"); + fstab = fs_mgr_read_fstab("/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 3fee32d62..44322972b 100644 --- a/tests/common/component_test_util.h +++ b/tests/common/component_test_util.h @@ -24,14 +24,21 @@ // Check if the /misc entry exists in the fstab. static bool parse_misc() { - 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"; + // 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."; return false; } - fstab_rec* record = fs_mgr_get_entry_for_mount_point(fstab.get(), "/misc"); + 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"); 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 ad3bdce7a..4f5b2f807 100644 --- a/uncrypt/uncrypt.cpp +++ b/uncrypt/uncrypt.cpp @@ -163,9 +163,20 @@ static void add_block_to_ranges(std::vector<int>& ranges, int new_block) { } static struct fstab* read_fstab() { - fstab = fs_mgr_read_fstab_default(); + 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()); if (!fstab) { - LOG(ERROR) << "failed to read default fstab"; + LOG(ERROR) << "failed to read " << fstab_path; return NULL; } diff --git a/update_verifier/Android.mk b/update_verifier/Android.mk index c1051a54a..49d19b0e1 100644 --- a/update_verifier/Android.mk +++ b/update_verifier/Android.mk @@ -32,8 +32,4 @@ 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 83b1c46c4..a4799cc31 100644 --- a/update_verifier/update_verifier.cpp +++ b/update_verifier/update_verifier.cpp @@ -216,8 +216,6 @@ 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."; @@ -234,9 +232,6 @@ 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; }); |