From 74acbbb2cd367c6e78db7de5118ff9dd56da61d0 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 21 Apr 2015 12:14:03 -0700 Subject: [PATCH] Blend in force adoptable flag when set. Bug: 19993667 Change-Id: Ic7f348d171a89e889281b7efb1aa0cbade048975 --- core/java/android/os/storage/DiskInfo.java | 3 +++ core/java/android/os/storage/StorageManager.java | 2 ++ services/core/java/com/android/server/MountService.java | 5 ++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/storage/DiskInfo.java b/core/java/android/os/storage/DiskInfo.java index 9f38de8e346dc..64f2a05b67204 100644 --- a/core/java/android/os/storage/DiskInfo.java +++ b/core/java/android/os/storage/DiskInfo.java @@ -68,6 +68,9 @@ public class DiskInfo implements Parcelable { if (TextUtils.isEmpty(label)) { return false; } + if (label.equalsIgnoreCase("ata")) { + return false; + } if (label.toLowerCase().contains("generic")) { return false; } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index efa3ef2c17778..f101352294d18 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -69,6 +69,8 @@ public class StorageManager { /** {@hide} */ public static final String PROP_PRIMARY_PHYSICAL = "ro.vold.primary_physical"; + /** {@hide} */ + public static final String PROP_FORCE_ADOPTABLE = "persist.fw.force_adoptable"; /** {@hide} */ public static final int FLAG_ALL_METADATA = 1 << 0; diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index 649fcde931a22..f88802a73f5cf 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -823,7 +823,10 @@ class MountService extends IMountService.Stub case VoldResponseCode.DISK_CREATED: { if (cooked.length != 3) break; final String id = cooked[1]; - final int flags = Integer.parseInt(cooked[2]); + int flags = Integer.parseInt(cooked[2]); + if (SystemProperties.getBoolean(StorageManager.PROP_FORCE_ADOPTABLE, false)) { + flags |= DiskInfo.FLAG_ADOPTABLE; + } mDisks.put(id, new DiskInfo(id, flags)); break; }