diff --git a/Android.bp b/Android.bp index 41075d23..afa03371 100644 --- a/Android.bp +++ b/Android.bp @@ -45,6 +45,7 @@ cc_library { static_libs: [ "libminui", "libotautil", + "libfstab", ], shared_libs: [ @@ -157,6 +158,7 @@ cc_defaults { "libhealthhalutils", "libvintf_recovery", "libvintf", + "libfstab", ], } @@ -260,6 +262,7 @@ cc_binary { static_libs: [ "libotautil", + "libfstab", ], init_rc: [ @@ -287,6 +290,7 @@ cc_binary { static_libs: [ "libotautil", + "libfstab", ], init_rc: [ diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index b933cbf8..8c1d63bd 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -29,6 +29,9 @@ #include #include +using android::fs_mgr::Fstab; +using android::fs_mgr::ReadDefaultFstab; + static std::string get_misc_blk_device(std::string* err) { Fstab fstab; if (!ReadDefaultFstab(&fstab)) { diff --git a/roots.cpp b/roots.cpp index 290be477..7a922b8e 100644 --- a/roots.cpp +++ b/roots.cpp @@ -45,6 +45,10 @@ #include "otautil/mounts.h" #include "otautil/sysutil.h" +using android::fs_mgr::Fstab; +using android::fs_mgr::FstabEntry; +using android::fs_mgr::ReadDefaultFstab; + static Fstab fstab; extern struct selabel_handle* sehandle; @@ -69,10 +73,7 @@ void load_volume_table() { } Volume* volume_for_mount_point(const std::string& mount_point) { - auto it = std::find_if(fstab.begin(), fstab.end(), [&mount_point](const auto& entry) { - return entry.mount_point == mount_point; - }); - return it == fstab.end() ? nullptr : &*it; + return android::fs_mgr::GetEntryForMountPoint(&fstab, mount_point); } // Mount the volume specified by path at the given mount_point. diff --git a/roots.h b/roots.h index 341f9052..7b031a18 100644 --- a/roots.h +++ b/roots.h @@ -19,7 +19,9 @@ #include -typedef struct FstabEntry Volume; +#include + +using Volume = android::fs_mgr::FstabEntry; // Load and parse volume data from /etc/recovery.fstab. void load_volume_table(); diff --git a/uncrypt/uncrypt.cpp b/uncrypt/uncrypt.cpp index 75595ac2..f1f4f69f 100644 --- a/uncrypt/uncrypt.cpp +++ b/uncrypt/uncrypt.cpp @@ -119,6 +119,9 @@ #include "otautil/error_code.h" +using android::fs_mgr::Fstab; +using android::fs_mgr::ReadDefaultFstab; + static constexpr int WINDOW_SIZE = 5; static constexpr int FIBMAP_RETRY_LIMIT = 3;