fundo
"Os serviços do Google Play para aplicativos instantâneos " se instalaram no meu dispositivo sem minha permissão. Ele quebrou a funcionalidade do meu firewall (AFWall e alguns outros aplicativos). E está se atualizando e outros aplicativos / componentes sem permissão. Quando desinstalo este componente, ele baixa novamente e instala de volta. (Ou seja, provavelmente os "serviços do Google Play" estão fazendo isso em segundo plano)
Não há confirmações nem notificações de qualquer download, atualização ou instalação. A maneira como descobri foi notando que algumas funcionalidades dos meus aplicativos foram alteradas / quebradas. Então, usei um aplicativo ("Informações do sistema para Android") e mostra que, na verdade, esse "serviço Google Play para aplicativos instantâneos" foi instalado há um dia.
Minha pergunta é: como desabilito completamente as atualizações não autorizadas de um dispositivo Android, preservando a seguinte funcionalidade:
- Sincronização de contatos
- Loja de aplicativos do Google
- Aplicativo do Google Maps
Nestas capturas de tela, você pode ver que todas as configurações responsáveis pelas atualizações automáticas estão desativadas. Portanto, esse download e instalação é claramente não autorizado e não deve estar acontecendo. A captura de tela da configuração de aplicativos instantâneos é exibida depois que a coisa já está instalada. Deixando apenas a configuração global da Google Play Store.
Configurações ›Aplicativos // Configurações› Google ›Aplicativos Instantâneos (desativado!) // Configurações da Play Store (Atualização automática desativada!)
Tudo começou depois que segui uma sugestão enganosa , você pode ver nesta captura de tela para atualizar os "serviços do Google Play":
clique na imagem para obter uma variante maior
Atualização 1:
O que descobri até agora é que algo (provavelmente "Google Play Services") está solicitando o download + a instalação. O jeito é fazer a solicitação com o Gerenciador de Download do Google. Claro o que aciona-lo, mas se o dispositivo observando de perto um ícone do Download Manager faz aparecer na notificação indicando o download percentual. No entanto, após a conclusão, ele desaparece instantaneamente. Ainda assim, não há nada indicando instalação.
O que eu tentei até agora:
- Instalar o seguinte como em nível de usuário em vez de aplicativos de nível de sistema que eles são originalmente: Conta do Google, GP Store, e Service Framework (
com.google.android.gms
;com.android.vending
;com.google.android.gsf
) Isto não funcionou. O download ainda é solicitado e, posteriormente, instalado. - Parece que qualquer forma de bloquear a instalação fará com que ele seja baixado repetidamente (até que seus dados sejam usados). Portanto, a melhor abordagem provavelmente seria impedir o download em primeiro lugar. Não consegui instalar o Download Manager como um aplicativo de usuário, que parece ser a parte que precisa ser controlada.
- É possível bloquear o Gerenciador de Download e / ou a Play Store via firewall, mas isso quebra a única maneira confiável de baixar aplicativos.
Atualização 2:
A atualização para a versão anterior do GP Services (v11.3.02) funcionou por alguns dias, mas hoje os serviços GP para aplicativos instantâneos foram baixados e instalados. Portanto, não importa qual versão você usa. Provavelmente o Google atualizará todos os telefones dessa maneira, independentemente.
Atualização 3:
Então agora o Google está se atualizando regularmente praticamente sempre que lhe apetecer. Se estou transmitindo um filme, prejudicando minha velocidade, usando minha largura de banda da Internet pela qual pago dinheiro por MB. Nesta imagem, você pode ver três aplicativos do Google atualizados sem permissão.
Respostas:
Atualização : nas versões mais recentes do Android, você pode fazer isso em Settings-> Google-> Instant Apps-> OFF.
Na melhor das hipóteses, isso deve ser suficiente para impedir a atualização automática de aplicativos instantâneos.
Execute no dispositivo através de um terminal (connectbot, juicessh, etc).
Ou, se estiver executando via adb em um PC enquanto estiver conectado via cabo (ou wifi adb), use:
Ao contrário
pm disable
pm hide
também funciona em dispositivos não-enraizados. Até agora, não vi mais nenhuma notificação do Instant Apps aparecendo.Se o descrito acima não funcionar para você, outra abordagem seria modificar o contexto do SELinux do arquivo / pasta (por exemplo, com
chcon
).Para reverter o
pm hide
comando acima, use:fonte
com.google.android.instantapps.supervisor
o aplicativo que está fazendo o monitoramento que você mencionou? Ou é algum serviço específico dos serviços do Google Play? Se for o segundo, acho que a receita não está completa. Eu também neguei a permissão do pacote para executar em segundo plano e iniciar na inicialização.Como o nome sugere, faz parte dos aplicativos de serviços do Google. O PlayStore usa-o para executar aplicativos sem instalá-los (novo serviço). É possível desativar, mas não remover (tanto quanto eu sei, ele continuará instalando-se como parte dos serviços principais).
Para desativar, vá para Configurações ›Google› Aplicativos Instantâneos e mude o botão de alternância ( Referência ).
Acredito que este será um aplicativo de sistema em dispositivos mais novos à medida que forem lançados. Para o resto de nós com dispositivos mais antigos, eles apenas forçarão a instalação em dispositivos compatíveis.
Edit: Devido ao fato de que a pergunta foi alterada depois que eu respondi. Esta resposta se aplica a nenhum dispositivo raiz. Com um dispositivo enraizado, isso seria possível, mas não consigo pensar em uma solução fácil ou permanente.
fonte
Sobre: [Somente raiz] Esta solução envolve o bloqueio do acesso de gravação à pasta temp (cache), na qual o Google baixa seus aplicativos do sistema, como o Google Play Services, o Google Play para aplicativos instantâneos, etc. É mais simples do que parece, porque eu sou explicando tudo, parece muito. Posteriormente, a instalação de novos aplicativos passa a ser 3 etapas e o processo é semelhante à instalação de programas em um PC.
Segundo plano: no meu sistema, as pastas funcionam da seguinte maneira:
1)
/data/data/com.android.providers.downloads/cache
* Esta é a pasta na qual as atualizações do sistema do Google (bem como os Novos aplicativos do sistema) estão instaladas.
* Infelizmente, esta pasta também é usada para baixar novos aplicativos normais. Então você não pode simplesmente bloqueá-lo permanentemente. Você deve poder bloqueá-lo / desbloqueá-lo ao baixar novos aplicativos.
2)
/mnt/sdcard/Android/data/com.android.vending/files
* Esta pasta é usada para atualizar normal (aplicativos que não são do sistema Google). Portanto, não há necessidade de bloquear isso ou fazer algo especial quando se trata de atualizar seus aplicativos normais, como Facebook, jogos etc.
Solução: A pasta de cache acima é mantida bloqueada durante a operação normal. Quando você deseja instalar um novo aplicativo, o processo geral é o seguinte (embora principalmente automatizado): (1) desbloqueie a pasta do cache (2) bloqueie as pastas do aplicativo, caso ele se infiltre enquanto estiver desbloqueado e o instale. (3) Baixe seu novo aplicativo da loja (4) Copie o programa baixado da pasta de instalação para outro local e renomeie-o do nome padrão (download.apk) (5) Limpe e bloqueie a pasta de cache (6) desbloqueie as pastas de aplicativos ( 7) Clique no arquivo apk para instalá-lo.
Obviamente, você não deseja digitar isso no terminal toda vez, para que sejam etapas automatizadas. Elas envolvem o uso de dois aplicativos adicionais e o BusyBox instalado (para poder usar o comando chattr pelos scripts)
O desbloqueio do bloqueio é obtido por um aplicativo chamado Gscript. Você pode usar qualquer outro aplicativo que atinja a execução de scripts. Há uma versão na google store, mas ela trava para mim e para outras pessoas. Há uma bifurcação estável disponível aqui: https://bitbucket.org/Equidamoid/gscript (Graças à postagem do autor aqui: https://stackoverflow.com/a/20328927/7609435 ) Basta colar esses dois scripts lá. (Ambos precisam de SU)
A) Executar antes do download - Bloquear aplicativos / Desbloquear cache
chattr +i /data/data/* chattr +i /data/data chattr +i /data/app/* chattr +i /data/app chattr -i /data/data/com.android.providers.downloads/cache
B) Executar após a conclusão do download e após a cópia do arquivo - limpe e bloqueie os aplicativos de cache / desbloqueio
rm /data/data/com.android.providers.downloads/cache/* chattr +i /data/data/com.android.providers.downloads/cache chattr -i /data/data/* chattr -i /data/data chattr -i /data/app/* chattr -i /data/app
Você saberá que o aplicativo foi baixado quando a Play Store indicar "falha no download". Ele diz isso porque não conseguiu instalar o apk, mas foi realmente um download bem-sucedido e está dentro da pasta de cache . Antes de executar o script (B) acima, você deve mover o arquivo da pasta cache para outro local. Você pode fazer isso usando qualquer aplicativo, é claro, mas eu gosto de usar o Total Commander, porque ele pode ter dois painéis e suporta marcadores (adicionei cache a ele). Portanto, mova-o e renomeie o arquivo do nome padrão para outra coisa e execute o script (B) acima. Observe também que, ao copiar o APK, ele deve ter um ícone do aplicativo. Se tiver o ícone padrão, provavelmente o download está corrompido devido a outros motivos não relacionados, para que você possa tentar fazer o download novamente.
Agora a pasta de cache está limpa e bloqueada e as pastas de aplicativos estão desbloqueadas. (você pode verificar se a pasta do cache está vazia apenas para ter 100% de certeza, mas duvido que isso seja necessário) Agora você pode instalar o APK que você baixou.
Nota1: se você clicar em um novo download e aparecer "pendente" apenas (forçar) para fechar o Google Play e reiniciá-lo, ele deverá iniciar o download automaticamente.
Nota2: Eu testei isso apenas com o Android: 6.0.1 / MIUI: 8.5.3.0, portanto, esta solução pode não ser universal. Verifique se você possui a pasta de cache e se o download do Google Play Services está sendo carregado lá (depois que o upload é concluído, ele fica lá por um tempo).
AVISO: Não há problema em manter a pasta de cache bloqueada, mas se você reiniciar o telefone enquanto essas pastas de dados estiverem bloqueadas, o telefone não inicializará. E você precisará ir manualmente e alterá-lo do shell TWRP.
PS: Entendo que esta solução não é para todos, mas se sua principal preocupação é a estabilidade e a manutenção do uso de dados sob controle, isso funciona ... por enquanto. Espero que alguém tenha uma resposta melhor do que essa.
fonte