LWN.net Logo

Advertisement

GStreamer, Embedded Linux, Android, VoD, Smooth Streaming, DRM, RTSP, HEVC, PulseAudio, OpenGL. Register now to attend.

Advertise here

CyanogenMod's incognito mode

By Nathan Willis
July 24, 2013

In the wake of the ongoing U.S. government surveillance scandal, general interest in the issues of user privacy and anonymity has swelled to new heights. Often, free software is criticized in discussions of the topic for providing technically sound privacy options that are far too difficult to use in practice. But CyanogenMod (CM), the aftermarket Android firmware project, has recently added a feature that might meet the demands of usability mavens: an "incognito" execution mode that denies apps access to the user's personal information and to traditional tracking features.

CM developer (and "Cyanogen" himself) Steve Kondik announced the feature on June 11. The feature adds a per-application flag, so that users can launch any individual app in the incognito mode or allow it to run as usual. When enabled, Kondik said, the mode will return empty lists when the application requests contacts, calendar events, web browser history, phone call logs, or messages. It will also report the GPS to be disabled, although the GPS will continue to function for the benefit of other apps not running incognito.

The idea behind incognito mode is an all-or-nothing switch; there are no fine-grained options to worry about or potentially misconfigure. The project also defines a solitary API call, context.isIncognito(), which would allow the application to detect whether or not it was launched in the restricted mode. It is up to the app developer, Kondik said, whether to allow standard operation under these circumstances, to shut down and refuse to run, or "they can choose to display pictures of cats instead of running normally."

Notably, the incognito mode is not designed to obscure the devices' IP address or its IMEI number from remote services or connections, nor does it block ad content or restrict apps from accessing the network; it only seeks to block access to user data. The feature was renamed "Privacy Guard" a few weeks later (which arguably offers a clearer description of the feature), and was merged into the main CM codebase. The merge was too late to make the cut for the CM 10.1.0 release on June 24, but it is available in nightly builds.

Development of the feature continues. A July 3 update switched Privacy Guard over from a per-app configuration model—in which each app's settings screen needed to be visited separately—to that of a central management screen, where users can toggle each app from a single list. To conserve space, the management screen only lists those apps that request access to one or more of the privacy-managed data sources.

A grain of privacy

Although the public reaction to Privacy Guard has been quite positive, there are still critics. Some contend that not spoofing the device's IMEI number is a major privacy problem. IMEI numbers do not change, so any existing record of the IMEI can be used to associate a new application session with known tracking data. In the comments on his initial announcement, however, Kondik described IMEI spoofing as an anonymity issue, making it out of scope for the feature.

Others were chafed about the all-or-nothing feature, particularly with the fact that GPS access was lumped in with personal data. The stated goal of the feature is to clamp down an overzealous app that requests access to personal information it does not really require to operate, and there are evidently a number of location-based apps in that category. Denying them access to personal data makes sense, but they are rendered useless without GPS access. Kuber Koos noted in the initial announcement discussion:

I just checked out Waze (with all the hype). I'd like to deny Waze the access it requires to my contacts, but still allow it access to GPS.

An all-or-nothing Incognito will be pretty useless for most apps. I want them to do what their primary purpose is, but I want to block the pesky things they require not essential to their function.

In the July 3 update discussion, developer Lars Greiss said that he was working on an "advanced mode" option to enable finer grained control for those who need it. Exactly what form that will take (and how fine-grained it will be) has not yet been announced, but there is certainly hope that Privacy Guard will find the right balance by the time the next stable CM release arrives.

However fine-grained the eventual result is, there will no doubt always be some users who insist on even more detailed controls. There are alternatives to be found, such as OpenPDroid, which modifies a number of Android services and libraries to provide a generalized privacy framework. OpenPDroid, for example, can respond to an app's data requests with empty data, fake data, or random data, on the grounds that for any particular app, one of those options might offer better protection than the others.

CM 7 had taken a fine-grained approach to privacy protection in its own way, too. It exposed selectable settings for individual permissions on each app, so that users could disable reading the contacts database while leaving location services unaffected. That feature was ditched in later releases, so it will be informative to see what the reaction is to the new, all-or-nothing Privacy Guard.

Of course, restricting access to the user data stored on a device is far from the only privacy issue facing the users of CM and other mobile platforms. Defeating Web-based user tracking requires other means, such as Tor. Other apps can be relayed through Tor with tools like Orbot. CM has begun working on its own implementation of SELinux, which should also help protect privacy by protecting against information leaks. Adding built-in support for something like Tor to CM would certainly be a boon to privacy fans, just like built-in support for OpenVPN.

But that is probably not a feature users should expect any time soon, so the privacy-conscious will need to continue to download and manually install Tor—along with ad blockers, PGP, and the other individual privacy packages. CM's new Privacy Guard may not do everything, but the fact that it will be built in to future releases and offer a simple user interface almost assures that it will see more real-world usage than the alternatives.


(Log in to post comments)

CyanogenMod's incognito mode

Posted Jul 25, 2013 8:29 UTC (Thu) by acunningham (subscriber, #9368) [Link]

Last time I checked, the CyanogenMod developers took the attitude that the software they produced was purely for their own use, and they weren't interested in bug reports, feature requests, or other feedback from outside their group. Attempts to provide such feedback were met with indifference or silence. Is that still the case? If so, then the CyanogenMod project is worthless as far as I'm concerned and reports on its progress are of very little interest.

CyanogenMod's incognito mode

Posted Jul 25, 2013 13:09 UTC (Thu) by drag (subscriber, #31333) [Link]

That seems a bit bizarre seeing that in practice Cyanogenmod is unbelievably awesome.

CyanogenMod's incognito mode

Posted Jul 25, 2013 17:45 UTC (Thu) by bronson (subscriber, #4806) [Link]

It's your loss, not theirs!

CyanogenMod's incognito mode

Posted Jul 25, 2013 20:07 UTC (Thu) by acunningham (subscriber, #9368) [Link]

Indeed, and unfortunately there's not much I or other potential end users can realistically do about it.

CyanogenMod's incognito mode

Posted Jul 27, 2013 5:22 UTC (Sat) by bronson (subscriber, #4806) [Link]

I'm an end user and I'm very happy with the project. Yes, the XDA forums are an irritating support channel, but they do work. The situation is not as dire as you claim.

In fact, in the future I would not be surprised if more large projects go in this direction. The number of person hours required to maintain a spam-free support channel and bug tracker is simply staggering.

CyanogenMod's incognito mode

Posted Jul 27, 2013 8:51 UTC (Sat) by acunningham (subscriber, #9368) [Link]

In that case they much have changed their policies in the last year or two. Good to hear!

All or nothing

Posted Jul 25, 2013 9:29 UTC (Thu) by epa (subscriber, #39769) [Link]

I think this one of the things the old Blackberry OS got right: when installing an app you choose what permissions to grant it, which can include GPS location, audio recording, Internet access and so on.

All or nothing

Posted Jul 26, 2013 7:43 UTC (Fri) by Wummel (subscriber, #7591) [Link]

Or it could work like most sudo apps: ask the user at the time the permission is requested and give choices: grant always, once or never.

Android 4.3

Posted Jul 27, 2013 10:42 UTC (Sat) by patrick_g (subscriber, #44470) [Link]

The web is full of reports about a new hidden feature in Android 4.3 called "Apps Ops". Apparently it's a permissions manager with good granularity.

http://www.engadget.com/2013/07/26/hidden-permissions-man...

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds