We've been over this a hundred times. Adding this sort of functionality would break potentially all existing apps. Has anyone bothered trying a nightly? I actually run them and this feature is near useless. Take away most of these permissions and apps crash and burn. It was in the API to begin with that the permissions would not be there, that's not how the manifest-declared permission system in Android was meant to work.
There's no easy way to add this to AOSP core in one swoop without making exceptions for legacy applications, to the point that no one would use it anyway.
I'd love to see this system evolve somehow to make permissions more granular, but it's going to be a breaking change and it's certainly not going to be implemented this way where fake data was returned. Not sure why people are shocked it works this way. I've tried to explain the breaking and problems that would occur from trying to implement this. Of course, a couple months ago when I tried to explain this, everyone here told me it was "simple" and that I just didn't understand. Oh well.
I don't understand how this makes apps crash and burn. Can you explain how does Angry Birds crashes and/or burns when it can't access the internet? Can you explain how a fart app will be broken when it returns a fake contact list?
It depends how the program was created. Programmers have to make assumptions, if one of these is broken, and the programmer hasn't 'handled' it, then the program will either crash or show bugs. Programmers do cut a lot of corners, where they feel assumptions are safe, and assuming the the permissions will be there is one of them.
I'd post logcats but I've already flashed new nightlies without the patch. The manifest method of requesting permissions in Android is a guarantee. Applications don't test for the availability or presence of permissions for things that they declare in their manifests. Because they have no reason to have to test for them. When they're not granted and the system retunrs an error or exception... it's not caught because it should, according to the API, never ever happen.
How would that not make an application crash? Additionally, returning fake data has it's own problems including at the very least integrity.
There's no easy way to add this to AOSP core in one swoop without making exceptions for legacy applications, to the point that no one would use it anyway.
I'd love to see this system evolve somehow to make permissions more granular, but it's going to be a breaking change and it's certainly not going to be implemented this way where fake data was returned. Not sure why people are shocked it works this way. I've tried to explain the breaking and problems that would occur from trying to implement this. Of course, a couple months ago when I tried to explain this, everyone here told me it was "simple" and that I just didn't understand. Oh well.