New Android Boneheaded Design Decision – MTP Transfer Mode Instead Of USB/UMS/MSC Mode

On my old Android phone (Mototola Droid 3), when I plugged my phone into the USB port, it mounted as an external HD, giving me a drive letter and full filesystem access. My new Samsung Galaxy S4 does not do that.

It took me awhile to realize this was an “enhancement” to the Android OS, and not a defect in my phone or the way I wa a using it.

For the old Android phones, I was using what’s called USB/UMS/MSC mode. That lets me mount the phone’s SD card as a full Windows drive. I get a drive letter. The SD card is inaccessible on the phone while it’s plugged into my USB port.

Theoretically, I could edit the SD card contents and mess up my phone, while it’s plugged into the USB port.

The new Android phones support MTP Transfer mode instead of USB mode. What’s the difference? I can still access the SD card while it’s mounted in Windows. However, I don’t get FULL access to the phone’s storage, only the bits that the Android OS chooses to allow. (Basically, I have access to everything except the protected OS directories.) Also, I don’t get a drive letter. Instead, it’s mounted as a generic Windows drive.


On the old Android phone, I could open a text file in notepad (usually blog drafts), and then save them directly back to the phone.

With my new phone, I can open a text file in notepad. However, I CAN’T DIRECTLY SAVE IT BACK TO THE PHONE. I have to save it as a file on my local PC, and then copy it over to the phone!

However, I’m not sure if this is a bug in the Android OS, or a bug in Windows, or a combination of the two. I should be able to open a file in notepad, edit it, and save it directly back to the phone.

By removing USB mount mode and switching to MTP mode, I lost one of the big uses of my phone, easily preparing blog drafts! Now, I have to edit the file, save it to my PC, and then copy it back to the phone!

I also have a warning for any Samsung Galaxy S4 users. DON’T INSTALL THE DRIVER THAT COMES WITH THE PHONE! I tried that, and I wasn’t able to connect the phone via USB anymore! Instead, use the default Windows 7 driver.

9 Responses to New Android Boneheaded Design Decision – MTP Transfer Mode Instead Of USB/UMS/MSC Mode

  1. Hi FSK,

    I got a quick question. I just got a resume-consent form from a recruiter. Should I sign or not? Basically, it seems like a commitmenty type of document saying that if I want to work for corp X, I need to work with recruiters at company Y…

    Now, this whole deal smells… I know…

    But what would you recommend? Go with their little plan?

    • AC: It could be an Android bug or it could be a Windows bug. All I know is that it worked on my Droid 3 and it doesn’t work on my new phone.


      As long as the consent form mentions ONE SPECIFIC CORPORATION, it’s OK to go ahead and sign it. It also should be time-limited (1 year). Basically, the headhunter is trying to avoid a fee-fight, if another headhunter tries to submit you to the same position.

      If the consent form does not mention a specific corporation, don’t sign it, because it’s a blank check that could prevent you from applying to other jobs. If it isn’t time-limited, you shouldn’t sign it, in case you try to work directly for the corporation a few years later via other means.

      However, this step is unnecessary. The fact that the headhunter is asking you for it is a tipoff that he’s clueless.

      Do you have any contacts already working at that corporation? If you do, don’t sign it. If you don’t, then you’re not giving up much.

      I’d sign it, but don’t expect anything out of it.

      Even if you do get a job at the corporation via other means, if the hiring manager likes you, he’ll go ahead and pay the headhunter fee. Headhunter fees usually come from a different budget than salaries, assuming it’s a large corporation.

  2. Anonymous Coward June 12, 2013 at 4:47 pm

    Google purchased the Android operating system from an external company rather than writing it themselves. Android itself is based on Linux.

    Google only hires the very best computer scientists (cough!). I’m sure the problem is at your end.

  3. Recruiter: “The hiring manager insists on a PHP test, just because he’s not very technical. It should take you 1 to 3 hours.”

    Neither is the recruiter.


    • This is for a position of a “senior” PHP developer… it would be assumed that I know most of the stuff associated with this stuff…

      • Lately, my policy has been to refuse such tests out of principle. Whenever I take the test, it never leads to an interview. The test is a sign that hiring manager and headhunter are both clueless.

        For one recent interview, I took the technical test, they told me I passed, and I still didn’t get an on-site interview.

        If you have a couple of hours to waste, go ahead and take the test. I doubt you’ll get an interview, an offer, or if it’s someplace worth working.

        Another rule of thumb is that it’s a bad idea to work for someone so clueless that he can’t realize he’s getting good value from you as an employee.

        I’ve already covered this a lot elsewhere. A technical test is an insult to someone with a lot of experience and with a CS degree from a top university. A competent hiring manager should be able to evaluate someone by talking to them for a few minutes. If he isn’t willing to invest a few minutes evaluating you, given your experience, then he isn’t worth your time.

        However, given how bad the job market is, there are plenty of people willing to jump through the hoop. If you refuse, you’ll be labeled “not a team player”, and they won’t feel bad about rejecting you.

        • Anonymous Coward June 13, 2013 at 2:21 pm

          A few months ago I decided I shouldn’t be so cynical and I did a programming exercise for a company who advertised on JoelOnSoftware. From experience, the programming exercise seemed like real work rather than a programming exercise. Usually programming tests are very academic or about some silly thing like triangles or sorting etc.

          Anyway I wasted at least half a day to a day doing the programming exercise. I tested it thoroughly. It was a parser and it worked perfectly.

          I emailed it to the manager in the evening. The manager previously had talked to me a few years ago and he remembered my email address. He asked me to apply for the job.

          The next morning I got a rejection email. I asked him several times what was wrong with the software I wrote. He couldn’t come up with one thing.

          It was strange because I was forewarned of the job post and the job post would have only been up 8 hours before I got the rejection email.

          As such the manager rejected someone 8 hours after the job was publicly posted and this person (me) got a perfectly correct solution. It is likely I was the only applicant at that time.

          I suspect the manager wanted a free parser written. I guess a lot of programmers couldn’t have done this kind of work.

          So even though it sounds bad, FSK is absolutely right. A lot of job postings with pre-interview tests are a complete waste of time.

          I’ve heard Google has wasted a lot of peoples’ time with interviews. Some people say they were only offered contract work, with a low salary, or at the wrong location or simply Google rejects so many candidates (false negatives) that they expect you (and some employees state this publicly) to apply on three different occasions. Who has that amount of time to waste?

          If you did well in the first set of interviews and didn’t get a job offer for a non-technical reason making you go through the whole process again when they know you are good, is a waste of time.

  4. Do you know if this is an Android issue or a Samsung issue? Maybe switching to the Google version of Android would fix this?

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>