summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bootloader_message/bootloader_message.cpp23
-rw-r--r--roots.cpp2
-rw-r--r--tests/common/component_test_util.h17
-rw-r--r--uncrypt/uncrypt.cpp15
-rw-r--r--update_verifier/Android.mk4
-rw-r--r--update_verifier/update_verifier.cpp5
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 "";
diff --git a/roots.cpp b/roots.cpp
index 5ba53c245..4a0a4948a 100644
--- a/roots.cpp
+++ b/roots.cpp
@@ -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; });