App Ops – what you need to know

December 16, 2013

app-opsThere has been quite a bit of coverage lately about a new Android feature called App Ops. It first appeared in Android 4.3 and with popular devices like the Samsung Galaxy S3 and Galaxy S4 receiving an update to 4.3 it has become available to millions more users. But here is the thing, when Google released Android 4.4.2 it removed Apps Ops. Here today, gone tomorrow! So what is it? How does it work? And why has Google removed it!

What is App Ops?

App Ops is a framework inside Android which allows the permissions of individual apps to be tweaked. Android was built with an app permission system and when you install an app they are asked to agree to the permissions that the app requests. If you decline then the app isn’t installed. It is an all or nothing situation. The problem is that some permissions are requested because of secondary functionality (often connected with mobile advertising) that don’t have anything to do with the main function of the app.

The App Ops functionality, when exposed via any one of the handy apps in the Play Store, allows users to change the permissions of an app. The idea is that if you don’t want your favorite flashlight app to collect your location data then you can revoke that permission just for that app.

How does it work and why is it needed?

What App Ops does is allow a user to revoke an individual permission for an app. When the app then starts and tries to make an Android system call to access something that the user has now forbidden then Android will return an error and won’t grant access to that data or functionality.

The reason why such control is needed is because many apps have a very poorly defined set of permissions. In fact there are probably cases where apps request a certain permission and never actually use it. But the user doesn’t know that and there is no way to tell if an app is actually utilizing all the permissions it asked for.

Secondly, some of Android’s permissions are too course. For example the “Read Phone State and Identity” permission is needed to detect when a call is being received so that the app can mute its own sound. But the same permission also allows the app to harvest the phone’s IMEI.

Thirdly, lots of mobile ad platforms rely on using data like the user’s location and the ability to access the Internet to serve ads. However some ad platforms are just darn right rude about what they collect and how they store and process that data. There are some mobile advertising companies which claim to have millions of unique records about consumers which can track users from their phone to their desktop. Search for hemorrhoid cream on your phone and you soon start getting hemorrhoid cream ads inside your desktop web browser! They do assure us that this data is anonymous… but is it if they have your IMEI?

android-42-app-permissions

Why did Google remove it?

The official word from Google is that the App Ops functionality was removed because it was never intended to be end-user functionality and was “there for development purposes.” And that may be true but that isn’t the reason that Google removed it. The thing you need to remember is that Google is actually an advertising company. Most of its money comes from displaying adverts and all of its services like Search, Gmail and even Android are just ways to get adverts in front of people. If Google actually allowed users to block certain permissions the first thing they would do is block all the adverts on all those nice free apps. Although blocking internet permission isn’t one of the options for App Ops, ad effectiveness can be disrupted by disabling other permissions including location.

If ads are disrupted or become less effective this could mean that the app developers would see reduced income, as would Google. This could then critically impact the Android eco-system. The whole free and freemium monetization model would start to crumble and developers would either abandon Android or move their apps to be paid-for only.

Another reason why Google removed App Ops is that some apps probably don’t check for error conditions when requesting data via an API that is permissions protected. Since the app isn’t expecting an error condition the app will likely crash. This in turn will increase the support load of the developers because users are running apps in non-standard configurations.

How can you still get it?

If you are running Android 4.3, Android 4.4.0 or Android 4.4.1 then App Ops is still accessible. If you upgraded to Android 4.4.2 then Google has slammed the door shut. It is still possible to access App Ops on 4.4.2 if your phone is rooted and you install the Xposed Framework for Android 4.4. Alternatively apps like App Ops X can do some of the installation for you, but again only if your phone has root access.

Is the EFF right to grill Google about it?

Yes and no. The EFF is concerned about privacy and so should every good citizen. At a national level, governments exist to serve its citizens not the other way around. Any state sponsored breaches of privacy are in fact a breach of democracy. But this isn’t the case with Android. The commercialization of private data (like location and phone number) has been accepted by the general populace for years now. It isn’t spying but rather monetization. So from a privacy standpoint the EFF is doing what it was created to do, raise awareness of the privacy issues and digital rights issues connected with the pervasive technology that touches almost every aspect of our lives.

Ultimately if you don’t like the permission list of an app, don’t install it.

How does iOS handle permissions and should Android mimic that?

iOS handles this issue differently than Android and it could be argued that it actually does a better job. When you install an app on iOS it doesn’t ask you to agree to a big long list of permissions. This means that users don’t suffer from permission list blindness. Android users must admit that in a large number of cases they just ignore the permission list and hit Accept. What iOS does is that the first time the newly installed app tries to access some sensitive data, like your current location, it will ask the user if they agree. This decision is then remembered for the future.

ios-manage-location-services-permissionsHowever not all the permissions are granted by directly asking the user, some are just granted automatically. Because some of the permissions are granted without user interaction then iOS does have its own App Ops section (called Privacy) as part of the Settings. iOS’s permissions control access to location data, the address book, the calendar, any reminders, to photos, to Bluetooth, to the microphone, to motion activity and to social networking accounts.

One area where Android could learn from iOS is that for permissions that allow access to your contacts or the phone’s IMEI the user should be prompted and asked if they agree. That would partially solve the permission list blindness and make users more aware of what kind of data is accessed by apps.

What do you think? Join the conversation by leaving a comment below.

Comments

  • Bone

    I used AppOpps to prevent Swype accessing the internet for battery reasons, now I wonder since 4.4.2 and AppOpps unistalled if it kept my settings or not. It was a very useful feature.

  • Tanner Hoyt

    I don’t see why they removed it. I understand that it can cause issues with some apps if you deny them access to certain data, however, I think that if someone is using App Ops, they probably know what they’re doing. Choice is always a plus. Google has too much control over Android.

    • Shark Bait

      Android has always been about choice, so this is a bad move !

  • MasterMuffin

    Google needs to learn from the devs of MIUI!

  • G

    I don’t understand why google can’t implement a system like iOS just for location, contacts, etc.. I truly hope this becomes a feature very soon.

    • Respect

      Not going to happen. Because they are as creepy as the app devs that ask for intrusive, unconstitutional permissions and they need your data to make money. Private data is a new currency.

  • jubia

    Just one small correction: on iOS, you, the developer, are forbidden to access the phone IMEI. There was a function call to return that, but it was removed from the base OS and calling it right now will crash your app.

    Also, if you try to compile with a different base OS (you can do that in Xcode), the review process will actually refuse to accept your version for trying to access the IMEI (we had one once when our CIO asked us to send the IMEI with the user login).

    On the other hand, things like “internet access” are always granted on iOS. I think accessing the microphone is also always granted, but it’s been awhile since I wrote anything iOS related.

    • http://www.garysims.co.uk garysims

      Jubia, thanks for that info, but I was saying that Android should use Apple’s model when an Android app tries to access location data or the IMEI.

      G.

    • doofus

      In this regard, Apple shows more integrity than Google, which is not a big surprise.

  • jssmsxjsj

    APP ops- what you needed to know once upon a time before the evil 4.4.2 update

  • Harry

    I haven’t upgraded to 4.4.2 on my Nexus5 yet just for this reason. The fact that AppOps will go away. I have certain apps which require me to turn off certain permissions to work (its the other way around!). Vonage Extensions being one of them. As someone else observed, once I upgrade to 4.4.2, it isn’t clear what would happen of the permissions. Would I be required to do a factory reset? Not clear and so am postponing until I hear some good news about being able to use the service again :)

  • Android Developer

    i think google has summed up the permissions that games shouldn’t request, here:
    https://www.youtube.com/watch?feature=player_detailpage&v=WDDgoxvQsrQ#t=1242

    so, maybe it could be nice to have control of them.
    about location, maybe we could have a way to control which apps are allowed to use exact locations, and which can use coarse locations (not precise at all).

    • Respect

      Ridiculous. Android system apps violate their own guidelines. How stupid is that?

      • Android Developer

        Not only that, but many times they change the guidelines 180 degrees…

  • NeedName

    Google does NOT want people to control their own privacy. . . end of story!

  • districtjack

    I miss app ops, but I’m sure I can live without as I don’t install a lot of apps. That said,it was nice to know what permission an app was using and exactly what time it was used.
    My memory is a little foggy but I remember Googles motto was” never be evil” or something like that. So I’m sure we can trust them for now.

  • mike m

    I have a question? If i use this now… When I
    update to 4.4 will Google give back the permissions I have refused?

  • Arturo Raygoza

    they didn’t do it because of ad revenue, they did it because they are becoming evil

  • ibivi

    I’ve always been bothered by the extent of details they demand access to to use an app. It is way too intrusive! We need to push back against this over reach.

  • Fulko Hew

    In my case I want/need App Ops because I started seeing new services being used on my cell phone bill. I hadn’t done anything new, I hadn’t installed any new software. But I guess the cell phone provider turned something on in the mandatory-bundled applications, and it started sending out ‘quick dial? messages without my knowledge or permission.

    Although I now asked my provider to disable placing these calls from my phone.
    Yes, their app can no longer run up MY bill, but then again, I can’t send one of these messages now even if I wanted to. With App Ops I was able to disable their rogue app’s ability to pad my bill, even though they prevent me from un-installing their rogue app.

    Its a great scam: only long-term locked in contracts are available; they give you software that you can’t un-install, even if you never need or use it; that software runs up your bill; and now Android will take away the ability to protect yourself from this ‘cash grab’. Sounds like its time to go back to a tin can and a string!

  • John Moore

    Google needs to get this right and do it soon! I’m an Android developer and a fan of Android, but lately, too many apps want access to my contacts.

    Sorry, but if you want my contacts, you don’t get installed. That means I don’t have Twitter or Facebook apps installed. But even non-social apps are wanting it.

    It’s getting so bad that I’m going to have to move my vast amount of contact data somewhere else, or give up on Android!