The Android permissions model is, to my mind, a goodly improvement over pretty well any of alternatives out there at present, in that it at least declares what capabilities any given application demands and expects you to grant.
Applications are unfortunately quite readily able to abuse this a fair bit; a (recent, as of August 2010) example being
Evernote, and Why You Need to Think About Permissions describes the problem:
The Evernote app requests a fair number of permissions. Some make sense, such as the INTERNET permission (kinda important for a Web service). Some are a bit dubious, such as needing both coarse and fine location data.
It definitely demands too much permission, with two cross-sections that are troublesome
- It asks for “the world” up front
- It asks for permissions it shouldn’t need For instance, it shouldn’t need access to contacts – it should merely offer to share data, which pushes data to a boundary where the user, at run time, can choose whether or not to allow the data out.
In addition, some of the permissions ought to be optional.
- If you want to record locations on your notes, then granting access to location data may be a reasonable thing to do.
- If you don’t want to record locations, then Evernote doesn’t need that access.
Unfortunately, at present, you don’t have any of those shadings, your options are mighty binary:
- Grant Evernote all the capabilities requested
- Reject the access, and don’t install it.
I suggest that there is another shading that would be useful, notably for INTERNET access (and probably also for filesystem access), which is to “tie down” what places the application can go.
- Evernote probably only needs to access
- Twitter only needs access to
- Shuffle (a GTD-like application) may access a domain of the user’s choice to synchronize data.
- Web Browser needs the “wide open” Internet.
I expect that filesystem access could similar be tied down:
- A file browser (such as Astro) might legitimately access “everything”
- Most applications should be restricted to their own directory