Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

How do I specify that I do not wish to see apps that require for example internet access? Or to only show apps that use a specific permission?

A specific repository with search on its webpage? An app that provides searching the Play Store?

share|improve this question
4  
This can really be a great suggestion for Google.. –  Sachin Shekhar Mar 14 '12 at 20:54
7  
If you use Play Store's web interface, you don't need to attempt installation to view an app's permissions - there is a tab on each app's page that lists them. Could save you a few clicks. –  Chahk Mar 15 '12 at 17:43
2  
AppBrain should be able to add this feature. Here is the feature request. Vote for it. :) –  Flow Aug 23 '12 at 8:58
    
@Chahk I can not find the tab. Would you mind to post an example link for that tab? –  Marcel Sep 3 '13 at 22:31
    
@Marcel The Play Store website was recently redesigned by Google. Unfortunately they removed the functionality I was talking about. You now need to click the "Install" button to view permissions. –  Chahk Sep 4 '13 at 20:43

9 Answers 9

How it currently CAN be done

During my morning routine reading my RSS feeds, I stumbled on a review at N-Droid, discussing an app named APEFS. This app is developed by German students (hence its description on the Playstore is in German, even if you set the language to English). But for our non-German readers, a short description here:

Basically, APEFS is an alternative front-end to the Google Playstore. You browse the playstore as you do with the original app, and search it the same. But when on the results list1, an advanced filter2 comes into play:

APEFS search results APEFS filter

As the second screenshot shows, you can select what permissions your wanted app is permitted to have (checkbox marked), and what permission it should not have (checkbox unchecked).

However: While this can be used to filter out apps with unwanted permissions (e.g. show only apps whitout the Internet permission), you can not restrict your results to the opposite (e.g. show only apps with Internet permission). The app clearly targets at users concerned about their privacy/security -- and according to the review (I just found it a couple of minutes ago, so I could not test it yet) it does a very good job.


EDIT:

As it's already a year ago, and the promise on the APEFS Homepage (GTransed to English, as their own English version doesn't have that statement in the first paragraph) seems not to be fulfilled anytime soon (the app is still offline): Please consider the web-based solution from my other answer as an alternative meanwhile.

share|improve this answer
    
The link to the Google Play store is broken, is this the updated one? Ps: if yes, there's already English support... –  Zuul Aug 27 '13 at 14:45
    
@Zuul No, that's the wrong one. The Play link is only temporarily broken, thanks to the "Play-8 relaunch" of the now tile-store (see APEFS Homepage (GTransed to English)). Obviously the app used some site-scraping ;) Unfortunately, their English page does not contain that notice... –  Izzy Aug 27 '13 at 15:55
    
Bad timing for me, was reading your answer and following up on the subject... I will try later on, thanks ;) –  Zuul Aug 27 '13 at 15:58
    
@Zuul Don't expect the app to return within the next hours. It was taken "offline" at least more than a week ago. But what the power of Google breaks might take a little to repair by a small team :) But don't give up hope (yet)... Just watch out once a week ;) –  Izzy Aug 27 '13 at 16:26
2  
@sashoalm see three comments on top of yours. It got incompatible with the PlayStore relaunch. Their website says they're working on an update – but that seems to take rather long (it says so ever since the relaunch already). Still, don't give up hope! –  Izzy Dec 9 '13 at 21:23

Why currently  this can't be done

When a developer performs the upload of his application to Google Play, the application manifest file gets read to a database, from where the search for apps is performed.

To allow searching for applications based on their permissions, one would have to access the database and collect data that concerns the application manifest node <uses-permission>, previously read from the AndroidManifest.xml file, where the developer has declared his application permissions.

While this seems quite straightforward, Google API does not provide means to this end:

Strictly, Google Play does not filter based on <uses-permission> elements.

From the Filters on Google Play Filtering based on Manifest Elements - <uses-permission>.


Elaborating

Essentially, Google Play Store uses the application manifest file to automatically apply filters based on the user's device, hardware specifications, country, carrier, etc.

All of this is done silently without the intervention of any search parameters.

A user either from Google Play or third party search engines, can limit the results after they get automatically filtered by Google, based on personal preferences like excluding paid apps; limit the results to apps that are compatible with the user devices, among others. But there's no way to interfere with the filters applied by Google. Even if, some how, we get to that part, the API essentially isn't prepared/designed to filter based on permissions as mentioned above.

share|improve this answer
1  
I must say, your guide was helpful (see my answer here): it works, extracting app data (including permissions) via the Playstore API, feeding it to a database, and run the search against the latter :) –  Izzy May 28 at 10:03

Simple answer: you don't. Though you can feel free to ask Google. As user Chahk said, the web interface saves you a few clicks, but there is still no way to filter results as you are requesting.

share|improve this answer

More than two years have passed since this question was asked. Still, there's no „official solution” available. Despite its promises, APEFS (introduced in my previous answer over a year ago) has not returned. So I decided to create my own solution:

For almost 4 years now, I maintain listings of „Android apps by purpose”, i.e. grouped by their use cases. In march, I started moving them to my own server. All MetaData are stored in a database on that server, and so finally I was able to setup a search by permissions.

SearchMask
Search Mask to find "apps by category and permission" (click image for larger variant)

You can select between 1 and 5 categories here (note that selecting a „parent category” automatically includes all its „children”), plus one or more permissions. Default presets are for finding „permission-friendly apps” – so if you're after such a candidate, you can simply submit the form after having made described selections. This should make it easy to e.g. find a PIM app which does not request the Internet permission (to keep your personal data on your device).

However, the opposite is possible as well: If you e.g. want to investigate what good NFC can do for you, select the up to 5 categories you're interested in, then the NFC permission, switch the „Permissions” dropbox to „include”, and optionally the sorting to „by rating, descending” (to get the best-rated apps first).

When in doubt, there's that little question-mark icon in the top-right corner, providing you with some „online help”.

But that's not all. As I've explained in the second paragraph, apps in my lists are grouped by their „purpose”, i.e. what you need them for. So apps with comparable functionality should appear next to each other:

App List
Category with app details (source: the help page (hence the „red numbers”); click image for larger variant)

So you can compare them not only by rating, but also pick the one requesting less permissions (number in the box; in above image indicated by a „red 6”) or, if possible, without any concerns (no red border around the box). Clicking the app's name reveals some more details, as shown. And there are many „easter-eggs” (i.e. MouseOver events) – again, be pointed to the help page.


Full disclosure: As initially indicated, the described site was designed by me, built by me, filled by me with its content, and is further maintained by me. It's available bi-lingual (English/German), free of any charge (this includes: no cookies, Flash-cookies, whatever), etc. This question here at Android.SE was one of the reasons I've set it up.

Further be aware of the fact that this doesn't cover the entire „playstore collection”. As of today, there are a little over 10,000 apps recorded in the database (which is probably a little less than 1% of what's on Play – unless you don't count the crap, fakes, and useless apps on Play, then my records might cover about 10% ☺). Still I hope (and think) it's already a useful resource you'll enjoy.

share|improve this answer

A round about way is to create a Java app that utilizes android-market-api. Presently it can search app based on "keywords or package name". The search query can be built to search for the necessary permission that is being sought. Little homework required, but seems useful.

After downloading androidmarketapi-0.6.jar and protobuf-java-2.2.0.jar (of course you should have JRE already setup) you can execute the following:

java -jar androidmarketapi-X.Y.jar myemail mypassword myquery

You have to replace X.Y with 0.6 as that is the present version and replace credentials and query. For building query you can visit this page.

share|improve this answer
    
What kind of query would yield apps by permission? I don't see anything related to that. –  Richard Borcsik Aug 17 '12 at 16:50
    
I am not sure about it as only searching by package name by "String query = "pname:<package>";" and by developer name "String query = "pub:<name>";" are given as example. By providing the suitable keyword in search (which has to be dug out), I hope you could get what you are looking for. –  Narayanan Aug 19 '12 at 13:53

If you have programming skills you can write your own parser and use filters above it. I couldn't find anything about API but you can slowly parse web-interface to get what you want.

It's not the simpliest solution but can make you much confident with results you can get.

Honestly I wish I could make simple example in Python but have no time now. Maybe in nearest future.

share|improve this answer
1  
That's what I'm trying to avoid. Downloading half million Web pages is not on the top of my fa,vorite pastimes. 12GB of bandwithand 50GB of raw data and who knows how many machine hours. I can write the code I would just prefer not to. –  Richard Borcsik Aug 17 '12 at 14:11
1  
Buy a server, write a program that caches the permissions list and run it there, and refresh cache for apps when they get new versions - but only when the app matched some user's keyword query (and you can even paginate the results and limit yourself to the pages the user views.) Then add ads so you can pay for the server, and maybe even add steps "???" and "PROFIT!". –  Adrian Panasiuk Aug 18 '12 at 20:56
2  
We don't use servers anymore? –  Adrian Panasiuk Aug 20 '12 at 13:40
    
...or just try to talk with google team to add that feature. –  Крайст Aug 21 '12 at 8:36
1  
@Kpa thank you for linking a page that doesn't have anything to do with this. –  Richard Borcsik Aug 22 '12 at 21:19

If you're interested, I've developed an app, StripSearch, to filter search listings by the permissions used. The app works by excluding results that don't meet the permission requirements specified by a given search filter (a filter can exclude, require, or ignore specific permissions). Several filters are included by default, but you can create your own as well.

Get StripSearch here: https://play.google.com/store/apps/details?id=com.hasslefixes.stripsearch

If you want to see a demo explaining its usage, you can watch a video here: https://www.youtube.com/watch?v=mynw3rbky5A

StripSearch is free, does not include ads or spyware, and only uses the following permissions:

  • android.permission.INTERNET (obviously needed to search the store)
  • com.google.android.providers.gsf.permission.READ_GSERVICES (needed to obtain the Google Play Android ID tied to your phone and account)

Giv it a try!

share|improve this answer
    
Umm? Isn't the android_id stored in the /data/data/android.provider.settings/databases/settings.db database on the device, even with no GSF installed? Just wondering whether accessing that really needs a GSF permission (and not something like READ_SECURE_SETTINGS). I've already heard GSF somehow "overwrites" that original android_id on account initialisation – but is it stored in a different place on the device then? If so, where? –  Izzy Sep 18 at 14:37
    
BTW: Looks cool; I've just added it to AppBrain and to my list of market-addons ;) –  Izzy Sep 18 at 14:42
    
I originally thought that as well, but it turns out that that Android ID, while specific to each phone, is not a valid ID for supplying to Google Play. To access Google Play via the market API (which is how StripSearch works), the GTalk Android ID is required. This blog goes into more depth: blog.codepainters.com/2012/01/17/how-to-obtain-gtalk-android-id Thanks for taking a look! –  HassleFixes Sep 18 at 21:36
    
Thanks a lot! That came right in time. Was about to reflash one more device to use "without Google" (NOGAPPS with BlankStore instead). Now I have a valid android_id for that :) –  Izzy Sep 18 at 22:11
    
Hint: If anybody is interested in more details on this app, I wrote a summary in StripSearch helps you find apps by permission. HassleFixes makes no hassle, he fixes, and pretty quick (i.e. good support :) –  Izzy Oct 1 at 21:40

Searching with the permission name still means it searches at best through the description of the app

For example :"COARSE (NETWORK-BASED) LOCATION" -> searching for this will list down applications which have this information listed in their descriptions, but it fails to search through the Permissions tab.

If google allowed to scrape the info of all the apps, like i was, then i would be able to provide the world with a search engine to search apps through permissions they require :)

share|improve this answer

Im currently working on a permission based search filter for the Android Play store. For now I have found over 1.2 Mio Apps and added their permission to my database.

How does the Webservice work?

  1. First im sending an anonymous request to the Google Play store webpage to get a list of apps
  2. Parse the result and extract the app ids
  3. Find the app ids in my DB
  4. remove the apps that does not match the your permission filter

The current status can be found here http://live.edgeelement.com/appfilter/

Thats the current style of the pageunfiltered list of games

share|improve this answer
    
How can I filter out applications accessing the Internet? –  Adrian Panasiuk Dec 8 at 3:02

protected by Community 3 hours ago

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.