Not logged in
Log in now
Create an account
Subscribe to LWN
LWN.net Weekly Edition for May 23, 2013
An "enum" for Python 3
An unexpected perf feature
LWN.net Weekly Edition for May 16, 2013
A look at the PyPy 2.0 release
It's interesting story
Posted Jan 19, 2012 8:04 UTC (Thu) by khim (subscriber, #9252)
This is [relatively] long story. First you must recall that UMS (which is supported by older Android devices) is pretty scary protocol: it basically presents your device as a block device and computer can do whatever it wants with it, can corrupt any low-level data-structures, etc. This is why when you mount SD card as UMS in older devices it becomes unavailable for Android itself.
Now, when Android phones included physical SD card slot everything was easy and simple: because you've had the ability to remove SD card you, of course, had the ability to unmount it and then it can be exposed as UMS.
But on newer devices (with large flash but without physical SD card slot) this meant that you need to split large (16GB-32GB-64GB) flash in two separate pieces: one will be your "root partition" and another will be "the virtual SD card". Often vendors offered small (1GB-2GB) root partition and large SD card. And a lot of programs don't work correctly on SD card (because they need to run daemons^H^Hbackground processes, for example).
Now, ICS solved this problem. It supports mode (used on Galaxy Nexus, for example) where SD card is emulated using FUSE on top of a single large partition. Thus your "root partition" and "SD card" share the same space. Joy? Not fully: now you don't have block device to export via UMS.
And this is where GPL comes into play. Old PDAs also faced this problem long ago and often used simple and elegant solution: it presents itself to the computer not as block device but as network card. Complete with DHCP, etc. And "free for grabs" SD card is exported as SMB share. You can find your device in the "Network Neighborhood" as a computer with shared folder. Works great on Windows (starting from Windows95OSR2.1), MacOS X (all versions), Linux (almost all versions), easy, simple (for user, under the hood it's quite complex), fast and reliable (because while it's internally complex it uses well-debugged components designed and debugged long ago).
I've personally used this mode with my first PDA (aforementioned Zaurus) 10 years ago. But this way was closed becuase it needed Samba - and Samba is GPLv3 novadays.
Instead they went with MTP. Which is not even supported by XP "out of the box" (you can install additional package to somehow transfer files anyway). It's also is not supported by MacOS X "out of the box" and various Linux distributions have different kinds of problems when used with MTP.
Thus you are right: merging of partitions have nothing to do with GPL, but the problems which followed later (inability to use device as a [network] drive) are brought by unvillingness to rely on GPLv3 software.
Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds