diff options
author | Scott Lobdell <slobdell@google.com> | 2019-02-19 23:41:49 -0800 |
---|---|---|
committer | Scott Lobdell <slobdell@google.com> | 2019-02-19 23:41:49 -0800 |
commit | f931e7847eefe99bb1514e0200133f9b1ed09b07 (patch) | |
tree | d203a16633ec442523fa7c83b21684e729696486 /init/builtins.cpp | |
parent | deffc15528575a665250a5bf3c186eb03b30b54d (diff) | |
parent | 550e5f35533642d4a6df91e179ae88ba41ddb6ce (diff) |
Merge QP1A.190219.001
Change-Id: Iefeb673073fa3d300ab74aa9dfef7f3a500daeae
Diffstat (limited to 'init/builtins.cpp')
-rw-r--r-- | init/builtins.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/init/builtins.cpp b/init/builtins.cpp index cdea7c030..4669b5b4c 100644 --- a/init/builtins.cpp +++ b/init/builtins.cpp @@ -75,6 +75,7 @@ using namespace std::literals::string_literals; +using android::base::Basename; using android::base::unique_fd; using android::fs_mgr::Fstab; using android::fs_mgr::ReadFstabFromFile; @@ -756,11 +757,27 @@ static Result<Success> do_verity_load_state(const BuiltinArguments& args) { } static Result<Success> do_verity_update_state(const BuiltinArguments& args) { - if (!fs_mgr_update_verity_state([](const std::string& mount_point, int mode) { - property_set("partition." + mount_point + ".verified", std::to_string(mode)); - })) { - return Error() << "fs_mgr_update_verity_state() failed"; + int mode; + if (!fs_mgr_load_verity_state(&mode)) { + return Error() << "fs_mgr_load_verity_state() failed"; } + + Fstab fstab; + if (!ReadDefaultFstab(&fstab)) { + return Error() << "Failed to read default fstab"; + } + + for (const auto& entry : fstab) { + if (!fs_mgr_is_verity_enabled(entry)) { + continue; + } + + // To be consistent in vboot 1.0 and vboot 2.0 (AVB), use "system" for the partition even + // for system as root, so it has property [partition.system.verified]. + std::string partition = entry.mount_point == "/" ? "system" : Basename(entry.mount_point); + property_set("partition." + partition + ".verified", std::to_string(mode)); + } + return Success(); } |