While for contacts and location that would be a good feature (I agree!), I'm not so sure about storage. It may be nice for certain rogue apps (or ones that request permissions they don't actually need) to give them /dev/null without them knowing, but that may actually result in bugs and unstable behaviour if apps are written to expect working storage.
Storage doesn't have a built-in failure mode like contacts and location have.
Okay, you're probably right. It might be a better option to give an app a sandboxed storage location instead, just so the files it put there remain there because it might expect to find them there later.
All apps get sandboxed storage without even asking. On Android at least, permission for "storage" means permission for an area shared between all apps. And a lot of apps dump stuff into it that you do not necessarily want every other app to have access to.
It's always been that way.
What it really needs is some kind of compartments, so that you can share storage between X and Y, and between Z and W, but not between X and W.
I just installed Signal two days ago and enabled backups.
This asked, understandably, for storage permission. This prompted me to give access to the sdcard, however, I had the option to select a single folder (or actually directly creating it within the prompt) that the app will have access to. I.e. Signal now has access to sdcard/signalbackups/ but not to the whole sdcard. (unless this whole new permission process wasn't Android but the Signal app. I rarely download apps and have to give storage permissions).
This used to be different, but times of giving access to full internal or external sdcards are over. Unfortunately though, the UX isn't perfect. I felt like I needed to know that I only want to give it access to a part of the sdcard and actively look that this is indeed possible. But that might be my bias from previous usage talking.
No, sandboxed means restricted to that application. Apps need permissions to access data outside of their sandbox. They are suggesting that there be another sandboxed storage for apps that pretends to be read data.
> Storage doesn't have a built-in failure mode like contacts and location have.
Yes it does: disk full. It's perhaps a bit less reasonable to expect a program to keep working properly in such a case, but it needs to be handled somehow.
Storage doesn't have a built-in failure mode like contacts and location have.