[PSA] HTC's "Mass Storage" vs. ICS "MTP" - AT&T, Rogers HTC One X, Telstra One XL

This just came up on the international forum and has confused a lot of people. This is from Paul at MoDaCo...
"One of the downsides of Ice Cream Sandwich is that, with its one contiguous on-board memory, there is no option to connect this to your computer as good old ‘mass storage’. The One X gets around this by partition it’s memory in two blocks - the old style ‘/data’ partition which comes in at 2.11GB (where your apps and data go if you don’t ‘move to SD’) and the virtual / sdcard partition totaling 25.24GB, which can be accessed via mass storage! Personally, I can’t decide whether it’s better to have that one big space and be limited to MTP or to have this solution... but for people wanting to easily drop content on their device, mass storage is definitely a big plus."
Essentially, HTC's managing two virtual drives so that when the phone's connected via USB it appears as a mass storage device. There's a system folder that expands and contracts that's not seen via CHKDSK and is reported as bad sectors. You guys will run in to it also and probably sooner with less storage space to work with. It gets confusing because when using standard disk tools it looks like space is missing from the disk(s).
You can read more here...
http://forum.xda-developers.com/showthread.php?t=1632999

Related

Is there A-B file copy utility?

Looking for a program to copy files from one flash card to another one.
Just like on a PC with only one floppy disk drive: if you copy a file from A to B, it asks you to insert the source, then the target disk etc. many times depending on the file(s) size(s) and available RAM.
Multiple files handling with subdirectory trees is much appreciated!
If you're going to be re-inserting a new flash card anyway, you might as well temporarily drop the files to your desktop and then copy them back over to the B card. That's all the PC will do anyway, make a temp cache of the files.
Otherwise, get yourself another flash drive or one with two slots.
V
First of all, I mean such a software on my HTC TyTN, or, widely speaking, under WM5.
Then, because it should work on a phone, with limited internal storage space, and for the sake of useability, copying via the internal storage does not work.
I intentionally mentiones how DOS copy/xcopy/diskcopy commands worked between virtual drives: they were reading portions into RAM. You see, it also worked on PCs without a hard drive... you know, there were some...
Ahhm, I am just wondering how do you expect such program to work on your TyTN?
The smallest SD card sold today is 32MB (who buys that any way) and most people use 1 - 2 GB cards. No PPC device available today has enough RAM to hold that much data. In fact RAM is usually even more precious then internal storage.
Theoretically you could do it in portions, but do you really want to copy 2GB worth of data 10 - 20 MB at a time constantly switching between cards?
Floppies are not a good analogy in this case as they are usually about 1.3MB and even computers from 10 years ago had enough RAM to accomodate that.

Biggest problems forseen with Honeycomb conversion?

To all the Devs:
What do you all think will be your biggest hurdle to overcome with the advent of the Honeycomb ROM? I tend to think the two gnarliest parts will be the video and the accelerometer.
Just curious as I'd like to try dipping my feet into the ROM cooking waters and was wondering what y'all most have the problems with.
Not a dev, but:
Storage management may be a biggie. Honeycomb apparently changed from fixed allocations to dynamic storage management. Motorola is trying get Android to create a mod for them and their Xoom so the microsd works. Question may be is the space treated as a total of the storage or its own logical location? If the former, the card will not be able to be removed, since part of the storage total system (some data and media will be on the card, some on internal, but no based on location).
rushless said:
Not a dev, but:
Storage management may be a biggie. Honeycomb apparently changed from fixed allocations to dynamic storage management. Motorola is trying get Android to create a mod for them and their Xoom so the microsd works. Question may be is the space treated as a total of the storage or its own logical location? If the former, the card will not be able to be removed, since part of the storage total system (some data and media will be on the card, some on internal, but no based on location).
Click to expand...
Click to collapse
Now I somewhat understand why iDevices haven't had a SDCard slot and why WP7 devices have non-removable SDCards.
Why exactly is it so difficult to have dynamic storage management, alongside a SDCard with it's own logical location? Would that maybe create issues for each specific vendor or make it so Honeycomb would have to be more tailored for different configurations of devices?
Is it that much different from say, Windows 7 or Linux being on a drive, able to use as much space as possible on that drive but allowing for usb storage and sd card storage on drives of their own?

[Q] Mount Xoom as USB Storage

I just swapped my Samsung Galaxy Tab with a Xoom and I'm a bit miffed. I understand that the Xoom has 32GB of internal storage and does not come with an external SD card (or at least the person I bought it from kept the card).
With my SGT, when I plugged it into my Win7 64bit PC, the SD card would come up as a USB mass storage device.
Is there any way to do this with the internal storage of the Xoom? It's aggravatingly SLOW transferring files through the Personal Music Player icon that Win7 tosses in My Computer. I (as well as several other apps I use) would rather have a physical drive letter to copy to and from.
Not afraid to use a custom ROM or a modded apk or other system file. Yes, I did search and I also read the suggested topics that came up on the posting page, nothing was specifically related to the Xoom.
Yes. The Tiamat Rom, as well as the official 3.2 update activated the SD card slot in the xoom. No, the Xoom didnt ever come with a sdcard already in the slot like phones do, so you didnt get ripped off. the xoom file system is a little funny, "SDcard" is a seperate partition in the internal memory. If using Tiamat, and you have a sdcard in the sdcard slot, its labeled "external1" in the /mtn partition. When first placing an sd card in the slot, the system does take f o r e v e r, to recognize it (make sure you are also pushing the "mount sdcard" button in the storage settings menu). I generally just reboot the xoom after mounting a new card, that usually speeds up the process. When its all said and done when you plug the xoom into your pc you will get two hard drives that pop up, internal and sdcard. And heads up, you still cant put apps2sd like phones can, and you have to use root manager to move files from internal sdcard to external.
Yeah, that's the problem. At the moment, I don't have an SD card to put in it, but I was still expecting the internal storage to be mapped to a hard drive. I don't mind the Xoom showing up as a PMP but a lot of the apps I use as a developer (and some I use recreationally) need an actual drive letter I was hoping that even without an SD card mounted, that the internal storage would show up as a local disk. I've got 3.2.2 if that helps any.
Bought several SD cards, seems one of the contacts on the inside is dead, so I'm out as far as SD cards are concerned
LycaonX said:
Bought several SD cards, seems one of the contacts on the inside is dead, so I'm out as far as SD cards are concerned
Click to expand...
Click to collapse
If that's the case, you got a bad deal. Generally, the Xoom is excellent and though you can work around it, having the sdcard feels pretty essential to me. Hopefully you can get it fixed or get your other tab back.
The contact wasn't dead, it had a piece of clear plastic tape over it (not intentionally, it was a corner of what looks like shipping or packing tape). Got a whopping 4GB SD card plugged in, shows up fine under /mnt/external1 but neither of them are showing up as drives in Explorer
I've got 3.2.2, 4G build (HLK75D), tried this with and without root, no luck with any config.
Edit: Okay, lots of searching later, and it seems Google thought it was a wonderful idea to not include such functionality with Honeycomb. I am extremely well versed in c++ but I have never written a driver before, but I will be downloading and studying the Windows Driver Development Kit and seeing if I can write a replacement driver specifically for the Xoom to create an MTP to Logical Disk bridge driver.
In effect, you'll replace the standard Windows MTP Driver for the Xoom with this custom driver, which will bridge MTP to a lettered drive in Windows Explorer. Yeah, I know it's a complicated step but I want my damn Xoom to have drive letters in Explorer and as a programmer, I usually end up solving my own problems when the software giants pull retarded stuff like this.
LycaonX said:
The contact wasn't dead, it had a piece of clear plastic tape over it (not intentionally, it was a corner of what looks like shipping or packing tape). Got a whopping 4GB SD card plugged in, shows up fine under /mnt/external1 but neither of them are showing up as drives in Explorer
I've got 3.2.2, 4G build (HLK75D), tried this with and without root, no luck with any config.
Edit: Okay, lots of searching later, and it seems Google thought it was a wonderful idea to not include such functionality with Honeycomb. I am extremely well versed in c++ but I have never written a driver before, but I will be downloading and studying the Windows Driver Development Kit and seeing if I can write a replacement driver specifically for the Xoom to create an MTP to Logical Disk bridge driver.
In effect, you'll replace the standard Windows MTP Driver for the Xoom with this custom driver, which will bridge MTP to a lettered drive in Windows Explorer. Yeah, I know it's a complicated step but I want my damn Xoom to have drive letters in Explorer and as a programmer, I usually end up solving my own problems when the software giants pull retarded stuff like this.
Click to expand...
Click to collapse
Cool. Let us know when you've got it. I'm sure there will be interest for such a driver.
Just an update, the MTP side of the bridge appears rather simple to do. I may see why Google decided on MTP instead of the old unmount/mount dance. MTP allows the device to basically 'share' the storage without isolating it to a single device. Although if a hobbyist programmer like me can feasibly believe that they can program an MTP bridge, I don't see why the college educated, career programmers at Google couldn't do the same.
Basically what I am looking at is a driver that will bridge the MTP side of the Xoom over to a virtual hard disk device in Windows. It looks like I'll need to implement a way to present the virtual drive as a FAT32 (or maybe NTFS) formatted device, since software-wise all a virtual disk handles are pointers to what amounts to the 'raw' areas of a disk. Still working on it, as mentioned before I'm a hobbyist and have never dug into driver development.
LycaonX said:
Just an update, the MTP side of the bridge appears rather simple to do. I may see why Google decided on MTP instead of the old unmount/mount dance. MTP allows the device to basically 'share' the storage without isolating it to a single device. Although if a hobbyist programmer like me can feasibly believe that they can program an MTP bridge, I don't see why the college educated, career programmers at Google couldn't do the same.
Basically what I am looking at is a driver that will bridge the MTP side of the Xoom over to a virtual hard disk device in Windows. It looks like I'll need to implement a way to present the virtual drive as a FAT32 (or maybe NTFS) formatted device, since software-wise all a virtual disk handles are pointers to what amounts to the 'raw' areas of a disk. Still working on it, as mentioned before I'm a hobbyist and have never dug into driver development.
Click to expand...
Click to collapse
I forgot that Team Tiamat had implemented usb mass storage in an earlier verion of their Xoom kernel, but decided to remove it as it caused many complications. Look in the back pages of the Development section, for tiamat kernels and also dinomite's mass storage watcher thread. You may be able to find something you can use.

[GUIDE] MTP and PTP (Media Transfer Protocol) vs UMC (Mass Storage Class)

Here I will post the advantages and disadvantages of the two.
Advantages of UMC
UMC works at block level. It means that you access the partition from the operating system like if were local, and you have complete control of it.
For the previous reason, UMC keeps timestamps for files and folders. This is specially important for pictures, photos or videos that don't have EXIF, where you rely on file creation or modification time to arrange them and to know when were taken. MTP sets for all transferred files current system time, thus overwritting the real creation or modification time and ruining your gallery.
UMC allows the use of recovery software (Recuva) or partition software (Easeus Partition Master) and even format with a different filesystem. Without UMC you have to use android side software that usually is less powerful, needs a rooted phone, etc.
As you have total access to the partition, you can access all files there, even hidden, system, etc. With MTP you only have access to the files that the controlling operating system (android) wants. For example, with MTP, files starting with dot (.file) are not accessible. Some file formats are not allowed.
UMC is compatible with any operating system that allows connecting a FAT32 / exFAT pendrive, while MTP requires specific support. Linux and OS X may have built-in support or not.
With UMC you directly access the files, so modification is instant, and viewing. On the other side, with MTP you download it, modify it and re-upload the edited version, but you never do it directly. Even to play files you need to completely download it first. Imagine downloading a 5 GB MKV.
UMC is always the same, while for MTP there are several implementations: MTP, MTPZ (Microsoft Zune), Sony SonicStage, Apple DMAP.
UMC is faster than MTP because requires less time to initialize transfer, but isn't that big difference for an average user. The higher the number of files to be transferred and the lower the size of each file, the higher the ratio MTP/UMC.
Advantages of MTP or PTP
In MTP mode, the android device controls the input/output to the filesystem, so there is no risk of data loss because of cold disconnecting the device from USB. You work on a layer over the filesystem. With UMC you must be careful.
MTP allows you to use the sdcard from both the android phone and the computer at the same time, even to any desired number of them. On the other side, with UMC you only can do it from a device at a time, meaning that you have to unmount the sdcard from the android to view it on the computer, stopping apps, etc. Of course there are software that can force viewing UMC from both sides, but is a highway to corruption.
MTP does not show the native filesystem to the computer (it uses a hierarchery simulated by the MTP driver), so it will always be compatible. For example, on devices with the same partition for data and sdcard (like Galaxy Nexus, Galaxy S3) you are writing from the computer to an ext4 partition and you don't need windows to support it. The same if the device partition were in any imaginable filesystem, the MTP will show you it in a standard hierarchy. On the other side, with UMC your local operating system (windows, linux, mac) must support natively the filesystem of the partition or download some software that allows you to do it.
With MTP you use all capabilities and disadvantages of the device filesystem. If the filesystem is in ext4 you can copy files over 4GB to the device, that you couldn't in UMC mode because usually it will come formatted in FAT32, that is the most compatible fs for all operating systems.
MTP enables Windows Media DRM, UMC doesn't.
MTP allows the use of password for accessing the files (on compatible devices). On the other side, with UMC, of course you could use powerful tools like TrueCrypt, but you need the corresponding software on android that reads it.
How to preserve timestamps
- Use File Timestamp app. Root is required, and works recursively too.
- Use Mass Storage Mode when possible.
- zip or tar the files when sending them to the phone or receiving from.
- If the device has external sd, you can use it as a man in the middle.
- samba (smb protocol) allows preservation of timestamps, however applications for android don't support it.
- FTP allows preservation of timestamps, however applications for android don't support it.
- NFS allows preservation of timestamps, however couldn't get any application for android working properly (Servers Ultimate Pro).
- Rsync allows preservation of timestamps, however couldn't get any application for android working properly (Servers Ultimate Pro).
- adb push and pull does not preserve timestamps. Furthermore doesn't work recursively with folders.
- MTP does not preserve timestamps.
- Cloud services like Google Drive, Dropbox, etc. usually never preserve timestamps.
Questions and answers
Is possible to implement MTP on "put here your device"?​Possibly yes, if has USB. MTP works on software side, so updating your rom or installing a new one will do the job
Is possible to implement UMC on "put here your device"?​That depends on hardware mainly. If the internal sdcard and the data folders belong to the same partition, you can't. The reason is that you can't enable access to a part of a partition at block level, the whole or nothing. This is the case for Galaxy Nexus and Galaxy S3, in order to take advantage of all space, and discard the case where you have filled a partition and the other plenty of space.
Dan Morill said:
It isn't physically possible to support UMS on devices that don't have a dedicated partition for storage (like a removable SD card, or a separate partition like Nexus S.) This is because UMS is a block-level protocol that gives the host PC direct access to the physical blocks on the storage, so that Android cannot have it mounted at the same time.
With the unified storage model we introduced in Honeycomb, we share your full 32GB (or 16GB or whatever) between app data and media data. That is, no more staring sadly at your 5GB free on Nexus S when your internal app data partition has filled up -- it's all one big happy volume.
However the cost is that Android can no longer ever yield up the storage for the host PC to molest directly over USB. Instead we use MTP. On Windows (which the majority of users use), it has built-in MTP support in Explorer that makes it look exactly like a disk. On Linux and Mac it's sadly not as easy, but I have confidence that we'll see some work to make this better.
Click to expand...
Click to collapse
Sources:
Easy UMS, USB Mass Storage and Media Transfer Protocol – XDA Developer TV
DifferenceBetween: Difference Between MTP and MSC
Directions on Microsoft: What is MTP?
CrackBerry: On startup - Media Transfer Protocol
Ice Cream Sandwich supports USB mass storage after all, Galaxy Nexus does not
Issues and questions:
[Q] Hidden folders through Android MTP
Nexus 4 not showing files via MTP
[Q][MTP] Certain files/directories hidden to windows file manager?
Connecting to PC files are different!
MTP and hidden files
[Q] Hidden files and MTP/Windows
[Q] Do the S3 still using 2gb partition for data and 12 as virtual sd?
Just got meself a Nexus 7... But!
Upload to dropbox: file timestamps should be preserved
Android File Transfer - For Mac users only
Thanks for this guide !
If I understand this correctly, then devices like the Asus Transformer Eee Pad (TF300T) which has a 16GB or 32GB internal storage, PLUS a microSD card (and standard SD card slot when docked) could use UMC, if the manufacturer made it so (which they haven't), right?
invertedskull said:
If I understand this correctly, then devices like the Asus Transformer Eee Pad (TF300T) which has a 16GB or 32GB internal storage, PLUS a microSD card (and standard SD card slot when docked) could use UMC, if the manufacturer made it so (which they haven't), right?
Click to expand...
Click to collapse
The UMC should appear then for the microsd, which you can physically remove from the phone, plus the dock if existent.
For the 16/32 GB internal storage it depends if there is a dedicated partition for internal sdcard. Check it for the Eee Pad.
Well, then I assume(?) Asus were lazy or just didn't think to give us the choice, cos I only have MTP or PTP mode. I miss UMC.
invertedskull said:
Well, then I assume(?) Asus were lazy or just didn't think to give us the choice, cos I only have MTP or PTP mode. I miss UMC.
Click to expand...
Click to collapse
Well, assuming that you have your device rooted and with busybox, can you post the output of these three commands
Code:
ls -lR /dev/block
Code:
mount
Code:
su
parted /dev/block/mmcblk0
print
scandiun said:
Well, assuming that you have your device rooted and with busybox, can you post the output of these three commands...
Click to expand...
Click to collapse
Sorry, I don't have it rooted. I have been asking around if rooting / unlocking the TF300T would give me the option for UMC, but pretty much everyone told me chances are zip.
invertedskull said:
Sorry, I don't have it rooted. I have been asking around if rooting / unlocking the TF300T would give me the option for UMC, but pretty much everyone told me chances are zip.
Click to expand...
Click to collapse
Rooting can't change that because it's hardware implemented. You can't do anything about it. Probably the Eee pad transformer doesn't have a dedicated partition for sdcard.
A quick way to check it is see if the free space for the sdcard and the userdata is exactly the same, and is always like that no matter on which of the two partitions you write.
About the issue anyway, modern phones like Galaxy S3, Galaxy Nexus, Galaxy Note and probably newer like Nexus 2 and Note 2 won't have it anymore, it's just the way to go because takes all the advantage of the free space on the device. It will be the standard from now on.
EDITED:
If you want UMS on devices that don't have it, you can use DriveDroid from market (there's both free and paid). With it, create a blank file that will be used as "partition". Then you can connect your phone to your computer and put there the songs you want. Then do the same in the car. For example, in my Nexus 7 I've created a 2 GB file which serve for that purpose (takes a while when is big).
http://forum.xda-developers.com/showpost.php?p=39203658&postcount=21
I have 20.71GB free internal, and 1.89GB free on the mSD card. :/
invertedskull said:
I have 20.71GB free internal, and 1.89GB free on the mSD card. :/
Click to expand...
Click to collapse
Because the mSD is another sdcard, different than the internal, in case it has it.
Would be great if you could get the partition scheme as I requested before, or ask for it, to definitely rule it out.
scandiun said:
Because the mSD is another sdcard, different than the internal, in case it has it.
Would be great if you could get the partition scheme as I requested before, or ask for it, to definitely rule it out.
Click to expand...
Click to collapse
Is this what you need?
when i connect my device with computer(MTP conection), i saw 1drive appear, then i go inside, i saw 2drive(iternal&external with how many free space left), go inside again always empty... how to use it?
I get that also. Just go into either one (internal or external) that you want to copy your files to and do your stuff.
invertedskull said:
Is this what you need?
Click to expand...
Click to collapse
More or less. The internal sdcard and the external (microsd) are different, one has 27.15 GB and the other 29.80 GB.
Click in the More... and see if you have UMC for the external microsd
scandiun said:
More or less. The internal sdcard and the external (microsd) are different, one has 27.15 GB and the other 29.80 GB.
Click in the More... and see if you have UMC for the external microsd
Click to expand...
Click to collapse
Nope, I only have MTP or PTP. This makes me sad.
Of UMC, MPT, and PTP, which is the most benigh?
I don't know if this is the best place to ask my question, but at least you all seem to understand this all pretty well.
I plug my phone into my PC to just use ADB. Under Gingerbread, I would select "Charge only" as my USB connection type.
With ICS, there is no longer the "Charge Only" option for an USB connection to a PC. I have to pick UMC, MTP, or PTP.
Given I really don't want to use any of those, just ADB, which of the three is the most benign one?
WaltA said:
I don't know if this is the best place to ask my question, but at least you all seem to understand this all pretty well.
I plug my phone into my PC to just use ADB. Under Gingerbread, I would select "Charge only" as my USB connection type.
With ICS, there is no longer the "Charge Only" option for an USB connection to a PC. I have to pick UMC, MTP, or PTP.
Given I really don't want to use any of those, just ADB, which of the three is the most benign one?
Click to expand...
Click to collapse
Either the MTP or PTP are the safer ones. There is no possibility to select "none" like was possible in previous version as you say. The UMC has the disadvantage that if you activate the Mass Storage usually the /sdcard won't be available from ADB commands.
Anyway, the ADB is separate from those options. The ADB option is usually found under Developer options. You can use adb with any of the options you say.
Thanks a lot very very helpfull!
oops, delete post. wrong window lol
scandiun said:
Rooting can't change that because it's hardware implemented. You can't do anything about it.
...
About the issue anyway, modern phones like Galaxy S3, Galaxy Nexus, Galaxy Note and probably newer like Nexus 2 and Note 2 won't have it anymore, it's just the way to go because takes all the advantage of the free space on the device. It will be the standard from now on.
Click to expand...
Click to collapse
I thought I would let you (and anyone else reading this thread) know that your post here is wrong. It's not "hardware implemented" in the sense that these two protocols are software implementations of data transfer. In fact, in many cases, even where there is NOT a microSD card that is mounted as a separate partition from system/data, the UMS/MSC (USB Mass Storage Transfer/Mass Storage Class) can still be implemented by this procedure:
1. Root (and optionally flash a custom ROM, that can be easily modded)
2. boot into alt OS, such as Recovery or OS from alt. source (USB OTG?)
3. Partition such that you have the required "separate partition"
4. add kernel modules/libraries you want and will need for UMS/MSC
5. Boot up and enjoy UMS/MSC as well as MTP (if you don't mind crappy speed)
Done.
Also, regarding MTP/PTP (Media Transfer Protocol, which is actually different from Picture Transfer Protocol), being a future replacement for all "modern phones", I am not so sure. It is designed for that indeed, but the Android community is different from most others. I will personally be going out of my way in the future, to ensure all phones I buy have removable uSDcard slots, as long as I can still find them, because it makes recovery in a bind, much easier (like, if there's a problem establishing communications with a computer, and numerous other possibilities). There's nothing like popping in a 32 or 64 Gig card of movies, training videos, eBooks, etc., within 10 to 20 seconds, vice the hours it will typically take to transfer even 5 Gigs of videos over the MTP protocol. Again, I don't like programs handling all my media for me. I prefer to see the files where they live (a higher fidelity simulation, is afterall, a hallmark property of how sharper minds represent reality, and abstractions from it are always mere shortcuts we use in a hurry). You got an easier method to rapidly check file hashes on your phone, from your laptop? Think of it this way, saying that MTP will "replace" UMS, is like saying Apple will replace Linux.
Regards,
Paul
:good:

[Q] I hate MTP

I hate MTP and I want UMS back. Is there anyway to do this?
God I really hate it so much
Nope, its implemented in the kernel. Under android MSC is called UMS (USB Mass Storage). It is implemented up to android 2.3.5 (Gingerbread) but not thereafter.
One major change introduced by Google in Ice Cream Sandwich was the use of MTP to transfer files and a unified memory storage structure In the pre-ICS era, Android phones had their internal memory divided into two partitions. One for installing apps, and the other one for all your storage needs.
With ICS and Galaxy Nexus, the whole internal memory was unified. There were no more partitions, which meant that the whole 16GB (13.3GB actually) could be used for installing apps or for storage purposes. While all this sounds good on paper, the use of MTP to transfer files has created a big nuisance for all Android users.
Read more at http://techie-buzz.com/android/sgs3...ode-to-the-galaxy-s3.html#lhUs1f4vBApWLqiQ.99

Categories

Resources