diff --git a/gui/theme/common/languages/en.xml b/gui/theme/common/languages/en.xml
index f1b93b55..f58a76e9 100755
--- a/gui/theme/common/languages/en.xml
+++ b/gui/theme/common/languages/en.xml
@@ -615,6 +615,7 @@
MTP already enabled
Failed to enable MTP
MTP support not included
+ Media storage not found. Unable to enable MTP.
[IMAGE FLASH STARTED]
Image to flash: '{1}'
Unable to locate '{1}' partition for flashing.
diff --git a/partition.cpp b/partition.cpp
index bc60e385..f71f36fb 100755
--- a/partition.cpp
+++ b/partition.cpp
@@ -1733,7 +1733,7 @@ bool TWPartition::Wipe(string New_File_System) {
}
}
- if (Is_Storage && Mount(false))
+ if (Is_Storage && Mount(false) && !Is_FBE)
PartitionManager.Add_MTP_Storage(MTP_Storage_ID);
}
@@ -2048,16 +2048,17 @@ bool TWPartition::Wipe_Encryption() {
Is_Encrypted = false;
if (Wipe(Fstab_File_System)) {
Has_Data_Media = Save_Data_Media;
- if (Has_Data_Media && !Symlink_Mount_Point.empty()) {
- if (Mount(false))
- PartitionManager.Add_MTP_Storage(MTP_Storage_ID);
- }
DataManager::SetValue(TW_IS_ENCRYPTED, 0);
#ifndef TW_OEM_BUILD
gui_msg("format_data_msg=You may need to reboot recovery to be able to use /data again.");
#endif
if (Is_FBE) {
gui_msg(Msg(msg::kWarning, "data_media_fbe_msg=TWRP will not recreate /data/media on an FBE device. Please reboot into your rom to create /data/media."));
+ } else {
+ if (Has_Data_Media && !Symlink_Mount_Point.empty()) {
+ if (Mount(false))
+ PartitionManager.Add_MTP_Storage(MTP_Storage_ID);
+ }
}
ret = true;
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index 285b92a4..4bd7a7dd 100755
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -2573,6 +2573,12 @@ TWPartition *TWPartitionManager::Get_Default_Storage_Partition()
bool TWPartitionManager::Enable_MTP(void) {
#ifdef TW_HAS_MTP
+ string mtp_base_path = "/data/media";
+ if (!TWFunc::Path_Exists(mtp_base_path)) {
+ gui_msg(Msg(msg::kWarning, "mtp_base_path_missing=Media storage not found. Unable to enable MTP."));
+ return false;
+ }
+
if (mtppid) {
gui_err("mtp_already_enabled=MTP already enabled");
return true;