fs_mgr: libfstab: allow recovery.fstab with suffix
Some platforms may need different fstab configs. Accordingly, allow recovery init to select a recovery.fstab with a suffix provided through bootconfigs or cmdline during runtime, to make a single recovery.img work on different environments. Change-Id: I0c2f61ffe9ddeb03afc54d8acc43b4917d65b846
This commit is contained in:
parent
3468a90f47
commit
22a683c7aa
1 changed files with 19 additions and 1 deletions
|
|
@ -520,6 +520,24 @@ std::vector<FstabPtrEntryType*> GetEntriesByPred(FstabPtr fstab, const Pred& pre
|
|||
|
||||
} // namespace
|
||||
|
||||
// Return the path to the recovery fstab file. There may be multiple fstab files;
|
||||
// the one that is returned will be the first that exists of recovery.fstab.<fstab_suffix>,
|
||||
// recovery.fstab.<hardware>, and recovery.fstab.<hardware.platform>.
|
||||
std::string GetRecoveryFstabPath() {
|
||||
for (const char* prop : {"fstab_suffix", "hardware", "hardware.platform"}) {
|
||||
std::string suffix;
|
||||
|
||||
if (!fs_mgr_get_boot_config(prop, &suffix)) continue;
|
||||
|
||||
std::string fstab_path = "/etc/recovery.fstab." + suffix;
|
||||
if (access(fstab_path.c_str(), F_OK) == 0) {
|
||||
return fstab_path;
|
||||
}
|
||||
}
|
||||
|
||||
return "/etc/recovery.fstab";
|
||||
}
|
||||
|
||||
// Return the path to the fstab file. There may be multiple fstab files; the
|
||||
// one that is returned will be the first that exists of fstab.<fstab_suffix>,
|
||||
// fstab.<hardware>, and fstab.<hardware.platform>. The fstab is searched for
|
||||
|
|
@ -529,7 +547,7 @@ std::vector<FstabPtrEntryType*> GetEntriesByPred(FstabPtr fstab, const Pred& pre
|
|||
// the system/etc directory is supported too and is the preferred location.
|
||||
std::string GetFstabPath() {
|
||||
if (InRecovery()) {
|
||||
return "/etc/recovery.fstab";
|
||||
return GetRecoveryFstabPath();
|
||||
}
|
||||
for (const char* prop : {"fstab_suffix", "hardware", "hardware.platform"}) {
|
||||
std::string suffix;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue