diff options
author | Jeff Sharkey <jsharkey@android.com> | 2015-04-28 22:25:26 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2015-04-28 22:25:26 -0700 |
commit | b42d694691e73d094df616fe78627ada7e1239ef (patch) | |
tree | 037022f5dd3dc3cccf3e0ea9272696c4ad614556 | |
parent | b36586a7c9b7718f33961406537e27bbd9b16211 (diff) | |
download | frameworks_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.java | 25 | ||||
-rw-r--r-- | core/java/android/os/storage/VolumeRecord.java | 2 |
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 */ |