Merge changes from topics "fscrypt-options", "fstab-options"
* changes:
Use new encryption_options fstab entry
Replace "flags" property with "options" with same format as fstab
diff --git a/FsCrypt.cpp b/FsCrypt.cpp
index f9b32a0..c101ba8 100644
--- a/FsCrypt.cpp
+++ b/FsCrypt.cpp
@@ -201,8 +201,11 @@
if (entry == nullptr) {
return;
}
- ParseOptionsParts(entry->file_contents_mode, entry->file_names_mode, entry->file_policy_version,
- options);
+ if (!ParseOptions(entry->encryption_options, options)) {
+ LOG(ERROR) << "Unable to parse encryption options for " << DATA_MNT_POINT ": "
+ << entry->encryption_options;
+ return;
+ }
}
// Retrieve the version to use for encryption policies on the /data filesystem.
@@ -214,10 +217,13 @@
// Retrieve the options to use for encryption policies on adoptable storage.
static bool get_volume_file_encryption_options(EncryptionOptions* options) {
- return ParseOptionsParts(
- android::base::GetProperty("ro.crypto.volume.contents_mode", "aes-256-xts"),
- android::base::GetProperty("ro.crypto.volume.filenames_mode", "aes-256-heh"),
- android::base::GetProperty("ro.crypto.volume.flags", "v1"), options);
+ auto contents_mode =
+ android::base::GetProperty("ro.crypto.volume.contents_mode", "aes-256-xts");
+ auto filenames_mode =
+ android::base::GetProperty("ro.crypto.volume.filenames_mode", "aes-256-heh");
+ return ParseOptions(android::base::GetProperty("ro.crypto.volume.options",
+ contents_mode + ":" + filenames_mode + ":v1"),
+ options);
}
// Install a key for use by encrypted files on the /data filesystem.