summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-10-07 22:20:29 -0700
committerLinux Build Service Account <lnxbuild@localhost>2018-10-07 22:20:29 -0700
commit2823d0f7245ddc0fb5ea5894ecd0b79cd0e104d6 (patch)
tree12591afb767536ae8ae5e4a14522d1539cbd5393
parent67dfb0c17e35443d50d4f77b2397a8ea59dab0a9 (diff)
parent07f77ac64f3fb1bfe1bc4213f5add34b5bfb9dac (diff)
downloadandroid_vendor_qcom_opensource_cryptfs_hw-2823d0f7245ddc0fb5ea5894ecd0b79cd0e104d6.tar.gz
android_vendor_qcom_opensource_cryptfs_hw-2823d0f7245ddc0fb5ea5894ecd0b79cd0e104d6.tar.bz2
android_vendor_qcom_opensource_cryptfs_hw-2823d0f7245ddc0fb5ea5894ecd0b79cd0e104d6.zip
Merge 07f77ac64f3fb1bfe1bc4213f5add34b5bfb9dac on remote branch
Change-Id: I2d591d8deb1994aaa54bad5f70445bcca7fe099c
-rw-r--r--cryptfs_hw.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/cryptfs_hw.c b/cryptfs_hw.c
index 65618df..ebf9381 100644
--- a/cryptfs_hw.c
+++ b/cryptfs_hw.c
@@ -68,6 +68,8 @@
#define CRYPTFS_HW_ALGO_MODE_AES_XTS 0x3
+#define METADATA_PARTITION_NAME "/dev/block/bootdevice/by-name/metadata"
+
enum cryptfs_hw_key_management_usage_type {
CRYPTFS_HW_KM_USAGE_DISK_ENCRYPTION = 0x01,
CRYPTFS_HW_KM_USAGE_FILE_ENCRYPTION = 0x02,
@@ -363,6 +365,18 @@ int is_ice_enabled(void)
int storage_type = 0;
int fd;
+ /*
+ * Since HW FDE is a compile time flag (due to QSSI requirements),
+ * this API conflicts with Metadata encryption even when ICE is
+ * enabled, as it encrypts the whole disk instead. Adding this
+ * workaround to return 0 if metadata partition is present.
+ */
+
+ if (access(METADATA_PARTITION_NAME, F_OK) == 0) {
+ SLOGI("Metadata partition, returning false");
+ return 0;
+ }
+
if (property_get("ro.boot.bootdevice", prop_storage, "")) {
if (strstr(prop_storage, "ufs")) {
/* All UFS based devices has ICE in it. So we dont need