mtp: don't create storage device after format data

Since we don't re-create data/media on FBE devices,
don't create an MTP storage device for it.

This fixes the bug when, after formatting data on
and FBE device, an empty Internal Storage appears
on the PC.

This also prevents an empty storage device from
being created if recovery is rebooted after formatting
data before booting to Android. A warning will appear
in the console that MTP is disabled in that case.

Currently the path is hardcoded to data/media; this
should probably be adjusted for cases where adoptable
storage is being used.

Change-Id: Iaafc5e3cde54c3ef6ffaf33f76d14c626b6e590d
This commit is contained in:
Captain Throwback
2021-10-02 20:47:33 -04:00
committed by bigbiff
parent 210ebe3d46
commit 63573b550f
3 changed files with 13 additions and 5 deletions

View File

@@ -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;