Back in March we reported on a proposed patch to CyanogenMod that would allow users to deny apps access to certain permissions while retaining the connection to others. This lets users install applications they are interested in, while remaining mindful of their privacy.
Update: Indeed, the "faking data" patches did not make it into CM and probably never will - thanks to all who posted the correction, including the patch author. See this commit for more info.
Denying permissions unfortunately has a nasty side effect - they will cause applications that don't handle the situation correctly to force close. If an application does start force closing and you've revoked some permissions, you will see a special dialog to easily reset those permissions back to "stock" and give the app a second chance.
The proposed patch went live (also here and here) yesterday, making the changes available to those who use the mod's nightly builds. It remains to be seen whether this new feature will result in a rash of unexpected force closes in applications that don't play nice with it as well as an uproar from developers who suddenly start getting flooded with crash reports.
After that, permissions can be enabled or disabled through the Settings -> Applications -> Manage Applications menu. Just pick the app you want, then scroll down to its permissions and tap them once to revoke (they will be crossed out) or tap again to re-enable.
Most permission changes will go live immediately, though re-enabling "Network Communications" will require a restart of the application.
Here are the main details of the new feature, as documented in this commit:
Adds support for revoking permissions.
- 2 new methods in PackageManager: set and getRevokedPermissions.
- new permission android.permission.REVOKE_PERMISSIONS that guards the new methods.
- new widget that can revoke permissions and is to be used in Settings app.
- setting to enable disable permission management.
- special message for force closed applications that have revoked permissions.
- "Reset permissions" on force close dialogue for applications with revoked permissions.
If you successfully flashed a nightly build with this feature enabled, feel free to leave a comment and let everyone know whether it's working correctly or causing problems.