Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e217002 authored by Eric Biggers's avatar Eric Biggers
Browse files

fs_mgr: allow any argument to encryptable

There are some fstab files that specify "encryptable=footer" for
adoptable storage volumes, which contradicts the documentation which
says that it should be "encryptable=userdata".  However, the argument
was previously being ignored anyway.  To avoid unnecessarily breaking
such devices, ignore the argument to "encryptable".

Note that we continue to only allow "encryptable" in combination with
"voldmanaged".  So, fstabs that use "encryptable" for FDE (rather than
for adoptable storage) should continue to be rejected.

Bug: 191796797
Change-Id: Idc4d5f9c01098f997e12be0022bea992439cec9c
parent e2b03b92
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -188,9 +188,9 @@ bool ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) {
#undef CheckFlag

        // Then handle flags that take an argument.
        if (flag == "encryptable=userdata") {
        if (StartsWith(flag, "encryptable=")) {
            // The "encryptable" flag identifies adoptable storage volumes.  The
            // argument to this flag must be "userdata".
            // argument to this flag is ignored, but it should be "userdata".
            //
            // Historical note: this flag was originally meant just for /data,
            // to indicate that FDE (full disk encryption) can be enabled.
@@ -198,8 +198,7 @@ bool ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) {
            // storage volumes.  Today, FDE is no longer supported, leaving only
            // the adoptable storage volume meaning for this flag.
            entry->fs_mgr_flags.crypt = true;
        } else if (StartsWith(flag, "encryptable=") || StartsWith(flag, "forceencrypt=") ||
                   StartsWith(flag, "forcefdeorfbe=")) {
        } else if (StartsWith(flag, "forceencrypt=") || StartsWith(flag, "forcefdeorfbe=")) {
            LERROR << "flag no longer supported: " << flag;
            return false;
        } else if (StartsWith(flag, "voldmanaged=")) {