From d05a2f7dcb8f2f1b202a5e8262e24d285e9674a2 Mon Sep 17 00:00:00 2001 From: Bowgo Tsai Date: Tue, 28 Mar 2017 01:28:29 +0800 Subject: [PATCH] fs_mgr: use different fstab paths for normal/recovery boot recovery boot: /etc/recovery.fstab normal boot: use the first one found by the order: /odm/etc/fstab.{hardware} -> /vendor/etc/fstab.{hardware} -> /fstab.{hardware} Bug: 35811655 Bug: 36637553 Test: Sideload OTA installation in sailfish Change-Id: I3e260e077afa5a37fb65246246c824e9379e68c8 --- fs_mgr/fs_mgr_fstab.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs_mgr/fs_mgr_fstab.cpp b/fs_mgr/fs_mgr_fstab.cpp index a4f88ba89..720ec0315 100644 --- a/fs_mgr/fs_mgr_fstab.cpp +++ b/fs_mgr/fs_mgr_fstab.cpp @@ -646,7 +646,10 @@ struct fstab *fs_mgr_read_fstab_default() std::string hw; std::string default_fstab; - if (fs_mgr_get_boot_config("hardware", &hw)) { + // Use different fstab paths for normal boot and recovery boot, respectively + if (access("/sbin/recovery", F_OK) == 0) { + default_fstab = "/etc/recovery.fstab"; + } else if (fs_mgr_get_boot_config("hardware", &hw)) { // normal boot for (const char *prefix : {"/odm/etc/fstab.","/vendor/etc/fstab.", "/fstab."}) { default_fstab = prefix + hw; if (access(default_fstab.c_str(), F_OK) == 0) break;