summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-04-28 22:25:26 -0700
committerJeff Sharkey <jsharkey@android.com>2015-04-28 22:25:26 -0700
commitb42d694691e73d094df616fe78627ada7e1239ef (patch)
tree037022f5dd3dc3cccf3e0ea9272696c4ad614556
parentb36586a7c9b7718f33961406537e27bbd9b16211 (diff)
downloadframeworks_base-b42d694691e73d094df616fe78627ada7e1239ef.zip
frameworks_base-b42d694691e73d094df616fe78627ada7e1239ef.tar.gz
frameworks_base-b42d694691e73d094df616fe78627ada7e1239ef.tar.bz2
Method to wipe all adoptable disks.
Will be used by various classes doing factory reset. Bug: 9433509 Change-Id: I0701abe00abc2fb9085ce1ffe6e28fb27c91ab51
-rw-r--r--core/java/android/os/storage/StorageManager.java25
-rw-r--r--core/java/android/os/storage/VolumeRecord.java2
2 files changed, 26 insertions, 1 deletions
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 271ed9d..29da4f1 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -34,6 +34,7 @@ import android.os.ServiceManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
+import android.util.Slog;
import android.util.SparseArray;
import com.android.internal.os.SomeArgs;
@@ -639,6 +640,30 @@ public class StorageManager {
}
/** {@hide} */
+ public void wipeAdoptableDisks() {
+ // We only wipe devices in "adoptable" locations, which are in a
+ // long-term stable slot/location on the device, where apps have a
+ // reasonable chance of storing sensitive data. (Apps need to go through
+ // SAF to write to transient volumes.)
+ final List<DiskInfo> disks = getDisks();
+ for (DiskInfo disk : disks) {
+ final String diskId = disk.getId();
+ if (disk.isAdoptable()) {
+ Slog.d(TAG, "Found adoptable " + diskId + "; wiping");
+ try {
+ // TODO: switch to explicit wipe command when we have it,
+ // for now rely on the fact that vfat format does a wipe
+ mMountService.partitionPublic(diskId);
+ } catch (Exception e) {
+ Slog.w(TAG, "Failed to wipe " + diskId + ", but soldiering onward", e);
+ }
+ } else {
+ Slog.d(TAG, "Ignorning non-adoptable disk " + disk.getId());
+ }
+ }
+ }
+
+ /** {@hide} */
public void setVolumeNickname(String fsUuid, String nickname) {
try {
mMountService.setVolumeNickname(fsUuid, nickname);
diff --git a/core/java/android/os/storage/VolumeRecord.java b/core/java/android/os/storage/VolumeRecord.java
index d12d150..096e2dd 100644
--- a/core/java/android/os/storage/VolumeRecord.java
+++ b/core/java/android/os/storage/VolumeRecord.java
@@ -26,7 +26,7 @@ import com.android.internal.util.Preconditions;
import java.util.Objects;
/**
- * Notes for a storage volume which may not be currently present.
+ * Metadata for a storage volume which may not be currently present.
*
* @hide
*/