O problema foi resolvido. A exploração foi fechada.
Estaremos fechando este bug devido a ser registrado em uma versão de visualização do Android. Se o problema ainda for relevante e reproduzível na versão pública mais recente (Android Q), capture um relatório de bug e registre o bug em https://source.android.com/setup/contribute/report-bugs . Se uma resposta não for recebida nos próximos 14 dias, este problema será encerrado. Obrigado pela sua compreensão.
Última atualização:
Este é um bug e o Google irá corrigi-lo na próxima atualização.
Adiamos esse problema para consideração em uma versão futura. Obrigado pelo seu tempo para tornar o Android melhor
Essa resposta se transformou em um conglomerado de ideias e foi editada para incluir informações da discussão nos comentários.
A androidmarket
api seria uma API customizada escrita pelo desenvolvedor. Não está disponível ao público.
Para abordar suas preocupações nos comentários. O desenvolvedor teria utilizado as apis atuais disponíveis no Android Developer e no Google para criar um projeto que gerenciasse tudo isso.
Quanto ao acesso Full Account Access
, não sei exatamente como esses desenvolvedores conseguiram isso.
Eu recomendo usar o AccountManager , que faz parte de android.accounts, tem acesso a credenciais e um método getUserData . O gerente da conta tem acesso a senhas e é capaz de criar e excluir contas. Isso, possivelmente usado com o provedor de conteúdo
Consulte Autenticação Udinic / SyncAdapter .
Para responder ao seu comentário:
Este blog deve ajudá-lo a começar. Escreva seu próprio Autenticador Android .
Como esses aplicativos realmente funcionam, eu não posso te dizer. Eles também podem ter implementações diferentes (a menos que sejam um esforço colaborativo nos bastidores, eles certamente serão diferentes).
Um palpite. Em primeiro lugar, use GoogleSignInAccount com com.google.android.gms.auth.api.signin .
Há uma definição de escopo , para determinar a extensão das permissões que o aplicativo é concedido.
Usando requestScopes () , o
public static final String PROFILE
... / Permite que seu aplicativo da web acesse instalações de aplicativos Android remotos.
Por exemplo :
GoogleSignInOptions gso =
new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().
.requestScopes(new Scope("https://www.googleapis.com/auth/contacts.readonly"))
.build();
Se o acesso total puder ser obtido, uma lista de todos os aplicativos usados pelo titular da conta pode ser encontrada e comparada com o que está no dispositivo.
O Gerenciador de pacotes recuperará uma lista de todos os aplicativos instalados atualmente no dispositivo.
PackageInfo fornece os detalhes sobre o aplicativo.
INSTALL_REASON_USER também filtrará aplicativos que foram instalados ativamente pelo usuário.
Você pode querer dar uma olhada em com.google.firebase.appindexing e Registrar ações do usuário . Diferentes ações podem ser rastreadas.
O histórico da conta do usuário pode ser encontrado em https://myactivity.google.com/myactivity .
Um link útil é o OAuth 2.0 Playground .
Este github repo node-google-play , usando node, é atual e chamará APIs do Google Play. Assim como o arquivo que foi usado como uma api "não oficial", android-market-api , para consultar o mercado.
App 1
O aplicativo afirma usar as seguintes permissões:
A versão 2.1.8 pode acessar:
$ compras no aplicativo
De outros
- receber dados da Internet
- ver conexões de rede
- acesso total à rede
- usar contas no dispositivo
- evitar que o dispositivo hiberne
- leia a configuração do serviço Google
Digno de nota, o aplicativo não define nenhuma permissão quando há uma instalação básica. Não consegui usar nenhum dos recursos, pois não tenho aplicativos pagos. Portanto, para a pesquisa inicial - não foram necessárias permissões, o que indicaria que o aplicativo não tinha acesso à minha conta.
Eu verifiquei as permissões - não havia nenhuma definida. Portanto, a única coisa necessária era aceitar o pop-up, conforme exibido em sua pergunta.
App 2
O outro aplicativo ao qual você se refere que faz a mesma coisa é mais direto sobre o que está sendo acessado.
Meus aplicativos pagos
AVISO DE SEGURANÇA / PRIVACIDADE
Na primeira vez que você executar este aplicativo, ele pedirá permissão total para sua conta do Google. Infelizmente, esta é a única maneira de acessar as informações necessárias. Nenhuma informação pessoal é armazenada, nenhuma informação sobre seus aplicativos é compartilhada com o desenvolvedor deste aplicativo, nem compartilhada com terceiros. Tudo é mantido apenas no seu telefone.
Eu entrei em detalhes sobre esses aplicativos nesta postagem do blog , que era para um projeto de conclusão de universidade (sem ganho monetário). Estou inclinado a pensar que isso é uma exploração na API e não o status do projeto do Google, já que não há chamadas de API para buscar compras de aplicativos que não sejam o próprio aplicativo do desenvolvedor. Eu suponho que seja um exploit de dia zero e, nesse caso, não há uma maneira legítima de acessar essas informações.