Como pesquisar na Play Store por permissões?

66

Como especifico que não desejo ver aplicativos que exigem, por exemplo, acesso à Internet? Ou para mostrar apenas aplicativos que usam uma permissão específica?

Um repositório específico com pesquisa em sua página da web? Um aplicativo que fornece pesquisas na Play Store?

Adrian Panasiuk
fonte
6
Isso pode realmente ser uma ótima sugestão para o Google ..
quesito Android
8
Se você usa a interface da Web da Play Store, não precisa tentar a instalação para visualizar as permissões de um aplicativo - há uma guia na página de cada aplicativo que as lista. Pode economizar alguns cliques.
Chahk
3
O AppBrain deve poder adicionar esse recurso. Aqui está a solicitação de recurso . Vote nele. :)
Fluxo
@ Chahk Não consigo encontrar a guia. Você gostaria de postar um link de exemplo para essa guia?
Marcel
@Marcel O site da Play Store foi redesenhado recentemente pelo Google. Infelizmente, eles removeram a funcionalidade que eu estava falando. Agora você precisa clicar no botão "Instalar" para visualizar as permissões.
Chahk 4/13

Respostas:

5

ATUALIZAÇÃO: atualmente não funciona de acordo com a listagem da loja do Google Play.

Se você estiver interessado, desenvolvi um aplicativo, o StripSearch, para filtrar as listagens de pesquisa pelas permissões usadas. O aplicativo funciona excluindo resultados que não atendem aos requisitos de permissão especificados por um determinado filtro de pesquisa (um filtro pode excluir, exigir ou ignorar permissões específicas). Vários filtros estão incluídos por padrão, mas você também pode criar seus próprios.

Obtenha o StripSearch aqui: https://play.google.com/store/apps/details?id=com.hasslefixes.stripsearch

Se você quiser ver uma demonstração explicando seu uso, assista a um vídeo aqui: https://www.youtube.com/watch?v=mynw3rbky5A

O StripSearch é gratuito, não inclui anúncios ou spyware e usa apenas as seguintes permissões:

  • android.permission.INTERNET (obviamente necessário para pesquisar na loja)
  • com.google.android.providers.gsf.permission.READ_GSERVICES (necessário para obter o ID do Google Play para Android associado ao seu telefone e conta)

Experimente!

HassleFixes
fonte
Umm? O arquivo não está android_idarmazenado no /data/data/android.provider.settings/databases/settings.dbbanco de dados no dispositivo, mesmo sem o GSF instalado? Basta saber se o acesso realmente precisa de uma permissão GSF (e não algo parecido READ_SECURE_SETTINGS). Eu já ouvi o GSF de alguma forma "substituir" o original android_idna inicialização da conta - mas ele é armazenado em um local diferente no dispositivo? Se sim, onde?
Izzy
BTW: Parece legal; Acabei acrescentou que a AppBrain e à minha lista de mercados-addons ;)
Izzy
Originalmente, eu também pensava nisso, mas acontece que esse ID do Android, apesar de específico para cada telefone, não é um ID válido para fornecer ao Google Play. Para acessar o Google Play por meio da API do mercado (que é como o StripSearch funciona), é necessário o ID do Android GTalk. Este blog é mais aprofundado: blog.codepainters.com/2012/01/17/how-to-obtain-gtalk-android-id Obrigado por dar uma olhada!
HassleFixes
Muito obrigado! Isso veio a tempo. Estava prestes a atualizar novamente mais um dispositivo para usar "sem o Google" (NOGAPPS com BlankStore). Agora eu tenho um android_id válido para que :)
Izzy
Dica: se alguém estiver interessado em mais detalhes sobre este aplicativo, escrevi um resumo no StripSearch para ajudá-lo a encontrar aplicativos com permissão . HassleFixes faz sem problemas, ele corrige, e muito rápido (ou seja, um bom suporte :)
Izzy
23

Como atualmente PODE ser feito

Durante minha rotina matinal, lendo meus feeds RSS, deparei-me com uma revisão no N-Droid , discutindo um aplicativo chamado APEFS . Este aplicativo foi desenvolvido por estudantes alemães (portanto, sua descrição no Playstore está em alemão, mesmo se você definir o idioma para inglês). Mas para nossos leitores não alemães, uma breve descrição aqui:

Basicamente, o APEFS é um front-end alternativo para o Google Playstore. Você navega na playstore como faz com o aplicativo original e pesquisa da mesma forma. Mas quando na lista de resultados 1 , um filtro avançado 2 entra em ação:

Resultados da pesquisa do APEFS Filtro APEFS

Como mostra a segunda captura de tela, você pode selecionar quais permissões seu aplicativo desejado tem permissão (caixa de seleção marcada) e que permissão ele não deve ter (caixa de seleção desmarcada).

No entanto: embora isso possa ser usado para filtrar aplicativos com permissões indesejadas (por exemplo, mostrar apenas aplicativos sem a permissão da Internet), você não pode restringir seus resultados ao contrário (por exemplo, mostrar apenas aplicativos com permissão da Internet). O aplicativo tem como alvo claro os usuários preocupados com sua privacidade / segurança - e de acordo com a análise (eu o encontrei há alguns minutos atrás, então ainda não pude testá-lo), ele faz um bom trabalho.


EDITAR:

Como já faz um ano, e a promessa na página inicial do APEFS ( GTransed para o inglês, como sua própria versão em inglês não tem essa declaração no primeiro parágrafo) parece não ser cumprida tão cedo (o aplicativo ainda está offline): Por enquanto, considere a solução baseada na Web da minha outra resposta como uma alternativa.

Izzy
fonte
O link para a loja do Google Play está quebrado. Esse é o atualizado? PS: Se sim , já há suporte Inglês ...
Zuul
@Zuul Não, essa é a errada. O link Play é interrompido apenas temporariamente , graças ao "relançamento do Play-8" da agora loja de blocos (consulte a página inicial do APEFS ( GTransed para inglês)). Obviamente, o aplicativo usado algum site-scraping;) Infelizmente, a sua página Inglês não contém esse aviso ...
Izzy
2
@sashoalm veja três comentários em cima dos seus. Tornou-se incompatível com o relançamento da PlayStore. O site deles diz que eles estão trabalhando em uma atualização - mas isso parece demorar um pouco (diz isso desde o relançamento). Ainda assim, não perca a esperança!
Izzy
11
4 anos depois e eles ainda estão trabalhando nessa atualização. No entanto, @Izzy inspirou-me para não desistir da esperança ;-)
Spencer D
2
@ Izzy, fyi, StripSearch também está quebrado, parece. Não tenho certeza se ainda está funcionando de alguma forma para algumas pessoas, mas para mim não funcionou e acredito que li comentários em outro lugar que outros usuários estavam relatando isso como quebrado. (Esses podem realmente ter sido os comentários do aplicativo da Play Store.) Independentemente disso, acabei usando sua solução que funcionava perfeitamente. Eu não queria deixar comentários sobre isso, apenas dizendo "+1 obrigado;" no entanto, sua página da web é o único filtro / pesquisa que eu encontrei. Então, você recebeu meu voto positivo e minha gratidão. Você fez uma excelente contribuição para a comunidade.
Spencer D
14

Mais de dois anos se passaram desde que essa pergunta foi feita. Ainda assim, não há “solução oficial” disponível. Apesar de suas promessas, o APEFS (apresentado em minha resposta anterior há mais de um ano) não retornou. Então, decidi criar minha própria solução:

Há quase quatro anos, mantenho listagens de "aplicativos Android por finalidade", ou seja, agrupados por seus casos de uso. Em março, comecei a movê-los para meu próprio servidor . Todos os MetaData são armazenados em um banco de dados nesse servidor e, finalmente, consegui configurar uma pesquisa por permissões .

SearchMask
Pesquise a Mask para encontrar "aplicativos por categoria e permissão" (clique na imagem para obter uma variante maior)

Você pode selecionar entre 1 e 5 categorias aqui (observe que a seleção de uma "categoria pai" inclui automaticamente todos os seus "filhos"), além de uma ou mais permissões. As predefinições padrão são para encontrar "aplicativos amigáveis ​​para permissão" - portanto, se você procura um candidato assim, pode simplesmente enviar o formulário depois de fazer as seleções descritas. Isso deve facilitar a localização, por exemplo, de um aplicativo PIM que não solicite a permissão da Internet (para manter seus dados pessoais no dispositivo).

No entanto, o oposto também é possível: se, por exemplo, você quiser investigar o que a NFC pode fazer por você, selecione as 5 categorias mais interessantes e, em seguida, a permissão da NFC, alterne a caixa de seleção "Permissões" para "incluir" e, opcionalmente, a classificação para "por classificação, decrescente" (para obter os aplicativos com melhor classificação primeiro).

Em caso de dúvida, existe esse pequeno ícone de ponto de interrogação no canto superior direito, fornecendo uma "ajuda online".

Mas isso não é tudo. Como expliquei no segundo parágrafo, os aplicativos em minhas listas são agrupados por seu "objetivo", ou seja, para o que você precisa deles. Portanto, aplicativos com funcionalidade comparável devem aparecer um ao lado do outro:

Lista de aplicações
Categoria com detalhes do aplicativo (fonte: a página de ajuda (daí os "números vermelhos"); clique na imagem para obter uma variante maior)

Assim, você pode compará-los não apenas pela classificação, mas também escolher o que solicita menos permissões (número na caixa; na imagem acima indicada por um “vermelho 6”) ou, se possível, sem preocupações (sem borda vermelha ao redor da caixa) ) Clicar no nome do aplicativo revela mais alguns detalhes, como mostrado. E há muitos "ovos de páscoa" (ou seja, eventos MouseOver) - novamente, aponte para a página de ajuda.


Divulgação completa: Conforme indicado inicialmente, o site descrito foi criado por mim, construído por mim, preenchido por mim com seu conteúdo e é mantido por mim. Está disponível em dois idiomas (inglês / alemão), sem qualquer custo (inclui: sem cookies, Flash-cookies, o que for), etc. Esta questão aqui no Android.SE foi uma das razões pelas quais eu a configurei.

Além disso, esteja ciente do fato de que isso não cobre toda a "coleção playstore". Atualmente, existem pouco mais de 10.000 aplicativos registrados no banco de dados (o que provavelmente é um pouco menos de 1% do que está no Play - a menos que você não conte as porcarias, falsificações e aplicativos inúteis no Play, então meus registros pode cobrir cerca de 10% ☺). Ainda espero (e acho) que já é um recurso útil que você irá gostar.

Izzy
fonte
13

Por que atualmente   isso não pode ser feito

Quando um desenvolvedor realiza o upload de seu aplicativo no Google Play, o arquivo de manifesto do aplicativo é lido em um banco de dados, de onde a pesquisa de aplicativos é realizada.

Para permitir a pesquisa de aplicativos com base em suas permissões, seria necessário acessar o banco de dados e coletar dados referentes ao nó do manifesto do aplicativo <uses-permission>, previamente lido no arquivo AndroidManifest.xml , em que o desenvolvedor declarou suas permissões de aplicativo.

Embora isso pareça simples, a API do Google não fornece meios para esse fim:

Estritamente, o Google Play não filtra com base nos elementos <uses-permission>.

Nos filtros do Google Play, filtragem com base em elementos de manifesto - <uses-permission> .


Elaboração

Basicamente, o Google Play Store usa o arquivo de manifesto do aplicativo para aplicar automaticamente filtros com base no dispositivo do usuário, nas especificações de hardware, no país, na operadora etc.

Tudo isso é feito silenciosamente, sem a intervenção de nenhum parâmetro de pesquisa.

Um usuário do Google Play ou de mecanismos de pesquisa de terceiros pode limitar os resultados depois que eles são filtrados automaticamente pelo Google, com base em preferências pessoais, como excluir aplicativos pagos; limite os resultados a aplicativos compatíveis com os dispositivos do usuário, entre outros. Mas não há como interferir nos filtros aplicados pelo Google. Mesmo que, de alguma forma , cheguemos a essa parte, a API não está essencialmente preparada / projetada para filtrar com base nas permissões mencionadas acima.

Zuul
fonte
11
Devo dizer que seu guia foi útil (veja minha resposta aqui ): funciona, extraindo dados do aplicativo (incluindo permissões) através da API Playstore, alimentando-o em um banco de dados e executando a pesquisa nesse último :)
Izzy
6

Resposta simples: você não. Embora você sinta-se à vontade para perguntar ao Google. Como o usuário Chahk disse, a interface da web economiza alguns cliques, mas ainda não há como filtrar os resultados conforme você solicita.

9ball
fonte
5

Uma maneira alternativa é criar um aplicativo Java que utilize android-market-api . Atualmente, ele pode pesquisar aplicativos com base em "palavras-chave ou nome do pacote". A consulta de pesquisa pode ser criada para procurar a permissão necessária que está sendo solicitada. Pouca lição de casa é necessária, mas parece útil.

Depois de baixar androidmarketapi-0.6.jar e protobuf-java-2.2.0.jar (é claro que você já deve ter o JRE configurado), você pode executar o seguinte:

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

Você precisa substituir XY por 0.6, pois é a versão atual e substituir credenciais e consultas. Para consulta de construção, você pode visitar esta página.

Narayanan
fonte
Que tipo de consulta produziria aplicativos com permissão? Não vejo nada relacionado a isso.
RR
Não tenho certeza sobre isso, apenas pesquisando pelo nome do pacote por "String query =" pname: <package> ";" e pelo nome do desenvolvedor "String query =" pub: <name> ";" são dados como exemplo. Ao fornecer a palavra-chave adequada na pesquisa (que precisa ser desenterrada), espero que você possa obter o que está procurando.
Narayanan
2

Se você possui habilidades de programação, pode escrever seu próprio analisador e usar filtros acima dele. Não consegui encontrar nada sobre a API, mas você pode analisar lentamente a interface da web para obter o que deseja.

Não é a solução mais simples, mas pode torná-lo muito confiante com os resultados que pode obter.

Honestamente, eu gostaria de poder fazer um exemplo simples em Python, mas não tenho tempo agora. Talvez no futuro próximo.

Крайст
fonte
11
É isso que estou tentando evitar. Baixar meio milhão de páginas da Web não está no topo dos meus passatempos favoritos. 12 GB de largura de banda e 50 GB de dados brutos e quem sabe quantas horas de máquina. Eu posso escrever o código que eu preferiria não fazer.
RR
11
Compre um servidor, escreva um programa que armazene em cache a lista de permissões e execute-a lá e atualize o cache dos aplicativos quando obtiverem novas versões - mas somente quando o aplicativo corresponder à consulta de palavras-chave de algum usuário (e você pode até paginar os resultados e limitar-se a as páginas que o usuário visualiza.) Em seguida, adicione anúncios para poder pagar pelo servidor e talvez até adicione as etapas "???" e "LUCRO!".
Adrian Panasiuk
2
Não usamos mais servidores?
Adrian Panasiuk
... ou tente conversar com a equipe do Google para adicionar esse recurso.
Крайст
11
@ Kpa obrigado por vincular uma página que não tem nada a ver com isso.
RR
1

A pesquisa com o nome da permissão ainda significa que ela pesquisa, na melhor das hipóteses, a descrição do aplicativo

Por exemplo: "LOCALIZAÇÃO GROSSA (BASEADA EM REDE)" -> procurar por isso listará os aplicativos que possuem essas informações listadas em suas descrições, mas não conseguem pesquisar na guia Permissões.

Se o Google permitisse raspar as informações de todos os aplicativos, como eu era, seria capaz de fornecer ao mundo um mecanismo de pesquisa para pesquisar aplicativos através das permissões que eles exigem :)

gaara87
fonte
1

Nenhuma das soluções mencionadas aqui está funcionando em fevereiro de 2018.

Então, eu criei minha própria solução simples que documentarei abaixo.

TL; DR: use a API do AppBrain.

A resposta longa

  1. Crie uma pasta chamada appSearch, por exemplo.

  2. Inscreva-se para uma conta no AppBrain. Então vá para o seu painel de desenvolvimento . Ele solicitará que você ative a opção Desenvolvedor para sua conta.

  3. Navegue para a página de acesso da API.

  4. Copie o campo de autenticação, que se parece com di=xxxx&t=zzzzze armazene os valores em um arquivo chamado appBrain.jsonno seguinte formato:

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

  5. Agora faça o download do filter.js e salve-o na mesma pasta ('appSearch').

  6. Instale o Java 8+

  7. Execute o seguinte comando jjs -scripting filter.js -- keyword:, em que keyword pode ser qualquer termo de pesquisa.

  8. Você deve ver uma lista de 50 aplicativos que correspondem ao seu termo de pesquisa e são classificados pelo número de permissões, com um link para a página da loja do jogo.

    Editar: o código filter.jsé relativamente simples e pode ser adaptado para atender aos seus próprios critérios, se você souber um pouco de programação. Vou tentar torná-lo mais configurável no futuro.

  9. O nível gratuito permite um número limitado de consultas por dia. Ainda assim, você poderá fazer cerca de 30 pesquisas por dia, o que é suficiente para uso pessoal.

HRJ
fonte
"Nenhuma das soluções mencionadas aqui está funcionando a partir de fevereiro de 2017." Não posso acreditar nisso. Minha pesquisa de aplicativos ainda funciona e é até fevereiro de 2018;) // Obrigado pela sua abordagem - mas não se encaixa totalmente na pergunta. O objetivo era eliminar aplicativos da lista de resultados se eles solicitassem determinadas permissões - não apenas uma lista classificada por número de permissões. E o AFAIK, o "nível gratuito" é limitado a 10 solicitações por dia. No entanto, uma boa ideia :) #
1155 Izzy
11
Opa, editado para fevereiro de 2018. Gosto da sua solução, mas é uma lista com curadoria, que não é dimensionável. Os aplicativos que desenvolvi, por exemplo, não estão compreensivelmente na sua lista, embora exijam muito poucas permissões e sejam populares. O filter.jsque eu vinculei é um código de exemplo que pode ser adaptado (por alguém que conhece programação). Talvez se eu tiver mais tempo, o tornarei mais configurável para não programadores.
HRJ 15/02
Claro, a incompletude é uma desvantagem. Mas você está sempre bem-vindos para recomendar aplicativos para tornar-se listados, Harshad - aqui para as listas de aplicativos, e aqui para o repo :) Como você tomar cuidado para solicitar como alguns perms quanto possível, eu estaria especialmente interessado em ter esses aplicativos listados.
Izzy