42 votes

Comment se débarrasser des notifications de mise à jour pour une application donnée dans le Google Play Store ?

Question générale

J'ai une application X installée sur mon appareil en version Y. Je ne veux pas la mettre à jour vers une version plus récente (Y+z) pour une raison quelconque. Cependant, l'application Google Play Store liste toujours des mises à jour pour X, ce qui m'empêche d'effectuer une simple "mise à jour de tout". Ma question, formulée en une seule phrase :

Comment masquer définitivement les mises à jour pour X de la liste des "mises à jour disponibles" ?


Exemples spécifiques

Tout d'abord, je sais qu'il existe des alternatives telles que l' application AppBrain Market, qui peut gérer cela assez bien (ignorer cette mise à jour, ignorer toutes les mises à jour futures). Je préfère une "solution générique" qui ne dépend pas d'une application de marché tierce.

Deuxièmement, je sais que Titanium Backup inclut un "docteur du marché", qui peut être utilisé pour déconnecter une application de Google Play.1 Cependant, dans mon cas spécifique, cela n'a fonctionné que pendant quelques heures : j'ai déconnecté GTalk, car je ne veux pas le remplacer par Hangouts. La notification de mise à jour a disparu pendant quelques heures, puis est réapparue. Aucune idée de ce qui a rétabli le "lien".

Troisièmement, juste pour être sûr : je ne parle pas de la fonction de "mise à jour automatique" comme discuté par exemple dans Comment activer la mise à jour automatique du Play Store pour quelques applications seulement ?. J'espérais plutôt quelque chose proche de Le Google Play Store ne propose-t-il pas de mises à jour pour les applications gelées ?, mais sans avoir besoin de "geler" l'application en question (que je veux toujours utiliser, mais dans la version installée, pas dans une "version future" disponible).

Quatrièmement : Non, désinstaller l'application en question n'est pas une option ici, même si cela masquerait parfaitement toute mise à jour future d'être affichée :) Ni "geler", car l'application est utilisée régulièrement.

Cinquièmement : Il y a une question connexe pour mon exemple de GTalk : Les applications incluses dans le zip de gApps reçoivent-elles des mises à jour via Google Play ?. Cependant, je veux l'opposé : Aucune mise à jour.


Il se peut très bien que les "Google Apps" (et autres applications préinstallées) soient gérées d'une manière spécifique, et restaurent elles-mêmes leurs "liens de marché" d'une certaine manière. Pour ce cas, ma question inclut : Comment empêcher que cela se produise ?


Mise à jour

Il y a un fil de discussion sur XDA qui traite exactement du même problème. Jusqu'à récemment, une solution de contournement pour les "applications installées par l'utilisateur" était de les désinstaller, puis de sideloader le .apk - mais même cela a cessé de fonctionner. Eh bien, resigner le .apk avec une clé différente pourrait fonctionner pour les applications utilisateur. Mais les deux échoueraient pour les applications préinstallées (on ne peut pas les sideloader pour les remplacer ; une signature différente refuserait complètement cette installation).

De plus, il y a un problème signalé à ce sujet par un certain "joel.bou..". Pas difficile à deviner, bien que censuré : ce serait Joël Bourquard. S'il s'agit vraiment de lui, alors c'est vraiment un problème (pour ceux qui ne le savent pas : Joël est le développeur derrière Titanium Backup). Permettez-moi de citer le problème :

Pour mémoire : à l'époque de l'Android Market, il était possible de "Attacher" ou "Détacher" des applications (sur des appareils rootés) avec un outil système tel que Titanium Backup. Mais de nos jours (avec l'application Google Play Store) cela est devenu presque impossible à faire, car la liste complète des applications semble se synchroniser à partir des serveurs de Google et l'utilisateur n'a aucun contrôle là-dessus.

Ceci explique pourquoi le détachement avec des applications comme Titanium Backup n'est plus permanent. Et j'ai bien peur d'avoir demandé l'impossible. Mais j'ai pensé la même chose dans le passé avec d'autres questions, et j'ai étonnamment trouvé des solutions ici. Donc je ne perds pas encore espoir pour celle-ci !


1 : ce que cela fait est expliqué par eldarerathis dans ce post (merci à Firelord pour avoir déterré cela !)

2 votes

Merci d'avoir ramené ce sujet. Vous êtes maintenant converti à mon avis sur les applications, comme en témoigne ce fil de discussion que nous avons eu l'année dernière : Question 39180 -permanently-indicate-to-market-an-application-should-refuse‌​-upgrades

2 votes

Oui, c'est lié. Mais ce que geffchang a indiqué dans sa réponse à cela est ce que j'ai déjà essayé sans succès : Détacher l'application du Playstore en utilisant Titanium Backup. De toute évidence, cela ne fonctionne pas de manière permanente avec les applications Google préinstallées.

0 votes

@Firelord Pourriez-vous résumer cela dans une réponse (de préférence avec des indications sur les instructions SQL) ? Je ne suis pas sûr que je le mettrais en œuvre (je verrai alors), mais je vois que cela pourrait fonctionner : Les applications concernées sont connues à l'avance (y compris leurs noms de package), donc des scripts SQL "statiques" peuvent être créés une fois (un pour chaque base de données). Ensuite, utilisez par exemple Tasker pour exécuter les scripts (avec le binaire sqlite* contre ces bases de données) quotidiennement (facultativement : le lier aux scripts de démarrage init.d). Certainement digne d'un +1 au moins. Merci pour l'astuce – et à l'avance pour la réponse :)

14voto

Firelord Points 23064

Notes :

  • Le PO connaît déjà les détails, mais j'ai élaboré des choses en pensant à d'autres lecteurs.
  • J'ai supposé que l'appareil était enraciné, et ma solution a été testée sur Android 4.2, 4.4 et 5.0, qui fonctionnent tous sous Android 4.2, 4.4 et 5.0. Play Store v5.6.8. (Désolé ! Je n'ai pas pu le tester sur Kitkat mais il n'y a aucune raison de croire que cela ne fonctionnerait pas).

El solution par Craig est en fait assez bon, et s'il peut d'une manière ou d'une autre être exécuté (le widget personnalisé) avec Tasker alors les choses se passeraient très bien.

El réponse d'Anan peut également faire le travail en utilisant pm disable <PKG> en Tasker Mais on ne peut pas utiliser cette application favorite tant que le Play Store met à jour la liste, ce que certains utilisateurs ne préfèrent pas.

Et je n'ai jamais essayé Changelog Droid Je ne peux donc pas faire de commentaires.

Mais j'ai une autre façon de faire les choses, pas aussi propre dans l'interface graphique mais bonne. C'est parti :

Play Store a ses bases de données sous /data/data/com.android.vending/databases/ . Il existe trois bases de données qui méritent d'être prises en considération à savoir. library.db , localappstate.db , package_verification.db .

  • library.db -- il a une table nommée ownership qui listerait les applications que vous avez jamais installés à partir du Play Store avec tous les comptes Google Play Store qui leur sont associés. Note que jamais y compris les applications que vous avez installées depuis le Play Store il y a longtemps et désinstallées par la suite.
  • localappstate.db -- il y a une table nommée appstate qui répertorie toutes les applications utilisateur actuellement installées sur votre appareil. Celles qui sont installées depuis le Play Store affichent également le titre de l'application, mais pas celles qui sont chargées en mode latéral.
  • package_verification.db -- Cette base de données apparaît si vous avez activé la fonction "Vérifier les applications" dans les "Paramètres" d'Android. Elle possède une table nommée verification_cache ayant une liste d'applications à vérifier.
  • suggestions.db -- non pertinent ici mais il a une table nommée suggestions ayant une liste de toutes les recherches (mots-clés) que vous avez effectuées à l'aide de la barre de recherche du Play Store.

Note que je n'ai aucune source pour étayer mon affirmation, c'est une expérience personnelle. Vous êtes encouragé à ne pas être d'accord (avec des preuves), afin que la qualité de cette réponse puisse être améliorée.


Maintenant, revenons à la question. Sur mon Lollipop, j'ai pu supprimer 37 applications de la liste des mises à jour et il ne restait qu'une seule application pour laquelle j'ai utilisé "Update all" pour tester davantage la solution. Cela a parfaitement fonctionné !

Les étapes nécessaires :

  1. Fermez de force le Play Store pour éviter toute corruption de données puisque nous devons modifier sa base de données.

  2. Retirer la propriété de votre application de library.db : J'ai utilisé sqlite3 (utiliser Installation de SQLite pour Root si vous ne l'avez pas). J'ai utilisé une requête très simple qui supprimerait un enregistrement (ligne) de la base de données en identifiant la ligne en utilisant une valeur. Pour en savoir plus sur l'utilisation de sqlite3 utiliser cette ressource .

    La commande générale pour enlever la propriété serait :

    sqlite3 /data/data/com.android.vending/databases/library.db "DELETE from ownership where doc_id='<PKG_NAME>'"

    Remplacer <PKG_name> avec le nom du paquet de votre application. Par exemple, pour Navigateur Chrome le nom du paquet est com.android.chrome .

    Vous pouvez trouver le nom du paquet de votre application en utilisant Navigateur d'applications ou Moniteur OS ou faites simplement référence à la question : Afficher le nom complet du paquet de l'application ?

  3. Retirez les détails de l'application de localappstate.db y package_verification.db : Note que les deux étapes ci-dessus ont fait le travail dans mes appareils. Comme je ne veux pas que l'application apparaisse dans la liste des mises à jour, j'ai supprimé tous les détails de toutes les bases de données susmentionnées.

    La commande générale pour supprimer l'information de localappstate.db serait :

    sqlite3 /data/data/com.android.vending/databases/localappstate.db "DELETE from appstate where package_name='<PKG_NAME>'"

    Et, pour package_verification.db ce serait le cas :

    sqlite3 /data/data/com.android.vending/databases/package_verification.db "DELETE from verification_cache where package_name='PKG_NAME'"

Le noyau est couvert. Maintenant, en ce qui concerne l'exécution :

  • Vous pouvez faire un script
  • Utilice adb shell ou adb pull les bases de données, et faire l'édition sur PC en utilisant un logiciel SQLite (comme DB Browser for SQLite )
  • Vous pouvez utiliser des applications comme Éditeur SQLite ou Gestionnaire aSQLite pour supprimer manuellement les enregistrements de l'application
  • Utilisez n'importe quelle application de terminal, comme Émulateur de terminal pour Android -- il permet des widgets que vous pouvez utiliser comme raccourci pour une commande ou un script. Voir ma réponse pour savoir comment faire un tel raccourci
  • Utilice Tasker de créer des profils en fonction du temps, de l'application ou de tout autre profil qui vous conviendrait
  • Branchez votre script dans le démarrage, mais je n'ai pas essayé, donc demandez à l'OP.

L'application n'apparaîtra pas dans les applications installées ou dans la liste des mises à jour, mais elle apparaîtra bien dans "Tout" sous "Mes applications" dans le menu de gauche. Play Store . Je n'utilise pas beaucoup ce magasin, donc je n'ai plus testé d'autres paramètres de celui-ci.

En outre, vous pouvez noter que si vous aviez auparavant décoché la case "Mises à jour de l'application disponibles" dans la section "Mises à jour de l'application" de l'écran d'accueil de l'ordinateur. Play Store et que vous le vérifiez après avoir exécuté lesdites commandes, cela déclenchera une synchronisation et vos modifications, comme évidentes, seraient perdues.

Sachez également que Google conserve toutes les informations sur ses serveurs. Donc, tôt ou tard, les bases de données vont être mises à jour. Dans mon appareil Lollipop, j'ai attendu environ 24 heures et je n'ai vu aucun changement dans les bases de données, mais YMMV.


Pour les appareils non rootés

C'est une théorie et je ne prétends pas qu'elle fonctionne, mais vous pouvez essayer :

  1. Fermer et prendre de force adb backup de Play Store .

  2. Extraire la sauvegarde et effectuer les changements nécessaires dans les bases de données.

  3. Regroupez les fichiers modifiés dans un nouveau fichier de sauvegarde et restaurez-les dans l'appareil.

    Si vous n'êtes pas au courant du déballage et de l'emballage d'une sauvegarde ADB sur PC, jetez un coup d'oeil à <a href="https://github.com/nelenkov/android-backup-extractor" rel="nofollow noreferrer">Extracteur de sauvegarde Android (ABE) </a>(il faut <a href="https://java.com/en/download/manual.jsp" rel="nofollow noreferrer">Environnement d'exécution Java </a>et a <code>README.txt</code> pour l'utilisation) qui décompresserait le <code>.ab</code> dans un fichier <code>.tar</code> que vous pouvez ensuite extraire à l'aide d'un archiveur comme Ark, 7zip, WinRAR, etc.

    Vous pouvez utiliser <a href="http://sqlitebrowser.org/" rel="nofollow noreferrer">DB Browser for SQLite </a>d'apporter des modifications aux bases de données se trouvant dans le contenu extrait (probablement) <code>apps/com.android.vending/db/</code> .

    Vous pouvez également consulter les articles relatifs à la sauvegarde Android tels que <a href="https://android.stackexchange.com/q/28481/16575">este </a>, <a href="https://android.stackexchange.com/a/23608/16575">este </a>y <a href="https://github.com/IzzySoft/Adebar" rel="nofollow noreferrer">Adebar </a>-- tous suggérés par <a href="https://android.stackexchange.com/users/16575/izzy">Izzy </a>.

  4. Vérifiez si l'application a disparu de la liste des mises à jour.

  5. Si vous réussissez à l'étape 4, exécutez ADB sans fil pour exécuter les étapes 1 à 4 sur l'appareil Android lui-même (d'une manière ou d'une autre) plutôt que d'utiliser un PC -- cela pourrait être très utile dans les cas suivants Tasker si vous réussissez.

  6. Eh bien, si vous réussissez jusqu'à l'étape 4 ou 5, vous pourrez peut-être aussi répondre : Comment se débarrasser des applications de la liste des mises à jour du Play Store ? :)


Editar:

Eh bien, je ne suis pas le seul à avoir compris de cette façon :

  1. Android : Ne voulez plus mettre à jour Skype -- très proche avec la partie script ajoutée, mais sans raisonnement bien sûr
  2. (Requiert une racine) Pour référence future, comment mettre à jour Ingress sans attendre le déploiement. -- pas assez bon parce que library.db est le principal coupable
  3. Obtenir le nom du paquet pour une application
  4. [WIP] Son d'absence d'appel, blocage de la mise à jour automatique des services de lecture.

0 votes

Une réponse très complète, Firelord - je voterais plusieurs fois si je le pouvais! Je vais certainement tester cela dès que le temps le permettra, et peut-être ajouter ensuite mon expérience / des conseils supplémentaires. // Quant aux appareils non rootés, je serais bloqué à l'étape 3. Des informations / liens supplémentaires sur la manière d'accomplir cela? Nous avons un long post à ce sujet ici, mais cela semble compliqué. Pour le #2, il y a ce post, et bien sûr ab2tar dans Adebar ;)

0 votes

@Izzy Merci! Les liens vers les messages que vous avez mentionnés font référence à ABE (Android Backup Extractor). Il peut packer et dépacker très facilement. Tout ce dont vous avez besoin est Java Runtime Environment. // Et j'aurais pu aller plus loin car je n'aime pas laisser des fils lâches, mais mon adb restore quitte brusquement sur mes appareils pour toute restauration d'application, donc je ne peux vraiment pas tester ma propre théorie. :/

0 votes

Aïe, c'est mauvais. Vous voudrez peut-être toujours intégrer un lien vers ABE aux étapes 2 et 3 de votre réponse. Et bien sûr, une fois que le problème avec vos appareils sera résolu, nous serons tous heureux de voir comment vous "réglerez ce problème en suspens" :)

8voto

Leather Points 177

C'est un problème pour moi avec quelques applications aussi, en particulier une application lampe de poche, où la dernière version ne fonctionne pas bien avec Lollipop, mais la version précédente fonctionne.

Ma solution à cela par le passé était d'utiliser Change Droid, mais comme cela a été mentionné ci-dessus, si vous ouvrez le Play Store, le problème peut revenir.

Actuellement, la solution que j'utilise est d'exécuter une tâche planifiée à partir de Titanium Back up pour détacher l'application du marché. Je le lance actuellement 4 fois par jour. Il s'exécute en arrière-plan à l'heure prévue, donc, lorsque je vérifie le Play Store pour les mises à jour, elle n'apparaît pas.

Je devrai regarder cela de plus près, mais il peut/devrait y avoir un moyen d'exécuter la tâche lorsque le Play Store est ouvert... pas sûr.

----Édition---- Certains ont demandé plus de détails sur le paramétrage de TB...

Tout d'abord, vous devez créer un filtre en ne sélectionnant que les applications que vous souhaitez détacher. Vous accédez à cette option dans le menu. Vous ajoutez les "Eléments" ou applications au filtre, afin que seules les applications sélectionnées soient affectées. Assurez-vous de ne pas lancer le détachement avec tout sélectionné et sans filtre appliqué :)

Capture d'écran Capture d'écran

Ensuite, vous devez planifier la tâche avec le filtre appliqué à la planification.

Capture d'écran Capture d'écran

Comme vous pouvez le voir, c'est juste pour un événement planifié l-s, à 4h du matin.

Lorsque c'est terminé, votre tâche planifiée ressemblera à quelque chose comme ça

Capture d'écran

Vous devrez reproduire cela et changer l'heure en fonction du nombre de fois où vous voulez que cela se produise.

Le mien est réglé pour 4h du matin, 8h, midi et 16h. A l'air de fonctionner pour moi.

J'espère que cela rend les choses un peu plus claires. Si vous explorez TB, je suis sûr qu'avec ces captures d'écran, vous pourrez vous en sortir.

Craig

0 votes

J'ai utilisé cette solution pendant quelques jours mais je reçois toujours un message de Titanium dans la barre d'informations après l'avoir utilisé. Un peu ennuyeux et aussi 4 tâches (dans mon planificateur) n'étaient pas suffisantes, parfois la mise à jour était à nouveau visible. Donc, pour l'instant, je préfère la solution en ligne de commande de Firelord qui peut être réalisée par Tasker totalement en arrière-plan et fonctionne bien :)

3voto

tovare Points 1896

Avec la solution suivante :

  1. Vous ne dépendez pas d'une application tierce sur le marché.
  2. Il peut être configuré pour contourner les notifications de mise à jour de Google Play.
  3. Vous pouvez revenir sur le blocage des mises à jour des applications quand vous le souhaitez (vous permettant de mettre à jour les applications pour les versions futures)
  4. Il ne désinstalle ni ne gèle les applications que vous utilisez.
  5. Il fonctionne également avec Gapps.

Il existe une application gratuite appelée Changelog Droid (autrefois une application freemium, elle offre désormais toutes ses fonctionnalités gratuitement). À travers elle, vous pouvez gérer les mises à jour de vos autres applications, en étant un intermédiaire avec Google Play.

L'avantage est que vous pouvez envoyer des applications dans une liste noire, omettant de montrer temporairement ou "définitivement" les mises à jour (jusqu'à ce que vous changiez d'avis). Vous pouvez également suivre les mises à jour pour des applications que vous avez désinstallées ou que vous n'avez jamais installées mais que vous souhaitez observer. Je accompagne cette réponse avec quelques captures d'écran (identifiant avec des couleurs la navigation sur les différents écrans) pour que vous compreniez comment cela fonctionne.

Comment mettre une application sur liste noireApplications sur liste noireApplications sur liste blanche

Comment enlever une application de la liste noireMenu optionsPréférences

Comment contourner les notifications de Google PlayActiver l'accès aux notifications pour Changelog DroidAfficher les applications système (Gapps)

Sélectionner les Gapps à afficher

Le seul inconvénient est que lorsque vous ouvrez le Play Store, que ce soit directement ou depuis cette application, toutes les applications seront affichées (y compris celles que vous ne vouliez pas mettre à jour, car c'est Changelog Droid qui applique le filtre et non Google Play lui-même, cela était prévu)

Google Play affiche toujours toutes les applications

Mais avec Changelog Droid, vous pouvez accéder à chaque application sur Google Play avec un bouton et ensuite la mettre à jour individuellement.

Désolé : il n'y a actuellement pas d'option pour mettre à jour toutes les applications autorisées en une seule étape depuis Changelog Droid, mais peut-être que le développeur pourrait l'implémenter éventuellement.

Remarque : je n'ai pas encore testé le scénario que vous décrivez (j'ai déjà mis à jour/remplacé Talk/Hangouts), mais cela pourrait fonctionner dans votre cas. Souvenez-vous simplement de ne pas ouvrir la vue Mes applications de Google Play pour ne pas déclencher la mise à jour automatique des applications.

1 votes

Merci beaucoup, Francisco! Cela me rappelle beaucoup l'application AppBrain Market App telle qu'elle était il y a des années (je ne l'ai pas essayée récemment, car leur propre installateur a été désactivé). À l'époque, lorsque leur "fast webinstaller" fonctionnait encore, vous pouviez même déclencher la "mise à jour de tout" sur la liste filtrée... Au fait : visiter "Mes applications" ne déclencherait aucune mise à jour pour moi, car j'ai complètement désactivé les mises à jour automatiques. Je vais essayer votre solution dès que le temps le permettra ;)

1voto

rubayeet Points 3015

Désactivez l'application dans les paramètres de l'application principale ou le gestionnaire d'applications, puis ouvrez le Play Store et l'application ne devrait pas être répertoriée. Mettez à jour tout et réactivez simplement l'application une fois la mise à jour terminée. J'ai le même problème, une application de messages texte pour laquelle si je mets à jour, j'obtiens des publicités laides.. C'est ma solution de contournement.

1 votes

Tandis que cela pourrait fonctionner, ce n'est pas du tout pratique (implique trop d'étapes, surtout s'il y a plusieurs applications impliquées).

0 votes

Peut être automatisé avec Tasker

1voto

David White Points 21

Je sais que c'est un vieux fil de discussion. Et je comprends que Ti Backup fonctionnait pour détacher une application du Play Store. Mais je comprends aussi que cela ne fonctionne plus. Pour ceux qui sont intéressés, j'ai créé une application qui fait plutôt bien ce travail. Elle s'appelle Masquer les mises à jour dans le Play Store, et est disponible pour environ ~USD 1. Il y a une vidéo montrant l'application en action. Elle nécessite un accès root.

2 votes

Merci pour tes efforts, David! Mais je n'aime pas les effets secondaires qu'il a par exemple sur les applications avec des achats intégrés, ou sur ma liste d'applications. Pendant ce temps, j'ai pris l'habitude de toujours voir 7 mises à jour qui ne m'intéressent pas - même si j'aimerais que Google ajoute une option comme AppBrain dans son application : sauter une (ou toutes) les mises à jour pour une application donnée. Et au fait : merci pour l'ouverture (la divulgation que c'est votre application). Je me suis permis d'ajouter le lien - mais aussi de mentionner le prix.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X