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

The sky is not falling: [External Blues: Google Has Brought Big Changes To SD Cards In KitKat, And Even Samsung Is Implementing Them]: http://www.androidpolice.com/2014/02/17/external-blues-googl...

Summary:

All apps (even ones without external storage permissions) can now read and write from a designated private folder on external storage.

There's a new sharing framework called the Storage Access Framework that can be used to request access to other folders, which treats external storage in a manner similar to cloud storage.

It might be a harsh transition, but not completely surprising since it's been quite a while since Nexus devices have had external storage slots, and it's been quite obvious for a while that Google has been discouraging external storage.

The hopeful takeaway is that Google will be relaxing this discouragement now that they've figured out a strategy for external storage moving forward.




1. launch all flagship phones without sd slot to force use of gdrive

2. everyone buys other companies (budget?) phones because they have more features (eg sd card slot)

3. break that in software (because they can) so that feature is not "missing" on the flagships anymore.

4. instead of just removing, make the functionality be yet another entry point to gdrive by making the sd write api be analogous to the cloud write one.

google only fear to not fuck up like that was something like cyanogenmod, but, well...


On the contrary, the Storage Access Framework is an awesome development and how Google should integrate more of its play services: by having a provider agnostic API that fits their service as well as any other.

Anyone can be a SAF file provider by implementing the interface, and it's as easy as Intents to switch between them. It's silly to have "external" storage with special behavior at this point. Storage should act like storage, and apps should access that data consistently, without users having to remember which storage they're using for any particular purpose.

https://developer.android.com/guide/topics/providers/documen...


However, this new infrastructure precludes file management apps.


I don't see why you couldn't have a file management app that uses the new storage access framework to access external storage in the same way as online or internal storage - shouldn't it just be a matter of switching to the new API?


No, the Storage Access Framework does not expose the filesystem. All access is through DocumentsProvider implementations in the various apps that you have installed. WRITE_EXTERNAL_STORAGE now grants read-only access to secondary storage, and only system-level apps can request the WRITE_MEDIA_STORAGE permission that is necessary for read-write.


Hm, is there no system-level app installed by default that provides an implementation of DocumentsProvider that provides read/write access to the external SD card?


The entire card? No. The MediaStore provider provides access to the standard media storage directories (DCIM/, Music/, etc) and each individual app may provide a DocumentsProvider for their private storage (/data/<your.app>/ or whatever they've moved it to).


There's no write in the new API. Only read:

"The SAF makes it simple for users to browse and open documents, images, and other files across all of their their preferred document storage providers."


That's not true, you can ask any DocumentsProvider to delete or edit a file resource given a valid URI. Whether or not the DocumentsProvider that owns the resource will acknowledge your request is up to the DocumentsProvider.


At this point in my life; I am ready to challenge any design team of any mobile device which decides to leave out expandable [micro]SD storage to a bout of the fisticuffs.

There is absolutely NO reason any mobile device should lack this. [This is ESPECIALLY aimed at Mr. Smug; Ive]


How else would they up sell to the 64GB model? What if a device I bought 3 years ago could be still relevant by just upgrading an inexpensive flash card?

Not only is so restrictive as to be insulting, it harms the environment by forcing devices to die a premature death, I know my iPad 1 would be a whole lot more useful with a 64GB SDHC card in it.

I was super stoked to buy a Google Nexus tablet, after finding out there was no SD card slot, I forever declined that purchase.


Hear hear. I'm still using a nexus One. ONE.

now, had i been using stock image on that device... first it would be full of crapware that i couldn't uninstal. and since the available space is something like 250mb for apps, i wouldn't even be able to install 2 apps.

now, i've spent $500 on it. why should i already replace it if it does exactly what I need? just so i can have NFC? ha! no SD? ha! even less, non replaceable, battery life? ha! (i use an extended SEIDIO battery). no trackball with extremely visible and customizable full color alert led? ha!

the only thing it misses is a better screen some time. but i like the size, so i won't be switching to a fullHD phone with a phablet screen size. to fix it. Also the OLED screen is awesome to read at night. Ironically because of software, by features REMOVED on android after 2.3. on 2.3 on my custom roms i can have smart inverted colors in the browser. I don't have to choose between white on black pages with inverted images or bright pages with correct color images. i can have both! Also i can enable night mode render effects. Good lucky doing any of that on your shinny nexus 5.


I have a Galaxy Nexus that is barely supported by Google now, and its just a little over 2 years old. Going to recycle it and buy a Nexus 5.

I'm just a bit too old (31) to care anymore. No SD card? Whatevs. I'll use Dropbox/Evernote/Amazon's MP3 Player with wifi to get whatever I need onto the phone.


sadly, you are probably the norm nowadays. a shame.


If you somehow get Mr. Ive to accept your challenge, please make sure you get good video of the event.


You've got it the wrong way around.

There are less and less reasons as to why devices need physical external storage.


No, there are more and more reasons...

(1) We have more and more things we'd like to carry with us that take up more and more space.

(2) Fewer and fewer people in America and other countries have unlimited data plans.

(3) Lots of us take things like subways which have no internet access.

(4) Cloud privacy is a disaster thanks to the NSA, poor security implementations at cloud companies, regular intrusions of providers, regular intrusions of network infrastructure (example: ASUS and Netgear routers), etc

(5) Obscene markups of memory sizes above base by manufacturers

(6) Inability of consumers to get many phones with more than 32GB of storage and artificial limiting of supply on some providers (see: the incredibly stupid decision to make the HTC One 64GB an AT&T exclusive)

(7) etc etc

Yes, Google wants you to use the cloud and have everything in your Google Drive. For most of us, it's a bad idea from a financial, convenience and privacy perspective.


Maybe also add a floppy drive to the requirements. And RS-232.


What is the max capacity in micro SD cards could you fit in the physical volume of a 3.5" floppy?


tl;dr: "Bloody loads"

According to [1], a 3.5" floppy has a volume of 27828.9 mm^3 whilst the volume of a MicroSD is 132 mm^3. That's a ratio of 210. Biggest MicroSD I can find that's commonly available is 64GB; that gives you

    (27828.9/132)*64GB = 13492GB or ~13.5TB
Which is an astonishing data density when you eventually wrap your head around it.

[1] http://www.fileformat.info/media/measurements.htm


Cheapest MicroSD 64GB I can find is GBP36.98 which makes that 13.5TB a mere GBP7,765.8. Compare with 3TB drives at GBP87.12 (the current sweet spot) - 13.5TB would be GBP392.04 (~20x cheaper).


I'd take a serial port...


This may make sense for sensitive data, but it's a massive attack on independent media players.

Can't write, edit, or move files. No downloads. No music sync. No file renaming. No editing of mp3 metadata.

Only walled gardens allowed on the new Android "open" platform.


Sure they can, just not the MP3s that belong to another application. Each application can put its own private data on the external storage.

Most of the people here don't get how scary external storage was with Android. Every time you install an app with the android.permission.WRITE_EXTERNAL_STORAGE permission you have to worry about what it will do to every other applications data. Some apps (like file managers) need this but letting every app that wants to write data to external storage have the ability to trash every other apps data is just crazy. The private app directories on external storage is a MUCH better approach.

And if you want to install apps that can trash other apps then I'm okay with needing root for that.


So every music player must store a unique copy of a music library? That's ABSURD!

Are there bad apps? Sure, but PCs have had this problem for years and there hasn't been the kind of meltdown you describe.

The problem isn't insecure SD storage. It's bad apps using sensitive data and not storing it securely.


Suppose I was previously using Media Player X and decide to try new Media Player Y. How does Media Player Y access the MP3s that were previously accessible to X? Likewise, if I uninstall X, will my MP3s disappear?

As far as user expectations go, MP3s, videos, word docs, and a whole slew of other file formats don't and shouldn't really belong to any application.


The person you responded to neglected to mention Android's MediaStore provider, which can store common media in various standard directories on the SD card (like /DCIM and /Music), which has been the standard storage mechanism for media since 1.0 and is still available in Kit Kat.


MediaStore is a database, not a file system. It doesn't move, write, or "store" files. It just reads:

http://developer.android.com/reference/android/provider/Medi...


How naive you are!

MediaStore is actually an unholy hybrid of database and filesystem. If you assume the data is entirely in one or the other (I mean, you didn't expect it to be consistent with itself, did you?) your code will break in different ways on different devices, since for some reason it's a favourite area of the manufacturers to play with.


No, it is a ContentProvider with a database-like API to which you have linked. The various system DocumentsProvider instances read and write to this provider.

This is also the standard API you access through ContentResolver, and this is still present in Kit Kat.


    MP3s that belong to another application
sorry???

Since when mp3 (or any media files) should belong to applications???

That data is the user data, it's not tied to a specific application.


centralized data should be accessed using a content provider https://developer.android.com/guide/topics/providers/content...


So a content provider is a really shitty non-hierarchal file system. I don't see that as an improvement. What about backup/restore apps? Those want to save and restore everything.

File systems are the worst general-purpose way to access data, except for all the other ways.


And if you want to download your Amazon mp3s but play them with a player that doesn't suck?


File managers may be out, but photo apps might be OK: they just need to somehow request full access to /DCIM through this new API (which I have not looked at). music & video players may be more awkward but possibly doable.


So moving from Android to iOS will be less painful in the near future. I think traversing the whole filesystem and adding a big SD Card are key features in Android devices.

If Apple launches a device with a bigger display they will eat part of the Android ecosystem.


or if/when amazon releases a phone based on their android fork..


At the end I would prefer to run a full desktop operating system with a mobile UI in the device.


And how you know this is a bullshit play to mess with SD cards specifically is right here:

>With WRITE_EXTERNAL_STORAGE, they also have:

> - Read and write for any public folder on the primary (built-in) storage

> - Read (not write) for any public folder on the secondary (SD card) storage

If this were really about security, why does the built-in storage let you write everywhere but the sd card not? It's not about security. It's about forcing you into the cloud. And there are a ton of reasons not to (privacy, financial aka bandwidth, lack of access on subways and similar, etc).

With every release, Android is less and less of an operating system that I recommend to friends and family. Openness and expandability were some of the key selling points and they're both going bye bye.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: