I find it kinda curious how things work.
Traditionally, if you had a PC or a Mac: you operated on blind trust. Well, almost blind trust if you had faith in antivirus software. But by in large the architecture of these systems let your software do anything you can, so there isn’t a gap between you uploading a file to Google Drive and some random time-waster uploading your super-secret.docx file to someone else’s server. That’s just how far the security architecture got by the time Unix and NT came into existence.
More modern platforms that rose up around touch screened phones aim for tighter security. Typically applications get strongly isolated from each other instead of being peers on par with the user, and restrictive access to your hardware instead of equal to yours. That’s been real progress IMHO, and one of the things that I really like about Android.
Digging into iOS, I also find it kind of curious how this works out.
iOS seems to take a more shrouded approach to what applications can request, in favour of focusing your attention on what they are doing. You can view some top level data about what applications can touch, based on the privacy settings group. Which largely amounts to hardware features like your camera and common personal data like your contacts. Not so a technical view such as a friendly one. Trying to STFW about the perms apps have access yields rather different experiences if you swap the words iOS and Android around. So in the end, you’re really trusting Apple far more than the application, IMHO. On the upside, it’s easier for Apple to push patches to devices than pretty much anyone can push to anything Android based in practice.
Android on the other hand traditionally required applications to state their permissions in advance when the user installs the application. Thus the trust lays between you and the developer with a sort of contract like transaction. The move to runtime permission twiddling in Android 6 is a lot more like the current experience on iOS, and I assume adapted from what Apple was already doing at the time or had been planning. But it’s easy to tell what an app can do, and all the more possible to look up online what permissions exist. No perms to access your camera? Then it can’t. A little Google-fu and you can get a list of what apps can ask for, and grok at it to draw your own conclusions.
In the end though it still boils down to trust. Does a flashlight need access to your contacts or detailed location? Probably not :P. Do you trust Apple or Google to keep an eye on things? Well, if not there’s always a flip phone.
At least modern operating systems aren’t as really nilly as DOS and the old Mac system software was, in letting apps have total control over the hardware. Because let’s face it, most programmer’s aren’t super genius about every aspect of your system.