From 6ed74182289e84ce13ba99a5d8e7d3e9ee89979a Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 23 Aug 2016 13:53:53 -0600 Subject: [PATCH] DO NOT MERGE. Block adoptable storage when using FBE. For adoptable storage and FBE to coexist we need a new dm-biocrypt kernel feature which isn't ready yet. So for now, prevent devices from being adopted on FBE devices. Bug: 30770036 Test: none Change-Id: I51d54d2a8976ed02a03b107545aa094cf68df5d0 (cherry picked from commit 3b7f4b69b7701c57f0eaf0822f93a25fd4d8fa9d) --- services/core/java/com/android/server/MountService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index cdd977be29edc..0023e4bef77c7 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -1056,6 +1056,10 @@ class MountService extends IMountService.Stub || mForceAdoptable) { flags |= DiskInfo.FLAG_ADOPTABLE; } + // Adoptable storage isn't currently supported on FBE devices + if (StorageManager.isFileEncryptedNativeOnly()) { + flags &= ~DiskInfo.FLAG_ADOPTABLE; + } mDisks.put(id, new DiskInfo(id, flags)); break; } @@ -1985,6 +1989,11 @@ class MountService extends IMountService.Stub } if ((mask & StorageManager.DEBUG_FORCE_ADOPTABLE) != 0) { + if (StorageManager.isFileEncryptedNativeOnly()) { + throw new IllegalStateException( + "Adoptable storage not available on device with native FBE"); + } + synchronized (mLock) { mForceAdoptable = (flags & StorageManager.DEBUG_FORCE_ADOPTABLE) != 0;