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 fa4ac3904..8a2207870 100644 --- a/fs_mgr/fs_mgr_fstab.cpp +++ b/fs_mgr/fs_mgr_fstab.cpp @@ -690,7 +690,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; @@ -720,11 +722,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 @@ -756,6 +761,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) {