diff --git a/fs_mgr/Android.bp b/fs_mgr/Android.bp index cd6459989..ac784b249 100644 --- a/fs_mgr/Android.bp +++ b/fs_mgr/Android.bp @@ -149,6 +149,14 @@ cc_library_static { darwin: { enabled: false, }, + vendor: { + cflags: [ + // Skipping entries in fstab should only be done in a system + // process as the config file is in /system_ext. + // Remove the op from the vendor variant. + "-DNO_SKIP_MOUNT", + ], + }, }, export_include_dirs: ["include_fstab"], header_libs: [ diff --git a/fs_mgr/fs_mgr_fstab.cpp b/fs_mgr/fs_mgr_fstab.cpp index f333a8561..54102ec1b 100644 --- a/fs_mgr/fs_mgr_fstab.cpp +++ b/fs_mgr/fs_mgr_fstab.cpp @@ -696,7 +696,9 @@ bool ReadFstabFromFile(const std::string& path, Fstab* fstab) { TransformFstabForDsu(fstab, Split(lp_names, ",")); } +#ifndef NO_SKIP_MOUNT SkipMountingPartitions(fstab); +#endif EnableMandatoryFlags(fstab); return true; @@ -726,11 +728,14 @@ bool ReadFstabFromDt(Fstab* fstab, bool log) { return false; } +#ifndef NO_SKIP_MOUNT SkipMountingPartitions(fstab); +#endif return true; } +#ifndef NO_SKIP_MOUNT // For GSI to skip mounting /product and /system_ext, until there are well-defined interfaces // between them and /system. Otherwise, the GSI flashed on /system might not be able to work with // device-specific /product and /system_ext. skip_mount.cfg belongs to system_ext partition because @@ -762,6 +767,7 @@ bool SkipMountingPartitions(Fstab* fstab) { return true; } +#endif // Loads the fstab file and combines with fstab entries passed in from device tree. bool ReadDefaultFstab(Fstab* fstab) {