68

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?

9
  • 6
    This can really be a great suggestion for Google.. Commented Mar 14, 2012 at 20:54
  • 8
    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
    Commented Mar 15, 2012 at 17:43
  • 3
    AppBrain should be able to add this feature. Here is the feature request. Vote for it. :)
    – Flow
    Commented Aug 23, 2012 at 8:58
  • @Chahk I can not find the tab. Would you mind to post an example link for that tab?
    – Marcel
    Commented Sep 3, 2013 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
    Commented Sep 4, 2013 at 20:43

8 Answers 8

23
+200

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.

10
  • The link to the Google Play store is broken, is this the updated one? Ps: if yes, there's already English support...
    – Zuul
    Commented Aug 27, 2013 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
    Commented Aug 27, 2013 at 15:55
  • 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
    Commented Dec 9, 2013 at 21:23
  • 1
    4 years later and they're still working on that update. However, @Izzy has inspired me not to give up hope ;-)
    – Spencer D
    Commented Sep 4, 2017 at 2:06
  • 2
    @Izzy, fyi, StripSearch is also broken it seems. I'm not sure if it is still somehow working for some people, but for me it did not work, and I believe I read comments somewhere else that other users were reporting it as broken. (Those might have actually been in Play Store reviews of the app.) Regardless, I ended up using your solution which worked perfectly. I didn't want to leave feedback on that, though, just saying, "+1 thanks;" however, your webpage is the only working search/filter I found. So, you got my upvote and my gratitude. You made an excellent contribution to the community.
    – Spencer D
    Commented Sep 7, 2017 at 21:56
15

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.

5
  • Can your database be updated via automation, so it covers all of the Play store (up to the time of running the script/scraping/etc.)? If so, why not doing it? If not, how far is it from doing that? Can it be opened to the community for a collaborative effort towards that end? I guess that would be a huge milestone for privacy. Commented Nov 12, 2021 at 7:54
  • @sancho.sReinstateMonicaCellio my database is updated via automation. But apps have to be added (and categorized), including their related information (links to reviews etc) – which is a manual job. And no, I wouldn't even have the resources to enlarge it by factor 300 (Play has ~3 million apps), even if I wanted (more than half of what's on Play is IMHO crap: low quality, copy-cats and apps primarily intended to (illegally) collect user data).
    – Izzy
    Commented Nov 12, 2021 at 18:53
  • I understand your database is curated. I guess a full non-curated version would also be useful (even if it were for the permission filtering capability alone), and then you would have the curated apps as a subset. How about that idea? Would that also overflow your resources? Commented Nov 12, 2021 at 19:28
  • Yes, that would overflow my resources. I'm just a single person, and all this (my app lists, my F-Droid repo, my eBook server) run on personal resources and have to be maintained in my free time. I cannot take yet another responsibility. If you want such a solution, check this answer, it already exists.
    – Izzy
    Commented Nov 13, 2021 at 11:03
  • I checked it. It looks good, but lacks a basic functionality which, in my view, makes it unusable. I posted a comment there. Commented Nov 13, 2021 at 11:09
13
+300

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.

3
  • 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
    Commented May 28, 2014 at 10:03
  • @Izzy - I did not understand: 1) the motto "It can't be done" and you say "it works"... can it or cannot be done? 2) "Currently" (2012)... does it still apply in 2021? Commented Nov 12, 2021 at 7:50
  • @sancho.sReinstateMonicaCellio do you ask if it is "technically possible" (yes, it is) – or whether it is feasible (for an individuum, it is not as it would require tremendous resources).
    – Izzy
    Commented Nov 12, 2021 at 18:50
6

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.

5

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.

2
  • What kind of query would yield apps by permission? I don't see anything related to that.
    – user13391
    Commented Aug 17, 2012 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
    Commented Aug 19, 2012 at 13:53
3

I also created a similar application (http://play.gqqnbig.me/). Source code is at https://github.com/gqqnbig/advanced-play-search

enter image description here

1
  • 1
    This looks good. An option for unchecking all permissions at once in the drop-down list is essential for usability. Commented Nov 12, 2021 at 8:14
2

None of the solutions mentioned here are working as of Feb 2018.

So I created my own simple solution which I will document below.

TL;DR: use AppBrain's API.

The long answer

  1. Create a folder called appSearch, for example.

  2. Sign up for an account on AppBrain. Then go to your dev dashboard. It will prompt you to enable the Developer option for your account.

  3. Navigate to the API access page.

  4. Copy the authentication field, which looks like di=xxxx&t=zzzzz and store the values into a file called appBrain.json in the following format:

    { "DI" : "xxxx", "TOKEN" : "yyyy" }

  5. Now download filter.js and save it to the same ('appSearch') folder.

  6. Install Java 8+

  7. Run the following command: jjs -scripting filter.js -- keyword, where keyword can be any search term.

  8. You should see a list of 50 apps that match your search term and are sorted by the number of permissions, with a link to their play store page.

    Edit: The code in filter.js is relatively simple and can be tailored to suit your own criteria, if you know a bit of programming. I will try to make it more configurable in the future.

  9. The free tier allows limited number of queries per day. Still, you will be able to make about 30 searches per day, which is enough for personal use.

4
  • "None of the solutions mentioned here are working as of Feb 2017." Cannot believe that. My app search still works, and it's Feb 2018 even ;) // Thanks for your approach – but it doesn't fully fit the question. Goal was to eliminate apps from the result list if they request certain permissions – not just a list sorted by numbers of permissions. And AFAIK the "free tier" is limited to 10 requests per day. Nice idea, though :)
    – Izzy
    Commented Feb 15, 2018 at 12:11
  • 2
    oops, edited to feb 2018. I like your solution, but it's a curated list, which doesn't scale. The apps that I have developed, for example, are understandably not on your list, although they require very few permissions and are popular. The filter.js that I linked to is example code that can be tailored (by someone who knows programming). Perhaps if I get more time I will make it more configurable for non-programmers.
    – HRJ
    Commented Feb 15, 2018 at 16:01
  • Sure, the incompleteness is a draw-back. But you're always welcome to recommend apps to become listed, Harshad – here for the app listings, and here for the repo :) As you take care to request as few perms as possible, I'd be especially interested to have those apps listed.
    – Izzy
    Commented Feb 15, 2018 at 17:09
  • I just followed steps 1 and half of 2. I did not find "the Developer option for my account." It seems to me that I have to have an app in Google Play to access a developer account. Alternatively, I created an organization account, but I am not sure this helps. Could you confirm or give precision on how to do this? Thank! Commented Nov 12, 2021 at 8:11
1

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 :)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .