Hacker News new | past | comments | ask | show | jobs | submit login

Tangentially related - I've always thought it's dumb that I can't just plug my iPhone in to any PC and have it show up as a removable storage device.

I'm sure people who know more than me will give me a list of great reasons why it's not straightforward to implement...

But it doesn't change the fact that I have this incredible device (iPhone X) with 256gb of blindingly fast NAND flash storage, of which I am only utilizing 30gb, yet I still have to tote around a f*ing stupid little plastic USB dongle if I want to copy some files around.






> I'm sure people who know more than me will give me a list of great reasons why it's not straightforward to implement...

Nah, Android phones have done this forever, it's not technical difficulties stopping it from working. It's The Apple Way. They don't want you using your phone that way, or something.


Android phones don't do this anymore, for the technical reason that allowing a computer to mount a filesystem directly requires that the phone unmount it. Mass storage expects a block device, so there's no wrapper that one could provide that would make this work with the native filesystems of the phone.

What could be done is to dedicate a file on the phone as block storage, and expose that as a mass storage device. This would suffer from the same problem (of the phone not being able to access it at the same time), but if it's dedicated "flash drive emulation" space then perhaps this behavior won't be as surprising to the user.


Android phones show up as MTP devices, which are basically file-level storage instead of block-level storage. Most OS's (besides MacOS) will display this with the same interface as a USB mass storage device.

MTP is super buggy tho. Sometimes I can get it to work, sometimes I can't. Thought it was the fault of GNU/Linux on the desktop, but I've heard similar stories from Windows users. Most people I've spoken to are just annoyed about MTP.

As a possible explanation for this issue, I think that if you use the internet to share data, it's more likely that Google makes money from some of the interactions (either via ads in the app or via play store tax or idk because the service is hosted in GCP or whatever) than if you used an internet-free method, so Google doesn't prioritize bugfixes that would hurt their revenue. Edit: would love to be proven wrong though!


MTP is a horrible protocol which renders the abstraction very leaky in my experience, to the extent that it's inaccurate to refer to it as "removable storage" and expect to behave in similarly sane fashion to a proper flash drive. For example, there's no support for modifying a file in-place - the entire file must be read out, modified, and then written back. These kinds of restrictions render it slow and unreliable.

Wikipedia tells the sordid story: https://en.wikipedia.org/wiki/Media_Transfer_Protocol#Compar...


> MTP is a horrible protocol which renders the abstraction very leaky in my experience

Nevertheless, it's still removable storage that can take the place of the most common use case of portable flash drives: moving files around from one computer to another. Which is explicitly what we were originally talking about.

Pointing out that it doesn't work for some other use case that you yourself brought up doesn't make any sense. That's not what everyone else was talking about.


I'm not going to debate you in three places at once, that's just obnoxious and clutters the thread.

Ultimately this is an argument about the precise semantics of "removable storage". I don't regard an MTP device as "removable storage" - it's another computer that one speaks to using a special protocol, with severe limitations. So is an iPhone - with special, protocol-speaking software, you can certainly put arbitrary files on it. I interpreted the parent to mean that they wanted to plug the phone in to "any PC" and have it Just Work. MTP isn't so great at that, especially from my perspective as a Linux user, where MTP support is no more built-in than iOS-protocol support. From this standpoint, "removable storage" == "USB mass storage".

On the other hand, it sounds like whatever Apple provides is much worse even than MTP, and less well supported in general.


> Ultimately this is an argument about the precise semantics of "removable storage". I don't regard an MTP device as "removable storage"

This is absurd. You don't get to tell someone, "you're wrong", then later when it's pointed out that the original assertion was actually true, then say, "oh, I meant that you're wrong as long as we're using my version of the word, the one that's very different from the one everyone else was using."

Sorry, but that's blatantly disingenuous. The original context was very clear. If you really meant, "well it sort of works as removable storage in one sense, but not in this other sense" you should've just said that to begin with.


Well, I'm sorry to have upset you, and I hope that the precise technical situation is now clear to anyone reading this thread.

> Android phones don't do this anymore

They don't? Since when? I still have a Pixel 1 but it's running Android P, so the latest major version of Android, and this still works fine.


> allowing a computer to mount a filesystem directly requires that the phone unmount it

I don't think that's true. My S8 storage is mounted and accessible from my computer right now while at the same time playing music from the same storage. I can still take pictures/write to the storage.


As mass storage, or MTP? The distinction is why I qualified with "mount a filesystem directly". MTP doesn't do that.

You said "Android phones don't do that anymore", "that" referring to "have it show up as a removable storage device".

Pointing out that the protocol used is leaky or bad in some technical way doesn't change that Android phones do in fact show up as removable storage devices when connected to (at least Windows) PC's. Your original assertion was incorrect.

samcday even said they just wanted to copy some files around. You don't need to be able to modify files in-place from the PC to accomplish this.


UMS (USB Mass Storage) is a protocol. MTP is a different protocol.

Android devices don't support UMS anymore.


Argh! I just went through this with a friend's iPhone when he asked spur of the moment to have a video on his iPhone displayed on some monitors for a presentation. The monitors are driven by a Win10 computer. My first thought was to transfer the file from the iPhone with Bluetooth to the computer, but apparently an iPhone can't be paired in that manner. So lame. The video was too big to email, so I used send.firefox.com and uploaded the video to it, and then downloaded the video to the computer. Thanks to the iPhone's protective wall that little stunt cost my friend 200MB of cellular data. The computer didn't have iTunes, and there was no Lightning cable available so direct hardwired transfer wasn't an option either.

Not having a cable is hardly the same issue, iPhones let you easily share images and videos but not all files.

Beyond AirDrop which only works between like devices, how else can files on an iPhone be transferred to another device without iTunes, and without using a 3rd party? I'm not being adversarial, I really want to know.

I’m a little confused, you don’t want to use 3rd party apps (like a Microsoft app to interact with nearby MS stuff) AND you don’t want to use Apple 1st party apps?

It sounds like the only thing that would’ve satisfied you would’ve been for iOS to natively understand whatever the Microsoft system is for broadcasting videos? I agree it would be delightful if Apple and Microsoft could agree on a “I’m a short term drop-point” “send to any nearby open drop-point” API, but the absence of this doesn’t seem likely to be either Microsoft’s or Apple’s fault.

The Apple way to do this would’ve been to send an iCloud email. Apple Mail would’ve uploaded the file to a server, and a short-lived link would’ve been created, to avoid SMTP size limits.

Pretty much exactly what you ended up doing but manually via Firefox Send.


I don't understand your confusion. What I would like to see is the iPhone to support the use of its native Bluetooth radio to connect to another device with a Bluetooth radio and implement the native Bluetooth file transfer protocol. Why would I want to use a 3rd party app/program which incurs a data charge to download, and possibly an account setup which means information leakage.

> The Apple way to do this would’ve been to send an iCloud email

Since iOS 12 they also have a "copy iCloud link" share option that gives you a Dropbox-style file download page.


> Nah, Android phones have done this forever

Your only option today is MTP on Android, and it stinks.

At one time, Android did support showing up as a mass storage device. I know when I first got a G1, then the phone I had after that - both you could plug in, and they appeared as a mass storage device. Just like a USB thumb drive.

I don't recall if you could use the file system at the same time on both sides; I doubt it, though. This was never a problem for me. It just worked - just like a thumb drive.

Then something changed; I don't recall which Android version, but they gradually phased out the phone appearing as a USB drive, and started to phase in MTP. I recall MTP being absolute POS on Linux, barely workable everywhere else, and where it did work, it was slow.

It's gotten better over the years on all platforms, but it still isn't anything like it should be.

My theory on why they switched was to keep people from easily side-loading APKs, and backing them up easily, etc. I think it was all part of the battle to keep people from really owning their phones, keep them from rooting them, etc. The ever and ongoing battle in which nobody really wins, everything is left as rubble, and the results are futile, because if they lock things down completely, the people that want things open will just leave to create their own devices, and they don't really gain much.

As an aside - that's a direction I've been thinking about pursuing. There are now some relatively cheap 4G modules out there, and some open-source "phone" operating systems for the Raspberry Pi and other embedded controllers (with varying levels of "working-ness"). I'm just getting tired of not really owning my own phone, and I want to do something about it.

My current phone is an S7 (TMobile version) - and they've made it hard as heck to actually root; it seems like every time they come out with a way to do it, Samsung/T-Mobile updates to prevent it. I'm just tired of the whole cat-mouse thing; I want things completely open, even if it means I have to write my own apps.


> My theory on why they switched was to keep people from easily side-loading APKs, and backing them up easily, etc. I think it was all part of the battle to keep people from really owning their phones, keep them from rooting them, etc.

Or, more realistically, by having file access mediated by the phone, you can:

* have the filesystem available to multiple systems at once. If it's mounted as USB mass storage then it must stop being visible to the phone itself. That's not great, especially if there are apps etc. there. To not have apps there, you'd need to partition. That sucks. So, also...

* you can use any filesystem you want. You're not restricted to things like VFAT. By not being USB mass storage, you can run BtrFS if you're so inclined and not have Windows get upset when you plug it in.

* the phone is able to restrict what is seen by the computer. This is a security benefit. I don't want someone slurping my TOTP key database because I foolishly leave my phone unlocked somewhere.

Also, you can still root phones just fine if you buy one that isn't user-hostile.

So, there are solid technical reasons for the change that make things better for a large number of users (who, amongst your average user these days, really wants to plug their phone in to the computer to move files around? I'd estimate vanishingly few.)

> My current phone is an S7 (TMobile version) - and they've made it hard as heck to actually root; it seems like every time they come out with a way to do it, Samsung/T-Mobile updates to prevent it.

Well of course they do. a) they are use hostile, so they don't give you a path. b) because there's no official path, any method that does exist must be a security vulnerability. Do you want to have a vulnerable device?

Don't buy user hostile stuff and then complain that it doesn't let you do what you want.


> My theory on why they switched was to keep people from easily side-loading APKs, and backing them up easily, etc.

I bet it was simply to prevent having to implement FAT32 or some feature related to FAT and pay royalties to MS for that, like long filename support or similar.


Android and iOS user. I"m not defending it per say because the frustration of a real shell existing (I've jailbroken iOS and used it) but no access to it is real.

The argument from apple is even if you put a warning label on on a setting "allow filesystem access over SSH" for example, if you give users unmanaged file or other systems access, it will be exploited and in reality, what most users (or at least my mother and father) want is to just use their phone and never think about it.

It's fair not to like it and it may be wrong, but to imply that apple did it just to frustrate power users is either misinformed or dishonest.

Lastly there's a cool ios project https://github.com/tbodt/ish that gives you an emulated shell. Works pretty well.


this is an artificial apple restriction. other vendors allow you to do exactly this

Other vendors used to allow you to do this back when internal storage was vfat formatted but it's not been an option these days because Windows and Macs wouldn't have the file system drivers to read the storage.

This is why MTP was created. However MTP is - in my experience - complete garbage and creates as many problems as it solves.


Mounting MTP is transparent to the user on non-apple OSes as well. You can drag and drop files as you could when it was when mounting the VFAT block device. Its only on MacOS that this isn't handled gracefully.

So yeah, apple is only mobile you cant do this on at all, and apple is only desktop OS you cant access other phones that permit it on (without installing some 3rd party tool).

As an aside, I write this as an apple user (iphone, ipad, watch, macbook pro), and Im feeling quite infuriated thinking back on this.


I've used MTP and my experience is it that it leaves a lot to be desired regardless of the platform. My wife's Samsung phone never worked right with her Windows 7 laptop. Neither my Huawei nor the HTC handset I had before worked properly with any of my Linux machines either.

I get the point of MTP is that is't supposed to be a transparent (to the user) interface but my experience is it falls short by a long way of achieving this in practice.


Yeah, I agree - MTP is abominable on every device Ive used too.

I regularly do this to offload pictures and movies. I have even used my iPhone as a large USB drive.

But, they don’t let you access to full file system for some reason.


How do you do this on your iPhone? I, and others, are of the opinion that this cant be done.

Access to images and videos is read-only. So it can't be used like a USB drive.

Unrestricted access would probably mean that someone could take your phone and access your data.

Instead, there are these 3 ways to share files between your phone and other machines: https://support.apple.com/en-us/HT201301


Apple used to let you do this exactly with the iPod.



Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: