[FP4-128]add exfat support
diff --git a/model/Disk.cpp b/model/Disk.cpp
index 98b9596..0ca894b 100644
--- a/model/Disk.cpp
+++ b/model/Disk.cpp
@@ -23,6 +23,8 @@
#include "VolumeEncryption.h"
#include "VolumeManager.h"
+#include "fs/Exfat.h"
+
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/parseint.h>
@@ -384,6 +386,8 @@
}
switch (type) {
+ case 0x01: // FAT12 (in first 32 MB of disk)
+ case 0x04: // FAT16 (in first 32 MB of disk)
case 0x06: // FAT16
case 0x07: // HPFS/NTFS/exFAT
case 0x0b: // W95 FAT32 (LBA)
@@ -458,6 +462,12 @@
LOG(WARNING) << "Failed to zap; status " << res;
}
+ if (exfat::CheckSize(mDevPath, false) == 1) {
+ /* Should format filesystem as exFAT, so we must partition the device
+ * according to SDXC rules. */
+ return exfat::PartitionDisk(mDevPath);
+ }
+
// Now let's build the new MBR table. We heavily rely on sgdisk to
// force optimal alignment on the created partitions.
cmd.clear();