Pergunta geral
Eu tenho um aplicativo X instalado no meu dispositivo na versão Y. Não quero atualizá-lo para nenhuma versão mais recente (Y + z) por algum motivo. Ainda assim, o aplicativo Google Play Store sempre lista as atualizações do X, o que me impede de uma simples "atualização de todas". Minha pergunta, coloque em uma única frase:
Como ocultar permanentemente as atualizações do X da lista "atualizações disponíveis"?
Exemplos específicos
Primeiro, eu sei que existem alternativas, por exemplo, o AppBrain Market App , que pode lidar com isso muito bem (pule esta atualização, pule todas as atualizações futuras). Eu prefiro uma "solução genérica", que não depende de um 3 rd aplicativo mercado do partido.
Segundo, eu sei que o Titanium Backup inclui um "médico do mercado", que pode ser usado para desconectar um aplicativo do Google Play . 1 No entanto, no meu caso específico, que funcionou apenas por algumas horas: desconectei o GTalk , pois não quero que ele seja substituído pelo Hangouts . A notificação de atualização desapareceu por algumas horas e voltou. Não faço ideia do que restaurou o "link".
Em terceiro lugar, só para ter certeza: Eu estou não falar sobre o recurso "auto update", como por exemplo discutido em Como habilitar Play Store auto-atualização por apenas alguns apps? . Eu esperava algo próximo de A loja do Google Play não fornece atualizações para aplicativos congelados? , mas sem a necessidade de "congelar" o aplicativo em questão (que ainda quero usar, mas na versão instalada, não em uma "versão futura" disponível).
Quarto: Não, a desinstalação do aplicativo em questão não é uma opção aqui, embora oculte perfeitamente a exibição de quaisquer atualizações futuras :) Nem é "congelante", pois o aplicativo é usado regularmente.
Quinto: Existe uma pergunta relacionada ao meu exemplo do GTalk: os aplicativos incluídos no zip dos gApps são atualizados pelo Google Play? No entanto, quero o oposto: sem atualização.
É bem possível que o "Google Apps" (e outros aplicativos pré-instalados) seja tratado de alguma maneira específica e restaure os próprios "links de mercado" de alguma forma. Nesse caso, minha pergunta inclui: Como impedir que isso aconteça?
Atualizar
Há um tópico no XDA discutindo o mesmo problema. Até recentemente, uma solução alternativa para os "aplicativos instalados pelo usuário" era desinstalá-los e carregar o sideload .apk
- mas até isso parou de funcionar. Bem, assinar novamente .apk
com uma chave diferente pode funcionar para aplicativos de usuários. Mas ambos falhariam em aplicativos pré-instalados (não é possível fazer com que eles sejam substituídos; uma assinatura diferente recusaria a instalação completamente).
Além disso, há um problema registrado por alguns "joel.bou ..". Não é difícil de adivinhar, embora apagado: seria Joël Bourquard. Se é realmente ele, então isso é realmente um problema (para quem não sabe: Joël é o desenvolvedor por trás do Titanium Backup ). Deixe-me citar a questão:
Para constar: nos dias do Android Market, era possível "Anexar" ou "Anexar" aplicativos (em dispositivos raiz) com uma ferramenta do sistema, como o Titanium Backup. Mas hoje em dia (com o aplicativo Google Play Store) isso se torna quase impossível, porque a lista completa de aplicativos parece sincronizar com os servidores do Google e o usuário não tem controle sobre isso.
O que explica por que a desanexação com aplicativos como o Titanium Backup não é mais permanente. E temo ter perguntado o impossível. Mas eu pensava o mesmo no passado com outras perguntas e, surpreendentemente, obtive soluções aqui. Portanto, ainda não desisto da esperança!
1: o que isso faz é explicado por eldarerathis neste post (obrigado ao Firelord por desenterrar isso!)
sqlite*
binário nesses bancos de dados) diariamente (opcionalmente: vincule-o aos scripts de inicialização init.d). Definitivamente vale um +1, pelo menos. Obrigado pela dica - e com antecedência para a resposta :)eldarerathis ♦
explicou aqui o que realmente faz "Desanexar do mercado" no TiBa (ediçãolocalappstate.db
). Você pode incluir o link dessa resposta para sua pergunta.Respostas:
Notas :
(Desculpe! Não foi possível testá-lo em Kitkat, mas não há razão para acreditar que não funcionaria.)A solução de Craig é realmente muito boa e, se, de alguma forma, puder ser executada (o widget personalizado) com o Tasker , as coisas serão bem-sucedidas.
A resposta por Anan também pode fazer o trabalho usando
pm disable <PKG>
em Tasker , mas não se pode usar esse aplicativo favorito, enquanto o Play Store está a actualizar a lista, que alguns usuários não iria preferir.E nunca experimentei o Changelog Droid , por isso não posso comentar.
Mas tenho outra maneira de fazer as coisas, não tão limpas na GUI, mas boas. Aqui vamos nós:
A Play Store possui seus bancos de dados
/data/data/com.android.vending/databases/
. Existem três bancos de dados que vale a pena considerar viz.library.db
,localappstate.db
,package_verification.db
.library.db
- possui uma tabela chamadaownership
que listaria os aplicativos que você já instalou da Play Store com todas as contas da Google Play Store associadas a eles. Observe que já inclui esses aplicativos que você instalou uma vez na Play Store há muito tempo e desinstalou mais tarde.localappstate.db
- esta possui uma tabela com o nome daappstate
lista de todos os aplicativos de usuário atualmente instalados no seu dispositivo. Aqueles instalados na Play Store também mostrariam o título do aplicativo, mas os carregados de lado não.package_verification.db
- esse banco de dados será exibido se você tiver ativado "Verificar aplicativos" em "Configurações" do Android. Tem uma tabela chamadaverification_cache
tendo lista de aplicativos para verificação.suggestions.db
- não é relevante aqui, mas possui uma tabelasuggestions
com uma lista de todas as pesquisas (palavras-chave) que você fez usando a barra de pesquisa da Play Store.Observe que não tenho nenhuma fonte para apoiar minha reivindicação, é tudo uma experiência pessoal aqui. Você é incentivado a discordar (com evidências), para que a qualidade dessa resposta possa ser aprimorada ainda mais.
Agora, de volta à pergunta. No meu Lollipop, consegui remover 37 aplicativos da lista de atualização e deixei apenas um aplicativo para o qual usei "Atualizar tudo" para testar ainda mais a solução. Funcionou perfeitamente!
As etapas necessárias:
Force o fechamento da Play Store para evitar corrupção de dados, pois precisamos editar seu banco de dados.
Remova a propriedade do seu aplicativo de
library.db
: Eu useisqlite3
(use o instalador do SQLite para Root, se você não o tiver). Eu usei uma consulta muito simples que excluiria um registro (linha) do banco de dados, identificando a linha usando um valor. Para saber mais sobre osqlite3
uso deste recurso .O comando geral para remover a propriedade seria:
Substitua
<PKG_name>
pelo nome do pacote do seu aplicativo. Por exemplo, para o navegador Chrome, o nome do pacote écom.android.chrome
.Você pode encontrar o nome do pacote do aplicativo usando o App Browser ou o OS Monitor , ou simplesmente consultando a pergunta: Exibir o nome completo do pacote do aplicativo?
Remova os detalhes adicionais do aplicativo de
localappstate.db
epackage_verification.db
: Observe que as duas etapas acima fizeram o trabalho nos meus dispositivos. Como não quero que o aplicativo seja exibido por nenhum motivo na lista de atualização, limpei todos os detalhes de todos os bancos de dados mencionados.O comando geral para remover as informações
localappstate.db
seria:E, pois
package_verification.db
, seria:O núcleo está coberto. Agora, quanto à execução:
adb shell
ouadb pull
os bancos de dados e edite no PC usando um software SQLite (como DB Browser for SQLite )O aplicativo, porém, não será exibido nos aplicativos instalados ou na lista de atualizações, mas será definitivamente exibido em "Todos" em "Meus aplicativos" na Play Store . Como não uso muito esta loja, não testei mais outras configurações.
Além disso, você pode observar que, se você tiver desmarcado "Atualizações de aplicativos disponíveis" anteriormente nas configurações da Play Store , e o verificar após executar os comandos mencionados, isso provocará uma sincronização e suas alterações, como óbvias, serão perdidas.
Além disso, saiba que o Google mantém todas as informações em seus servidores. Mais cedo ou mais tarde, os bancos de dados serão atualizados. No meu dispositivo Lollipop, esperei cerca de 24 horas e não vi alterações nos bancos de dados, mas no YMMV.
Para dispositivos não raiz
É uma teoria e não vou afirmar que funcionaria, mas você pode tentar:
adb backup
da Play Store .Empacote os arquivos alterados em um novo arquivo de backup e restaure-os no dispositivo.
Se você não souber descompactar e compactar um backup do ADB no PC, dê uma olhada no ABE (Android Backup Extractor) (ele precisa do Java Runtime Environment e tem
README.txt
uso) que descompactaria o.ab
arquivo para o.tar
qual você pode extrair usando um arquivador como Ark, 7zip, WinRAR e muito mais.Você pode usar o DB Browser for SQLite para fazer alterações nos bancos de dados encontrados dentro do conteúdo extraído (provavelmente)
apps/com.android.vending/db/
.Além disso, você pode dar uma olhada nas postagens relacionadas ao backup do Android, como esta , esta e Adebar - todas sugeridas por Izzy .
Veja se o aplicativo saiu da lista de atualização.
Editar:
Bem, eu não sou o único que descobriu desta maneira:
library.db
é o principal culpadofonte
ab2tar
em Adebar ;)adb restore
abrupta nos dispositivos para qualquer restauração de aplicativo, por isso não posso realmente testar minha própria teoria. : /Este é um problema para mim também com alguns aplicativos, especificamente um aplicativo de lanterna com lanterna, em que a versão mais recente não funciona bem com o Lollipop, mas a versão anterior.
Minha solução para isso no passado era usar o Change Droid, mas como foi afirmado acima, se você abrir a loja de jogos, ele poderá retornar.
Atualmente, a solução usada é executar uma tarefa agendada do Titanium Back up para desanexar o aplicativo do mercado. Atualmente, eu corro isso 4 vezes por dia. Ele é executado em segundo plano no horário agendado e, portanto, quando verifico se há atualizações na Play Store, ele não está lá.
Vou ter que investigar, mas pode / deve haver uma maneira de executar a tarefa quando a loja de brinquedos estiver aberta ... não tenho certeza.
---- Edit ---- Alguns pediram mais detalhes sobre a configuração da TB ...
Primeiro, você precisa criar um filtro e selecionar apenas os aplicativos que deseja desanexar. Você acessa isso no menu. Você adiciona "Elementos" ou aplicativos ao filtro, para que apenas os aplicativos selecionados sejam afetados. Certifique-se de não executar o desanexamento com tudo selecionado e nenhum filtro aplicado :)
Em seguida, é necessário fazer a programação com o filtro aplicado à programação.
Como você pode ver, isso é apenas para um evento agendado ms, às 04:00
Quando terminar, sua tarefa agendada será mais ou menos assim
Você terá que replicar isso e alterar o tempo, dependendo de quantas vezes você deseja que isso aconteça.
Eu tenho o meu conjunto para 04:00 8:00 meio-dia e 16:00. Parece funcionar para mim.
Espero que isso torne um pouco mais claro. Se você trabalha com TB, tenho certeza, com essas telas, que você pode resolver isso.
Craig
fonte
Com a seguinte solução:
Existe um aplicativo gratuito chamado Changelog Droid (anteriormente esse era um aplicativo freemium, agora possui funcionalidade completa de graça). Por meio dele, você pode gerenciar atualizações de seus outros aplicativos, sendo intermediário no Google Play.
A vantagem é que você pode enviar aplicativos para uma lista negra , omitindo mostrar atualizações temporariamente ou "permanentemente" (até que você mude de idéia). Você também pode seguir as atualizações dos aplicativos desinstalados ou que nunca instalou, mas deseja observar. Acompanho esta resposta com algumas capturas de tela (identificando com cores as diferentes navegações da tela) para você entender como funciona.
A única desvantagem é que, quando você abre a Play Store, diretamente ou a partir deste aplicativo, todos os aplicativos serão exibidos (incluindo aqueles que você não deseja atualizar, pois o que aplica o filtro é o Changelog Droid e não o próprio Google Play, isso era esperado)
Mas no Changelog Droid, você pode acessar cada aplicativo no Google Play com um botão e atualizá-lo individualmente.
Desculpe: atualmente não há opção para atualizar todos os aplicativos permitidos em uma única etapa do Changelog Droid, mas talvez o desenvolvedor possa implementá-lo eventualmente.
Nota: Ainda não testei para o cenário que você descreve (já atualizei / substituí o Talk / Hangouts), mas pode funcionar no seu caso. Lembre-se de não abrir a visualização Meus aplicativos do Google Play para não ativar a atualização automática de aplicativos.
fonte
Desative o aplicativo nas configurações principais do aplicativo ou no gerenciador de aplicativos e abra a Play Store e o aplicativo não deve estar listado. Atualize tudo e simplesmente reative o aplicativo quando a atualização tudo estiver concluída. Eu tenho o mesmo problema, um aplicativo de mensagem de texto que, se eu atualizar, recebo anúncios feios. Esta é minha solução
fonte
Eu sei que este é um tópico antigo. E eu entendo que o Ti Backup costumava trabalhar para desanexar um aplicativo da Play Store. Mas também entendo que isso não funciona mais. Para aqueles que estão interessados, criei um aplicativo que faz um bom trabalho nisso. Ele é chamado Ocultar atualizações na Play Store e está disponível por ~ US $ 1. Há um vídeo mostrando o aplicativo no trabalho. Requer raiz.
fonte
A solução que encontrei para os usuários root é simplesmente assinar novamente o apk (encontrado na
/data/app/
pasta TitaniumBackup após o backup) com o ZipSigner e reinstalar.fonte
Eu tentei usar o aplicativo "Permission Manager" (acho que deve estar enraizado). Desabilito uma permissão que não é importante para o aplicativo que não quero atualizar (por exemplo, permissão de vibração desabilitada no ES File Explorer e wakelock no Quickpic). O Permission Manager recompila o aplicativo, desinstala o original e reinstala o aplicativo recém-compilado. Depois disso, abri a Play Store e o lembrete de atualização sumiu.
fonte
.apk
arquivos originais (e sim, existem vários aplicativos disponíveis: para aplicativos que você instalou, provavelmente não precisará de raiz, mas para trabalhar nos aplicativos do sistema, você precisaria). Eu contaria isso como uma solução alternativa, mas não é uma abordagem que eu adotaria. Obrigado mesmo assim!Outro candidato apareceu no horizonte. Ainda não testei, mas parece muito promissor: StorePrefs .
Sendo um módulo Xposed , ele deve ser capaz de solucionar as falhas de outras soluções que temos até agora:
adb shell
.apk
arquivosComo cancelei a googlificação dos meus dispositivos e não uso mais o aplicativo Playstore, não posso verificar. Portanto, os comentários daqueles que podem são bem-vindos :)
fonte
Como o backup de titânio, você também pode desvincular o aplicativo da google play store com o 3C Toolbox . Até agora, isso parece ser permanente. Raiz necessária.
fonte