Due to apps like Firefox screwing things up, users have a total misunderstanding of how things work and don't realize that the Storage permissions aren't needed. Users don't realize they've already been making heavy use of the modern system and that not much will change for them.
Conversation
The reason so many apps require the legacy Storage permissions is not because that many apps actually require it but because everyone needed to add it to work around broken apps like Firefox deliberately not acting as good citizens and screwing over other app developers.
1
It hasn't been necessary to support Storage for compatibility since Android 7 phased out passing file: URIs at least in theory. That was assuming apps didn't go out of the way to disable the sanity checks and refuse to move away from a legacy approach broken with modern apps.
1
By default, access granted this way is temporary. Once the Storage permissions are finally gone it'd make sense to offer a new storage permission control panel for revoking persistent access that has been explicitly granted case-by-case. It's supported but not exposed via the UI.
1
The issue is that right now, with those legacy permissions still around it would be confusing as hell to expose fine-grained control over the modern system. Storage permissions really needed to be fully removed in Android 10 to move things forward but there was too much pushback.
1
App developers won with their misinformation campaign. It was successful because users and the media don't understand how things work and just believe the BS being peddled to avoid needing to overhaul apps to start finally respecting user privacy, security and consent for files.
1
Android 11 isn't even as aggressive with this as the initial Scoped Storage plans for Android 10. It fully removes the legacy storage model for apps targeting the most recent API level, but it doesn't yet force it upon legacy apps by using the emulated Storage implementation.
1
Android 10 has support for emulation, and that's what you saw above with users who messed with Chrome settings in chrome://flags or were using a beta / dev release of the browser which didn't have a finished implementation of downloads support for targeting API level 29. *shrug*
1
The way it was supposed to be deployed was doing emulation of the Storage permissions for every app instead of only doing it for API 29 apps. They even rolled it back to the point that there is an opt-out of the modern storage model in API 29, which API 30 will finally remove.
1
Not how things were supposed to be and it was a huge disappointment. Quite happy at the new API level will at least remove the opt-out. In Android 12 or 13, maybe app developers will have finally caught up to Android 4.4 / 5 by using SAF instead of coarse Storage permissions.
1
Once enough have caught up, the emulation of the coarse permissions can finally be enabled without the fallout they've wanted to avoid. Still incredibly disappointed it didn't happen with Android 10 since it's needed to force most developers to actually deal with this.
