Сервисы Google Play для Instant Apps скачивают / устанавливают самостоятельно без авторизации, скачивают / обновляют другие компоненты, как отключить?

28

Задний план

« Службы Google Play для мгновенных приложений » установились на мое устройство без моего разрешения. Это нарушило функциональность моего брандмауэра (AFWall и пара других приложений). И это обновляет себя и другие приложения / компоненты без разрешения. Когда я удаляю этот компонент, он снова загружается и устанавливается обратно. (То есть, скорее всего, это "сервисы Google Play", которые на самом деле делают это в фоновом режиме)

Нет никаких подтверждений и уведомлений о загрузке, обновлении или установке. Я обнаружил это, заметив, что некоторые функции моих приложений были изменены / повреждены. Поэтому я использовал приложение («Системная информация для Android»), и оно показывает, что на самом деле этот «Сервис Google Play для мгновенных приложений» был установлен день назад.

Мой вопрос: как полностью отключить несанкционированные обновления устройства Android, сохраняя при этом следующие функциональные возможности:

  • Синхронизация контактов
  • Google Play магазин
  • Приложение Google Maps

На этих снимках экрана видно, что все настройки, отвечающие за автоматическое обновление, отключены. Поэтому эта загрузка и установка явно не авторизованы и не должны происходить. Снимок экрана настройки мгновенных приложений отображается после того, как объект уже установлен. Оставив только глобальные настройки из Google Play Store.

введите описание изображения здесь
Настройки ›Приложения // Настройки› Google ›Мгновенные приложения (отключено!) // Настройки Play Store (Автообновление отключено!)

Все началось после того, как я последовал вводящему в заблуждение предложению , которое вы можете увидеть на этом снимке экрана, чтобы обновить «Сервисы Google Play»:

введите описание изображения здесь
нажмите на изображение, чтобы увеличить


Обновление 1:

До сих пор я обнаружил, что что- то (скорее всего, «Сервисы Google Play») запрашивает загрузку + установку. Для этого нужно разместить запрос в Google Download Manager. Непонятно, что вызывает это, но если внимательно следить за устройством, значок из диспетчера загрузки появляется в уведомлении, указывающем процент загрузки. Однако по завершении он мгновенно исчезает. Тем не менее, ничего не указывает на установку.

Что я пробовал до сих пор:

  1. Установите следующие как на уровне пользователя , а не приложений системного уровня , что они изначально: Google Account, Г.П. магазин и служба Framework ( com.google.android.gms; com.android.vending; com.google.android.gsf) Это не сработало. Загрузка по-прежнему запрашивается и впоследствии устанавливается.
  2. Кажется, любой способ блокировки установки заставит ее загружаться снова и снова (до тех пор, пока ваши данные не будут израсходованы). Поэтому, скорее всего, лучшим подходом было бы в первую очередь предотвратить загрузку. Я не смог установить Download Manager как пользовательское приложение, которое, похоже, требует контроля.
  3. Блокировка Download Manager и / или Play Store через брандмауэр возможна, но это нарушает единственный надежный способ загрузки приложений.

Обновление 2:

Переход на предыдущую версию GP Services (v11.3.02) работал в течение нескольких дней, но сегодня службы GP для Instant Apps были загружены и установлены. Таким образом, не имеет значения, какую версию вы используете. Скорее всего, Google обновит все телефоны таким образом, независимо.

Обновление 3:

Так что теперь Google обновляет себя на регулярной основе, когда захочет. Если я транслирую фильм, снижаю скорость, использую пропускную способность интернета, за которую я плачу деньги за МБ. На этом изображении вы можете видеть, что 3 приложения Google были обновлены без разрешения.

введите описание изображения здесь

Эмиль
источник
1
Привет @Firelord Просто чтобы прояснить, я говорю о «сервисах Google Play для Instant Apps», а не о стандартных «сервисах Google Play». Последний является недавней разработкой и ведет себя как вредоносная программа (хотя это официальное приложение Google). Я бы не стал вдаваться в подробности о функциях приложения, которые оно сломало, в основном потому, что оно, скорее всего, будет зависеть от устройства / ПЗУ (у меня работает стандартное ПЗУ, и оно укоренено, но ради вопроса я бы хотел найти «нормальное» некорневое решение). AFWall это сломалось таким образом, что это дает мне ошибку «Не удалось применить правила», периодически.
Эмиль
1
@ Изя, спасибо за правки, проясняю.
Эмиль
1
Рад читать, Эмиль! И да, попробуйте еще немного. Если побочных эффектов нет, подумайте над ответом на свой вопрос :)
Иззи
1
Вот ссылка на соответствующее обсуждение на форуме Google Play.
Стэн
3
Привет @frans, дело не только в пропускной способности / стоимости. Это также установка нежелательного программного обеспечения, которое я пытаюсь предотвратить. Кроме того, я загружаю приложения и обновления через интернет телефона, так как в настоящее время у меня нет доступа к WiFi. И еще одна вещь, это средство обновления «слушает» изменения состояния, поэтому, если вы переключаетесь на WiFi, он расставляет приоритеты в вещах Google и сразу же выдает им подсказки. В обходном решении, которое я разместил ниже, это в основном состояние гонки, я бы скачал какое-то приложение, прежде чем оно поймет, что можно загружать обновления, но затем я снова его заблокирую, но это не на 100% надежный способ.
Эмиль

Ответы:

7

Обновление : в последних версиях Android вы можете сделать это из Settings-> Google-> Instant Apps-> OFF.

Оригинальный ответ следует ниже:

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

Запустите на устройстве через терминал (connectbot, juicessh и т. Д.).

pm hide com.google.android.instantapps.supervisor

Или, если вы работаете через adb на ПК, подключенном через кабель (или через wifi adb), используйте:

adb shell pm hide com.google.android.instantapps.supervisor

В отличие pm disable pm hideтакже работает на некорневых устройствах. До сих пор я не видел больше уведомлений о мгновенных приложениях.

Если вышеупомянутое не работает для вас, тогда другой подход будет модифицировать контекст SELinux файла / папки (например, с помощью chcon).


Чтобы отменить указанную pm hideвыше команду, используйте:

pm unhide com.google.android.instantapps.supervisor
ccpizza
источник
Ну, это будет нацелено на это конкретное приложение, но я бы хотел заблокировать все несанкционированные обновления или установку новых приложений. Кроме того, такая установка и загрузка на системном уровне происходит скрытно от пользователя. То, как это работает, проверяет версию и, если необходимо обновить, загружает файл за кулисами. После завершения загрузки он пытается выполнить установку, а если установка не удалась, он попытается снова в другое время. Временные файлы периодически удаляются, поэтому, если он не может найти его ... он загрузит его снова. Если вы отслеживаете временную папку, вы можете поймать ее, делая это снова и снова ...
Эмиль
@Emil: разве com.google.android.instantapps.supervisorприложение, которое выполняет мониторинг, вы не упомянули? Или это какой-то конкретный сервис от сервисов Google Play? Если это второй, то я думаю, рецепт не завершен. Я также запретил пакету запускаться в фоновом режиме и запускаться при загрузке.
ccpizza
Я не мог точно определить, что делает мониторинг. На Android есть система настройки слушателей, и есть пара приложений, которые утверждают, что настраивают их, но они оказались неэффективными. Я не мог найти способ получить доступ / контролировать эту «очередь» напрямую или как-то ее перехватить. В основном все, что Google считает основным, может обойти настройки для обычных приложений
Эмиль
3

Как следует из названия, это часть приложений служб Google. PlayStore использует его для запуска приложений без их установки (новый сервис). Можно отключить, но не удалить (насколько я знаю, он будет продолжать устанавливать его самостоятельно, как часть основных служб).

Для отключения перейдите в « Настройки» ›Google› Instant Apps и переключите тумблер ( Справочник ).

Я верю, что это будет системное приложение на новых устройствах по мере их выхода, для остальных из нас со старыми устройствами они просто принудительно установятся на совместимые устройства.

Изменить: В связи с тем, что вопрос был изменен после того, как я ответил. Этот ответ не распространяется ни на одно рутованное устройство. С рутированным устройством это может быть возможно, но я не могу придумать решение, которое будет простым или постоянным.

Хосе Ривера
источник
Давайте продолжим эту дискуссию в чате .
Хосе Ривера
@Emil Я только что убрал все комментарии, кроме ссылки на ваш чат (где комментарии еще доступны). Кроме того, я не могу согласиться с вами в том, что это не ответ: в вашем вопросе вы написали «кажется, что не существует простого способа навсегда отключить» и «мой вопрос: как полностью отключить эту функцию» - это то, что Josue В этом посте говорится: «Для отключения зайдите в Настройки, Google, Instant Apps и переключите тумблер». Если вы сделали это, и это не сработало, пожалуйста, укажите это.
Иззи
1
Во всяком случае, я закончил, пытаясь объяснить это. Он задал вопрос, я в основном ответил «нет», объяснил почему и дал информацию для всех, кто может оказаться в подобных ситуациях. Вопрос был изменен, я отредактировал, чтобы выразить, что мой ответ применен к исходному вопросу. Если я не понимаю, как работают правила, удалите мой ответ и дайте мне знать, как я могу добиться большего.
Хосе Ривера
1
@JosueRivera оставьте это, если вы удовлетворены, вы не ошибаетесь. Если ответ неправильный, люди могут понизить его и двигаться дальше.
Повелитель
1
Он автоматически обновляется, даже если выключен. Я отключил его более месяца назад, и сегодня он автоматически обновляется.
TGF
1

About: [Root Only] Это решение включает блокировку доступа для записи к папке temp (cache), куда Google загружает свои системные приложения, такие как Google Play Services, Google Play для Instant Apps и т. Д. Это проще, чем кажется, потому что я Объясняя все, это выглядит много. После этого установка новых приложений, по сути, делается в три этапа, и процесс аналогичен установке программ на ПК.


Справочная информация: в моей системе папки работают следующим образом:

1) /data/data/com.android.providers.downloads/cache
* Это папка, в которую устанавливаются системные обновления Google (а также новые системные приложения).
* К сожалению, эта папка также используется для загрузки обычных новых приложений. Таким образом, вы не можете просто заблокировать это навсегда. Вы должны иметь возможность блокировать / разблокировать его при загрузке новых приложений.

2) /mnt/sdcard/Android/data/com.android.vending/files
* Эта папка используется для нормального обновления (не для приложений Google). Поэтому нет необходимости блокировать это или делать что-то особенное, когда дело доходит до обновления ваших обычных приложений, таких как Facebook, игры и т. Д.


Решение. Приведенная выше папка кэша остается заблокированной во время нормальной работы. Когда вы хотите установить новое приложение, общий процесс выглядит следующим образом (хотя в основном это автоматизировано): (1) разблокировать папку кеша (2) заблокировать папки приложения, если оно пробралось, пока оно разблокировано, и установило его. (3) Загрузите ваше новое приложение из магазина (4) Скопируйте загруженную программу из установочной папки в другое место и переименуйте ее с именем по умолчанию (download.apk) (5) Очистите и заблокируйте папку кэша (6) разблокируйте папки приложений ( 7) Нажмите на файл apk, чтобы установить его.

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

  1. Блокировка разблокировки достигается с помощью приложения под названием Gscript. Вы можете использовать любое другое приложение, которое выполняет выполнение сценариев. В магазине Google есть версия, но она падает для меня и других людей. Здесь есть стабильная ветвь: https://bitbucket.org/Equidamoid/gscript (спасибо посту автора здесь: /programming//a/20328927/7609435 ) Просто вставьте туда эти два скрипта. (Оба нуждаются в SU)

    A) Выполнить перед загрузкой - Блокировать приложения / Разблокировать кэш

    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

    Б) Выполнить после завершения загрузки и после копирования файла - очистить и заблокировать кэш / разблокировать приложения

    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

  2. Вы узнаете, что приложение загружено, когда в Play Store появится сообщение «загрузка не удалась». Он скажет это, потому что не смог установить apk, но на самом деле загрузка прошла успешно, и он находится внутри папки кэша . Прежде чем запускать скрипт (B) выше, вы должны переместить файл из папки кэша в другое место. Конечно, вы можете сделать это с помощью любого приложения, но мне нравится использовать Total Commander, потому что он может иметь две панели и поддерживать закладки (я добавил кеш ). Поэтому переместите его и переименуйте файл с именем по умолчанию на другое, а затем запустите (B) скрипт выше. Также обратите внимание, что при копировании APK у него должен быть значок приложения. Если он имеет значок по умолчанию, возможно, он поврежден при загрузке по другим причинам, поэтому вы можете попробовать загрузить его снова.

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

Примечание 1: Если вы щелкнете по новой загрузке и увидите «в ожидании», просто (принудительно) закройте Google Play и перезапустите его, загрузка должна начаться автоматически.

Примечание 2: Я проверил это только с Android: 6.0.1 / MIUI: 8.5.3.0, поэтому это решение может быть не универсальным. Проверьте, есть ли у вас папка кэша и загружается ли там загрузка Служб Google Play (после завершения загрузки она остается там некоторое время).

ПРЕДУПРЕЖДЕНИЕ. Хорошо держать папку кеша заблокированной, но если вам случится перезагрузить телефон, когда эти папки с данными заблокированы, ваш телефон не загрузится. И вам нужно будет перейти вручную и изменить его из оболочки TWRP.

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

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