5 ms·
I really like the "NoScript" model of permissions in a browser and wish phone OSes allowed that model. With "NoScript", I block javascript by default but can u
by gvb 13y ago
I really like the "NoScript" model of permissions in a browser and wish phone OSes allowed that model. With "NoScript", I block javascript by default but can unblock temporarily or whitelist permanently.
On my Android phone:
* With standard Android, I have to whitelist an application when installing it. I cannot pick which permissions I give it, I cannot control when it can use those permissions, and I cannot remove permissions. Ever.
* With Cyanogenmod, I can restrict permissions fine grained both for permissions and applications. This would be really great if it were usable, but when I try to use it the applications behave very badly (often crashing) if they don't get unfettered permission to use my data.
I would love it if (a) applications behaved well in the absence of permissions (I fault Google for setting expectations of availability that don't require this) and (b) I had a UAC style permission granting mechanism[1] so that I control an application's access to my data and can monitor what it is asking for and when. While it could still "steal" my data (cache it, send it to the borg) any time I gave it permissions, it would at least give me a clue that the application was not trustworthy if (when) it popped up unexpected permission requests.
[1] I cannot believe I said I like Windows UAC dialogs. That will cost me another year in purgatory. :-/
- Spittie 13y agoI'd love to have it, integrated in the OS and by default as well. Something might be moving, as Google added "App Ops" [1] (hidden by default, but it's there) in Android 4.3, which allow you to revoke permissions from applications. That said, there are some alternatives to Cyanogenmod's Incognito mode, which should work better. One is XPrivacy [2], which relies on the XPosed Framework [3]. This is what I'm currently using on my Android phone. You can allow/restrict some permissions by default, and then have a whitelist for certain applications. Another one is OpenPDroid [4], which requires you to patch your rom (there are some preset for the biggest roms, so usually it's just a matter of a few clicks). I haven't used it, but it should work just like XPrivacy. XPrivacy and OpenPDroid send blank/fake data instead of blocking applications from using certain APIs, so they cause way less crashes. They even allow you to choose the fake data to provide, so that you can fake, for example, your location. [1] http://www.androidpolice.com/2013/07/25/app-ops-android-4-3s-hidden-app-permission-manager-control-permissions-for-individual-apps/ http://www.androidpolice.com/2013/07/25/app-ops-android-4-3s... [2] https://github.com/M66B/XPrivacy https://github.com/M66B/XPrivacy [3] http://forum.xda-developers.com/showthread.php?t=1574401 http://forum.xda-developers.com/showthread.php?t=1574401 [4] http://forum.xda-developers.com/showthread.php?t=2098156 http://forum.xda-developers.com/showthread.php?t=2098156
- reginaldjcooper 13y agoThank you for this, I am switching to Android for freedom but I wish to retain privacy also. Asking permissions for each aspect and requiring apps to work if it is denied is one of the few things I liked about iOS.
- ryanthejuggler 13y agoIf you really want freedom, use CyanogenMod, or better, Replicant. Google's been enviously eyeing Apple's walled garden for a while now.
- reginaldjcooper 13y agoOh yes I am well aware :) I think Replicant is the one for me.
- Mindless2112 13y ago> Something might be moving, as Google added "App Ops" [1] (hidden by default, but it's there) in Android 4.3, which allow you to revoke permissions from applications. AppOps has been removed [1] in Android 4.4. Maybe it'll come back in a later version, but it's disappointing that it's no longer just hidden. [1] https://android.googlesource.com/platform/packages/apps/Settings/+/ca1b7458244191214172009d21eae2d04b6992f9%5E!/ https://android.googlesource.com/platform/packages/apps/Sett...
- lesterbuck 13y ago>With standard Android, I have to whitelist an application when installing it. I cannot pick which permissions I give it, I cannot control when it can use those permissions, and I cannot remove permissions. Ever. Fixed in Android 4.3. Now you can approve any permission at install and turn it off anytime later. http://www.androidpolice.com/2013/07/25/app-ops-android-4-3s-hidden-app-permission-manager-control-permissions-for-individual-apps/ http://www.androidpolice.com/2013/07/25/app-ops-android-4-3s...
- jellicle 13y agoWell, no. You certainly can't do it at install, and even if there's a hidden setting that can only be invoked by installing a user-created app, changing the settings post-install is too late - your address book has been downloaded and stored permanently by the app maker. What you describe may exist in a future version of Android but does not in 4.3.
- mmahemoff 13y agoIt's not too late immediately after install, as the app can't do anything until you've run it. That's including background tasks, they can only be kicked off the first time the app is explicitly opened (correct me if there's some loophole here I'm not aware of). You have a valid point that it could be easier, but I wanted to clarify that. As an app maker, I'd like it if I could declare mandatory permissions and optional ones, as well as the iOS model of asking for permissions on demand. There are features I'd like to add, but I can't easily do so because (a) it would prevent auto-updates - all existing users would have to explicitly okay it, so many will naturally leave it at current version for months or years and never receive any update; (b) more permissions naturally makes users more cautious. So I'd rather be able to just ask to do something when the user has expressed they need it, but there's no such option.
- alextingle 13y agoNow if only you could get it to fib to the app... Yes, you have permission to make phone calls - sorry there's no coverage right now. You have permission to view SMSs - sorry they never used SMS. You have permission to access the Internet - sorry, not connected.
- masklinn 13y ago> * With standard Android, I have to whitelist an application when installing it. I cannot pick which permissions I give it, I cannot control when it can use those permissions, and I cannot remove permissions. Ever. Interestingly, ios has added more and more permission toggles over time. They're not very fine-grained[0], but they do allow toggling per-application access. [0] which is kind-of a shame but avoids getting overwhelmed
- sitharus 13y agoInterestingly they've been adding permissions over time. Now you have to approve apps for location, contacts, calendar, reminders, photos, microphone, background data access and probably some other things I've forgotten. Some of these are just new features, but others like microphone access have been added to old APIs.
- Kiro 13y agoWhy are you using NoScript to begin with?
- AJ007 13y agoThe stuff that the average Android app does is significantly more invasive than the things we called spyware and adware in the past decade.
- SomeCallMeTim 13y ago>(a) applications behaved well in the absence of permissions As an app developer, I sympathize, but if you've got a reasonably complex app that requires 8 permissions, that's 255 permutations of code paths that you need to test (that you don't need to test right now) to make sure your app performs correctly. And that's not a reasonable request to make of an app developer. Aside from that, some apps rely on, e.g., INTERNET permission to do their monetization. Aside: It's majorly not cool to "block ads" just because you don't like ads; pay for the ad-free version if you don't want to see ads. It's cheap in almost all cases. It's HARD to make money as an app developer; it may not be technically stealing to block ads, but it's ethically indistinguishable. That said, as an app developer I would love to have the ability to request OPTIONAL permissions, or even better, request them at runtime (basically, let the OS bring up a "Do you want to let this app have PERMISSION_A, PERMISSION_B, and PERMISSION_C, to enable the following feature: FEATURE DESCRIPTION"). Again, though, I'd want to request a SUITE of permissions at once, so I don't have to worry about testing with random user-configured permutations of permissions. There are some features I'd love to add, but they wouldn't be needed by everyone -- and I wouldn't want to scare people away from downloading my app, so I don't add them at all. But I absolutely would still want guaranteed permissions: If my app needs Internet to make money, then I don't want someone to be able to use it if they're blocking Internet for the app, or otherwise blocking ads on the phone. You don't want the ads? You're free to use another app, or pay to turn the ads off.
- jasomill 13y agoAs an app developer, I sympathize, but if you've got a reasonably complex app that requires 8 permissions, that's 255 permutations of code paths that you need to test (that you don't need to test right now) to make sure your app performs correctly. And that's not a reasonable request to make of an app developer. Not really; this depends on how the OS developer implements denying various permissions. For example, your app already has to handle empty address books, location services reporting valid, fixed locations, and SMS messages not arriving; it also can't assume network and messaging services are available, even in the absence of permission problems. But I absolutely would still want guaranteed permissions: If my app needs Internet to make money, then I don't want someone to be able to use it if they're blocking Internet for the app How do you currently handle limited, filtered, or no Internet access for reasons other than lack of permission grants? Why can't you handle permission-based Internet blocking in the same way?
- vikp 13y agoI recently started making an Android application, and I wish that there was a way for it to ask for incremental permissions. Unfortunately, it is all or nothing (as far as I know). The app is a happiness tracker that tries to correlate things with your happiness level. Right now, it's just location and some text/values you input. But what happens if some users want to correlate their texts with happiness? Or their pictures? I don't want to have to ask everyone to grant my app access to major phone functions when only a small subset of users would want that functionality. Unfortunately, I have to because of the way the OS is setup.
- alandarev 13y agoI have strong faith in app developers and their quality participating in this discussion. But, most apps are done by immature developers, or worse, under minimal budget. Now, considering only 1% of customers (I assume less) will be glad to have this feature, it will not be worth for developers to add extra complexity handling the permissions issues. Ideally though, I would love having the same thing as you described. In reality, most customers are feeling OK even if the app requires root access.