[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();