Как избавиться от уведомлений об обновлениях для данного приложения в Google Play Store?

40

Общий вопрос

На моем устройстве установлено приложение X версии Y. По какой-то причине я не хочу обновлять его до более новой версии (Y + z). Тем не менее, приложение Google Play Store всегда перечисляет обновления для X, что удерживает меня от простого «обновить все». Мой вопрос, поставленный в одном предложении:

Как навсегда скрыть обновления для X из списка «доступные обновления»?


Конкретные примеры

Во-первых, я знаю, что есть альтернативы, например, приложение AppBrain Market , которое может справиться с этим достаточно (пропустите это обновление, пропустите все будущие обновления). Я предпочитаю «общее решение», которое не зависит от 3 RD рынка приложения партии.

Во-вторых, я знаю, что в Titanium Backup есть «Доктор рынка», который можно использовать для отключения приложения из Google Play . 1 Однако в моем конкретном случае это работало только в течение нескольких часов: я отключил GTalk , так как не хочу заменять его Hangouts . Уведомление об обновлении пропало на несколько часов, затем вернулось. Понятия не имею, что восстановило «ссылку».

В-третьих, просто чтобы убедиться: я не говорю о функции «автоматического обновления», о которой говорилось, например, в разделе Как включить автоматическое обновление Play Store для нескольких приложений? , Я скорее надеялся на что-то близкое к тому, что магазин Google Play не предоставляет обновления для замороженных приложений? , но без необходимости «заморозить» рассматриваемое приложение (которое я все еще хочу использовать, но в установленной версии, а не в доступной «будущей версии»).

В-четвертых: Нет, удаление рассматриваемого приложения здесь не вариант, хотя оно идеально скрывает любые будущие обновления от отображения :) Также не происходит «зависание», так как приложение используется регулярно.

В-пятых: для моего примера GTalk есть связанный вопрос: обновляются ли приложения, включенные в архив gApps, через Google Play? Тем не менее, я хочу наоборот: без обновления.


Вполне возможно, что «Службы Google» (и другие предустановленные приложения) обрабатываются особым образом и каким-то образом восстанавливают свои «рыночные ссылки». В этом случае мой вопрос включает в себя: Как предотвратить это?


Обновить

В XDA есть тема, обсуждающая ту же самую проблему. До недавнего времени обходной путь для «установленных пользователем приложений» заключался в их удалении и последующей загрузке, .apkно даже это перестало работать. Что ж, повторная подпись .apkс другим ключом может работать для пользовательских приложений. Но и то, и другое не работает для предустановленных приложений (невозможно загрузить их для переопределения; другая подпись может полностью отказаться от установки).

Кроме того, есть проблема, поданная по этому поводу некоторыми "joel.bou ..". Нетрудно догадаться, хотя и не учтено: это будет Жоэль Бурквард. Если это действительно он, то это действительно проблема (для тех, кто не знает: Joël - разработчик Titanium Backup ). Позвольте мне процитировать из номера:

Для справки: в дни работы Android Market можно было «прикреплять» или «отсоединять» приложения (на устройствах с root-доступом) с помощью системного инструмента, такого как Titanium Backup. Но в настоящее время (с приложением Google Play Store) это стало практически невозможным, поскольку кажется, что полный список приложений синхронизируется с серверами Google, и пользователь не может это контролировать.

Это объясняет, почему отсоединение с помощью таких приложений, как Titanium Backup , больше не является постоянным. И боюсь, я спросил невозможное. Но я думал то же самое в прошлом с другими вопросами, и неожиданно получил решения здесь. Так что я еще не теряю надежду на это!


1: то, что это делает, объясняется eldarerathis в этом посте (спасибо Firelord за то, что выкопали это !)

Иззи
источник
2
Спасибо, что вернули эту тему. Теперь вы преобразуетесь в мое мнение о приложениях, о которых говорилось в этой ветке, которая была у нас в прошлом году: Вопрос 39180 «Постоянно указывать на то, что приложение должно быть отказано в обновлении»
wbogacz
1
Да, это связано. Но то, что geffchang сказал в своем ответе на это, это то, что я уже безуспешно пытался: Отсоединение приложения от Playstore с помощью Titanium Backup . Очевидно, это не работает постоянно с предустановленными приложениями Google.
Иззи
@Firelord Не могли бы вы подытожить это в ответе (желательно с подсказками к операторам SQL)? Не уверен, буду ли я реализовывать это (увидим тогда), но я вижу, что это может сработать: затронутые приложения известны заранее (включая их имена пакетов), поэтому «статические» сценарии SQL можно создать один раз (один для каждая БД). Затем используйте, например, Tasker для sqlite*ежедневного выполнения сценариев (с двоичным кодом для этих баз данных) (необязательно: свяжите его с сценариями запуска init.d). Определенно стоит +1 как минимум. Спасибо за подсказку - и заранее за ответ :)
Иззи
@ Иззи Этот комментарий выше, вы знаете, что с ним делать сейчас. :) И, eldarerathis ♦объяснил здесь, что делает это "Отделение от рынка" в TiBa (редактирование localappstate.db). Вы можете включить ссылку на этот ответ на свой вопрос.
Повелитель огня
@ Пожарный Действительно. Это в основном то, что вы предложили - просто в вашем случае это не нуждается в TiBu. Думая о чем: у TiBu есть планировщик. И вы можете фильтровать приложения. Должна быть возможность определить фильтр для приложений, который будет «молчать», и «отключать» их два раза в день с помощью этого планировщика - в качестве альтернативного решения. Когда позволит время, возможно, я поиграю со всем этим ...
Иззи

Ответы:

14

Примечания :

  • ОП уже знает детали, но я разработал вещи, учитывая других читателей.
  • Я предположил, что устройство рутировано, и мое решение протестировано на Android 4.2, 4.4 и 5.0, все под управлением Play Store v5.6.8. (Извините! Не удалось проверить это на Киткат, но нет причин полагать, что это не сработает.)

Решение Крейг на самом деле очень хорошо, и если она каким - то образом может быть выполнена (пользовательский виджет) с Tasker , то все пойдет очень гладко.

Ответ на Анан также может выполнять работу, используя pm disable <PKG>в Tasker , но один не может использовать это любимые приложения до тех пор , как Play магазин обновляет список, который некоторые пользователи не предпочли бы.

И я никогда не пробовал Changelog Droid , поэтому не могу комментировать.

Но у меня есть другой способ добиться цели, не очень чистый в GUI, но хороший. Вот так:

Play Store имеет свои базы данных под /data/data/com.android.vending/databases/. Есть три базы данных, которые стоит рассмотреть, а именно. library.db, localappstate.db, package_verification.db.

  • library.db- у него есть таблица, в ownershipкоторой будут перечислены приложения, которые вы когда- либо устанавливали из Play Store со всеми связанными с ними учетными записями Google Play Store. Обратите внимание, что это приложение всегда включает те приложения, которые вы когда-то установили в Play Store давным-давно и удалили позже.
  • localappstate.db- здесь есть таблица, в appstateкоторой будут перечислены все пользовательские приложения, которые сейчас установлены на вашем устройстве. Установленные из Play Store также покажут название приложения, а загруженные - нет.
  • package_verification.db- эта база данных будет отображаться, если вы включили «Проверка приложений» в разделе «Настройки» Android. У него есть таблица с именем verification_cacheсписка приложений для проверки.
  • suggestions.db- здесь не имеет значения, но у него есть таблица с именем suggestions, в которой содержится список всех поисковых запросов (ключевых слов), выполненных с помощью панели поиска Play Store.

Обратите внимание, что у меня нет источника, подтверждающего мою претензию, здесь весь личный опыт. Вам рекомендуется не соглашаться (с доказательствами), чтобы качество этого ответа могло быть еще более улучшено.


Теперь вернемся к вопросу. На моем Lollipop я смог удалить 37 приложений из списка обновлений и оставил только одно приложение, для которого я использовал «Обновить все» для дальнейшей проверки решения. Работало отлично!

Требуемые шаги:

  1. Принудительно закройте магазин Play Store, чтобы избежать повреждения данных, поскольку нам нужно отредактировать его базу данных.

  2. Удалите право собственности на ваше приложение изlibrary.db : Я использовал sqlite3(используйте установщик SQLite для Root, если у вас его нет). Я использовал очень простой запрос, который удалял бы запись (строку) из базы данных, идентифицируя строку, используя значение. Чтобы узнать дальнейшее использование sqlite3использования этого ресурса .

    Общая команда для удаления владельца будет:

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

    Замените <PKG_name>на название пакета вашего приложения. Например, для браузера Chrome название пакета таково com.android.chrome.

    Вы можете найти имя пакета вашего приложения, используя App Browser или OS Monitor , или просто обратиться к вопросу: Просмотреть полное имя пакета приложения?

  3. Удалите дополнительную информацию о приложении из localappstate.dbиpackage_verification.db : Обратите внимание, что два вышеописанных действия сделали работу на моих устройствах. Поскольку я не хочу, чтобы приложение отображалось по какой-либо причине в списке обновлений, я удалил все детали из всех вышеупомянутых баз данных.

    Общая команда для удаления информации localappstate.db:

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

    И package_verification.dbэто будет:

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

Ядро покрыто. Теперь по поводу исполнения:

  • Вы можете сделать сценарий
  • Используйте adb shellили adb pullбазы данных, и выполняйте редактирование на ПК с использованием программного обеспечения SQLite (например, DB Browser for SQLite )
  • Вы можете использовать приложения, такие как SQLite Editor или aSQLite Manager, чтобы вручную удалить записи приложения
  • Используйте любое терминальное приложение, например Terminal Emulator for Android - оно позволяет использовать виджеты, которые вы можете использовать в качестве ярлыка для команды или скрипта. Смотрите мой ответ, чтобы знать, как сделать такой ярлык
  • Используйте Tasker для создания профилей на основе времени, приложения или любого профиля, который вам подходит
  • Вставьте свой скрипт в автозагрузку, хотя я еще не пробовал, поэтому спросите OP

Хотя приложение не будет отображаться в списке установленных приложений или обновлений, но оно обязательно будет отображаться во вкладке «Все» в разделе «Мои приложения» в Play Store . Я не очень часто пользуюсь этим магазином, поэтому больше не проверял другие его настройки.

Кроме того, вы можете заметить, что если ранее вы не отметили «Доступные обновления приложений» в настройках Play Store и проверили его после выполнения указанных команд, он запустит синхронизацию и ваши изменения, как очевидно, будут потеряны.

Также имейте в виду, что Google хранит всю информацию на своих серверах. Поэтому рано или поздно базы данных будут обновлены. В моем устройстве Lollipop я ждал около 24 часов и не увидел изменений в базах данных, кроме YMMV.


Для некорневых устройств

Это теория, и я не буду утверждать, что она будет работать, но вы можете попробовать:

  1. Force закрыть и взять adb backupв магазине Play .
  2. Извлеките резервную копию и внесите необходимые изменения в базы данных.
  3. Упакуйте измененные файлы в новый файл резервной копии и восстановите их на устройстве.

    Если вы не знаете, как распаковать и упаковать резервную копию ADB на ПК, взгляните на Android Backup Extractor (ABE) (для этого требуется среда выполнения Java , и она предназначена README.txtдля использования), который распаковывает .abфайл в папку, .tarкоторую вы затем можете извлечь используя архиватор, такой как Ark, 7zip, WinRAR и другие.

    Вы можете использовать DB Browser для SQLite, чтобы вносить изменения в базы данных, найденные внутри извлеченного содержимого (возможно) apps/com.android.vending/db/.

    Кроме того, вы можете взглянуть на посты, связанные с резервным копированием Android, такие как this , this и Adebar - все это предложено Izzy .

  4. Посмотрите, пропало ли приложение из списка обновлений.

  5. Если вам удастся выполнить шаг 4, тогда запустите ADB по беспроводной сети, чтобы выполнить шаги 1-4 на самом устройстве Android (каким-то образом), а не на ПК - это может быть очень полезно в Tasker, если вам это удастся.
  6. Что ж, если вам удастся пройти весь путь до шага 4 или 5, то вы, возможно, также можете ответить: Как избавиться от приложений из списка обновлений Play Store? :)

Редактировать:

Ну, я не единственный, кто понял это так:

  1. Android: перестать хотеть обновлять Skype - очень близко с добавленной частью скрипта, но без объяснения причин, конечно
  2. (Требуется Root) Для дальнейшего использования, как обновить Ingress, не дожидаясь развертывания. - недостаточно хорошо, потому что library.dbэто главный виновник
  3. Получение имени пакета для приложения
  4. [WIP] No Call Sound, блокировка автообновления Play Services
Повелитель огня
источник
Очень подробный ответ, Повелитель Огня - я бы высказал это несколько раз, если бы мог! Я обязательно проверю это, как только позволит время, и, возможно, добавлю свой опыт / дополнительные советы. // Что касается некорневых устройств, я бы застрял на шаге 3. Любая дополнительная информация / ссылка о том, как это сделать? У нас здесь длинный пост , но он выглядит сложным. Для # 2 есть этот пост , и couse ab2tarв Adebar ;)
Иззи
@ Иззи Спасибо! Ссылки на упомянутые вами посты ссылаются на ABE (Android Backup Extractor). Это может упаковать и распаковать очень легко. Все, что вам нужно, это Java Runtime Environment. // И я мог бы пойти дальше, потому что мне не нравится оставлять незавершенные дела, но мои adb restoreвнезапно завершаются на моих устройствах для восстановления любого приложения, поэтому я не могу действительно проверить свою собственную теорию. : /
Повелитель огня
Ой, это плохо. Вы все еще можете включить ссылку на ABE на шаге 2 + 3 в своем ответе. И, конечно же, как только эта проблема с вашими устройствами будет решена, мы все будем рады видеть, как вы «исправляете этот слабый конец» :)
Иззи
@ Иззи Готово! Ну, два моих устройства страдают от этого внезапного прекращения восстановления, а третье (ну, устройство Micromax, помните Юрика: D) решило вообще не обнаруживать USB-соединение. Похоже, нам придется подождать довольно много, чтобы увидеть эти свободные концы. :)
Повелитель огня
1
Большой! Сначала я использовал Scheduler в Titanium с Detach from Market, который мне приходилось запускать не менее 4 раз в день, но все же иногда показывалось обновление (в моем случае крайне глючное Swype 3.0.x). Теперь я написал задачу Tasker, которую я запускаю с помощью профиля задачи каждый час. Большое спасибо :) Одно: мне пришлось использовать Titanium sqlite3 (/data/data/com.keramidas.TitaniumBackup/files/sqlite3) из-за этой ошибки PIE, возникающей в случае пропуска пути.
Франк
7

Это проблема и для меня с парой приложений, в частности, с фонариком, где последняя версия не очень хорошо работает с Lollipop, но с предыдущей версией.

В прошлом я решил использовать Change Droid, но, как было сказано выше, если вы откроете магазин воспроизведения, он может вернуться.

В настоящее время я использую решение для запуска запланированной задачи из Titanium Backup, чтобы отключить приложение от маркета. Я в настоящее время запускаю это 4 раза в день. Он запускается в фоновом режиме в назначенное время, и поэтому, когда я проверяю Play Store на наличие обновлений, его там нет.

Мне придется изучить это, но может быть / должен быть способ выполнить задачу, когда магазин игр открыт ... не уверен.

---- Редактировать ---- Некоторые попросили более подробную информацию о настройке ТБ ...

Сначала вам нужно создать фильтр только для тех приложений, которые вы хотите отключить. Вы получаете доступ к этому в меню. Вы добавляете «Элементы» или приложения в фильтр, поэтому затрагиваются только выбранные приложения. Убедитесь, что вы не запускаете detach со всем выбранным без применения фильтра :)

Скриншот Скриншот

Далее необходимо составить расписание с применением фильтра к расписанию.

Скриншот Скриншот

Как вы можете видеть, это только для одного запланированного события мс, в 4 утра

После завершения запланированное задание будет выглядеть примерно так

Скриншот

Вам придется повторить это и изменить время в зависимости от того, сколько раз вы хотите, чтобы это произошло.

У меня есть мой набор на 4 утра 8 утра и 4 вечера. Кажется, работает на меня.

Надеюсь, что это делает это немного яснее. Если вы работаете с туберкулезом, я уверен, что с этими экранами вы сможете решить эту проблему.

Craig

Craig
источник
Я использовал это решение в течение нескольких дней, но всегда получаю сообщение от Titanium в информационной панели после завершения. Немного раздражает, а также 4 задачи (в моем планировщике) было недостаточно, но иногда обновление снова было видно. Так что сейчас я предпочитаю решение командной строки Firelord, которое может быть выполнено Tasker полностью в фоновом режиме и работает отлично :)
franc
3

С помощью следующего решения:

  1. Вы не зависите от стороннего маркетингового приложения.
  2. Он может быть настроен на обход уведомлений об обновлениях в Google Play.
  3. Вы можете отменить «блокировку обновления» приложения, когда захотите (что позволяет обновлять приложения для будущих версий)
  4. Он не удаляет и не останавливает приложения, которые вы используете.
  5. Это работает и с Gapps.

Существует бесплатное приложение под названием Changelog Droid (раньше это было приложение freemium, теперь оно имеет полную функциональность бесплатно). Через него вы можете управлять обновлениями других ваших приложений, будучи посредником с Google Play.

Преимущество заключается в том, что вы можете отправлять приложения в черный список , исключая показ обновлений временно или «постоянно» (пока вы не передумаете). Вы также можете следить за обновлениями для приложений, которые вы удалили или никогда не устанавливали, но хотите наблюдать. Я сопровождаю этот ответ некоторыми скриншотами (обозначая разными цветами навигацию по экрану), чтобы вы поняли, как он работает.

Как занести приложение в черный список Черные списки приложений Белые приложения

Как убрать приложение из черного списка Меню настроек предпочтения

Как обойти уведомления Google Play Включить доступ к уведомлениям для Changelog Droid Показать системные приложения (Gapps)

Выберите Gapps, чтобы показать

Единственным недостатком является то, что при открытии Play Store, напрямую или из этого приложения, будут отображаться все приложения (включая те, которые вы не хотели обновлять, поскольку приложение, применяющее фильтр, - Changelog Droid, а не сам Google Play, это было ожидаемо)

Google Play по-прежнему показывает все приложения

Но в Changelog Droid вы можете получить доступ к каждому приложению в Google Play с помощью кнопки, а затем обновить его по отдельности.

Извините: в настоящее время нет возможности обновить все разрешенные приложения за один шаг из Changelog Droid, но, возможно, разработчик может реализовать это в конце концов.

Примечание. Я все еще не проверял сценарий, который вы описали (я уже обновил / заменил Talk / Hangouts), но он может работать в вашем случае. Просто не открывайте представление « Мои приложения» в Google Play, чтобы не вызывать автоматическое обновление приложений.

Франсиско Альварадо
источник
1
Большое спасибо, Франциско! Это очень напоминает мне приложение AppBrain Market, как это было много лет назад (не пробовал недавно, так как их собственный установщик был отключен). Тогда, когда их «быстрый веб-установщик» все еще работал, вы могли даже вызвать «обновить все» в отфильтрованном списке ... Кстати: посещение «Мои приложения» не вызвало бы никаких обновлений для меня, так как я включил авто Обновление полностью. Думаю, я попробую ваше решение, как только позволит время;)
Иззи
1

Отключите приложение в основных настройках приложения или в диспетчере приложений и откройте магазин воспроизведения, и приложение не должно быть в списке. Обновите все и просто включите приложение, когда обновление будет завершено. У меня та же проблема, приложение для отправки текстовых сообщений, которое, если я обновлюсь, получит некрасивую рекламу.

Анан
источник
1
Хотя это может сработать, это далеко не удобно (включает слишком много шагов, особенно если задействовано несколько приложений).
Иззи
Может быть автоматизирован с помощью Tasker
эндолит
1

Я знаю, что это старая тема. И я понимаю, что Ti Backup использовался для отключения приложения из Play Store. Но я также понимаю, что это больше не работает. Для тех, кто заинтересован, я создал приложение, которое неплохо справляется с этой задачей. Она называется « Скрыть обновления в магазине Play» и доступна по цене ~ 1 доллар. Существует видео, показывающее приложение в работе. Это требует рута.

Дэвид Уайт
источник
2
Спасибо за ваши усилия, Дэвид! Но мне не нравятся побочные эффекты, которые он имеет, например, в приложениях с покупками в приложении или в списке моих приложений. Между тем я привык всегда видеть 7 обновлений, которые мне не нужны, хотя я бы хотел, чтобы Google добавил в своем приложении опцию, подобную AppBrain: пропустить одно (или все) обновление для данного приложения. И кстати: спасибо за открытость (раскрытие того, что это ваше приложение). Я взял на себя свободу, чтобы добавить ссылку - но также упомянуть цену.
Иззи
1

Решение, которое я нашел для пользователей root, состоит в том, чтобы просто переподписать apk (найденный в /data/app/вашей папке TitaniumBackup после резервного копирования) с помощью ZipSigner и переустановить.

Дражен Беловук
источник
Это не всегда вариант (проблемы с подписью в некоторых приложениях, использующих «общие ресурсы»), но для некоторых это может быть обходной путь, да.
Иззи
Можете ли вы уточнить? Любопытно.
Дражен Бжеловук
См., Например, Подделка подписи пакета поддержки . В основном это предустановленные приложения и приложения одного и того же производителя, обычно Google. Поскольку я больше не использую приложение Google Playstore, у меня больше нет проблемы, о которой идет речь в этом вопросе.
Иззи
Интересный. Думаю, все зависит от распространенности проверки подписи среди приложений. К счастью, до сих пор не было проблемой для меня.
Дражен Бжеловук
По общему признанию, проблемы в этом контексте редки - но не могут быть полностью проигнорированы;)
Иззи
0

Я попытался с помощью приложения "Диспетчер разрешений" (думаю, мне нужно рутироваться). Я отключаю разрешение, которое не важно для приложения, которое я не хочу обновлять (например, отключено разрешение вибрации в ES File Explorer и wakelock в Quickpic). Диспетчер разрешений перекомпилирует приложение, удаляет оригинал и переустанавливает вновь скомпилированное приложение. После этого я открыл Play Store и напоминание об обновлении исчезло.

Патрик
источник
Это означало бы манипулирование исходными .apkфайлами (и да, есть несколько таких приложений: для приложений, которые вы установили самостоятельно, вам, вероятно, не понадобится root, но для работы с системными приложениями вы бы это сделали). Я бы посчитал, что это обходной путь, но я бы не использовал этот подход. Спасибо, в любом случае!
Иззи
0

Еще один кандидат только появился на горизонте. Я еще не проверял это, но это звучит очень многообещающе: StorePrefs .

  • Требования:
    • корневое устройство
    • Xposed установлен
  • Обещания:
    • Блокировка быстрого обновления
    • Игнорирование некоторых обновлений (если у вас есть обновления, доступные в разделе «Мои приложения» в Playstore, просто нажмите и удерживайте это обновление, чтобы игнорировать его)

Будучи модулем Xposed , он должен уметь обходить недостатки других решений, которые у нас были до сих пор:

  • Если Play Services решили повторно связать несвязанное приложение, модуль должен быть в состоянии принять меры. Так что никакой специальной ручной работы не требуется, нет настройки Tasker
  • не нужно возиться с базами данных SQLite или adb shell
  • не требуется вторичная проверка обновлений (как ChangelogDroid)
  • никаких манипуляций с .apk файлами
  • Единственная проблема для некоторых пользователей: не работает на нерутированных устройствах и устройствах без Xposed

Поскольку я де-гуглифицировал свои устройства и больше не использую приложение Playstore, я не могу проверить - так что отзывы от тех, кто может, приветствуются :)

Иззи
источник
0

Как и в случае с титановой резервной копией, вы также можете отсоединить приложение от магазина Google Play с помощью 3C Toolbox . Это, кажется, до сих пор постоянно. Рут требуется.

кортик
источник
1
Я больше не могу это проверить (избавился от всех Служб Google), но поскольку это может иметь отношение к другим: какие временные рамки охватывают «до сих пор»? Может быть, 3C Toolbox постоянно следит и обновляет этот параметр?
Иззи
Не уверен, что что-либо> 5.0 позволяет этому изменению придерживаться. Google Play автоматически переподключает приложения. К сожалению, единственное, что нужно закрыть - это вручную отключить автообновления и сделать резервную копию нужной версии.
Загадка