Obtainium и Shizuku: как обновлять Android-приложения в обход Play Store

Play Store не спешит: разработчик может неделями держать патч на GitHub, а магазин сообщать, что у вас последняя версия. Причина — поэтапные раскатки: Google случайно выбирает получателей для каждого релиза и не уведомляет, что версия уже существует. Связка Obtainium и Shizuku решает это: приложения обновляются в фоне без подтверждений, а источником служит страница релизов самого разработчика.

Зачем нужен Shizuku, если рут не хочется

Android-приложения работают в песочнице с коротким списком разрешений, а ADB на компьютере получает доступ уровня shell: может устанавливать приложения, выдавать разрешения и менять защищённые настройки. Shizuku поднимает на телефоне небольшой фоновый сервер с теми же правами shell, и телефон начинает работать как собственный компьютер: одобренные приложения отправляют запросы серверу, а тот их выполняет.

Сам Obtainium без Shizuku ставит обновления молча только на Android 12 и новее, только для приложений, собранных под свежую версию Android, и только для тех, что он установил сам. Остальные обновления упираются в запрос подтверждения. Если в качестве метода установки выбран Shizuku, Obtainium передаёт каждый APK менеджеру пакетов Android, и установка проходит в фоне без диалогов.

Установка и беспроводная отладка

Shizuku есть в Play Store, Obtainium — нет. Его берут со страницы релизов на GitHub или из F-Droid, поэтому браузер попросит разрешение на установку неизвестных приложений — его нужно выдать. Если включён Play Protect, перед установкой его отключают в Play Store и включают обратно после: иначе он может пометить Obtainium как неопознанное приложение и заблокировать установку.

Shizuku требует включённых параметров разработчика. Начиная с Android 11 в меню есть беспроводная отладка, поэтому Shizuku подключается к службе ADB на том же телефоне без кабеля и ПК. Работает это только по Wi-Fi: он даёт локальный адрес, нужный Shizuku для подключения, мобильные данные не подходят. Сначала подключитесь к роутеру или точке доступа.

Дальше порядок такой:

  1. Settings > About phone, семь раз нажать Build number, пока телефон не сообщит, что вы разработчик.
  2. Settings > System > Developer options, включить Wireless debugging.
  3. Android спросит, разрешить ли функцию в текущей сети, — отметить Always allow on this network, чтобы телефон не переспрашивал при каждом перезапуске Shizuku.
  4. В приложении Shizuku нажать Pairing под Start via Wireless debugging и разрешить уведомления.
  5. Вернуться в Wireless debugging и нажать Pair device with pairing code. Появится шестизначный код и уведомление с полем для него.
  6. Ввести код, вернуться в Shizuku и нажать Start. Верхняя карточка должна показать «Shizuku is running».

Теперь связываем с Obtainium: открыть приложение, нажать шестерёнку настроек в правом верхнем углу, выбрать Updates, прокрутить страницу вниз и поставить метод установки Shizuku. В появившемся окне подтверждения нажать Allow all the time.

Если Obtainium пишет, что Shizuku не запущен, проверьте Wi-Fi и беспроводную отладку: Android может выключить её при выходе из сети. Затем откройте Shizuku и нажмите Start. Чтобы система не закрывала приложение, задайте Settings > Apps > Shizuku > App battery usage значение Unrestricted.

Источники APK задаются вручную

Obtainium не сканирует телефон и не подхватывает установленные приложения — источники выбираются вручную, по одному на приложение. Обычно адрес проверяется раз в шесть часов. Приложения без публичной страницы релизов, например большинство банковских, придётся обновлять через Play Store.

Play Store достаточно имени пакета вроде com.whatsapp, потому что Google сам хранит все приложения из каталога. Obtainium нужен адрес публичной страницы релизов разработчика, где каждая новая версия выложена файлом. Чтобы добавить приложение, нажмите Add в главном меню, вставьте ссылку на GitHub и снова Add. Остальные параметры можно не трогать: значения по умолчанию подходят большинству приложений. Obtainium найдёт последний релиз и предложит установить — нажмите Install. Дальше он сам проверяет новые версии в фоне и ставит их автоматически.

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

Есть и неудобство: Shizuku останавливается при каждой перезагрузке телефона. После ребута нужно открыть приложение и нажать Start, иначе фоновые обновления не пройдут.

Что это значит для парка Android-устройств

Для администратора, который ведёт десяток-другой Android-устройств в малом бизнесе, ценность в предсказуемости: версия ставится тогда, когда вышел патч, а не когда до вашей доли раскатки дошла очередь. Взамен появляется ручная работа — список источников нужно поддерживать, а для приложений без публичных релизов схема не работает вовсе. И помните, что беспроводная отладка остаётся включённой: это дополнительная поверхность доступа к устройству, и на общих телефонах её стоит держать под контролем. Если же задача — просто не пропускать штатные обновления системы, есть и другие пути, например разобраться, что меняет свежий патч Samsung или проверить, не сломало ли обновление One UI 9 привычные сценарии. А на телефоне, который дают постороннему на минуту, пригодится закрепление экрана в Android, чтобы гость не ушёл дальше нужного приложения.

Частые вопросы

Нужен ли рут, чтобы Obtainium ставил обновления сам?

Нет. Shizuku даёт доступ уровня shell через беспроводную отладку, а не права суперпользователя. Телефон остаётся некорневым.

Почему Obtainium не обновляет приложения без Shizuku?

Сам по себе он ставит молча только на Android 12 и новее, только приложения под свежую версию Android и только те, что установил сам. Остальное упирается в подтверждение.

Можно ли настроить Shizuku без компьютера и кабеля?

Да, начиная с Android 11 через беспроводную отладку. Но телефон должен быть подключён к Wi-Fi: мобильные данные локальный адрес для подключения не дают.

Почему после перезагрузки телефона обновления перестали ставиться?

Shizuku останавливается при каждом ребуте. Откройте приложение и нажмите Start, предварительно убедившись, что Wi-Fi и беспроводная отладка включены.

Что будет, если обновление подписано другим ключом?

Obtainium сохранил сертификат при первой установке и предупредит о несовпадении. Так отсекается подделка, даже если у неё скопировано оформление приложения.

Можно ли так обновлять банковские приложения?

Обычно нет: у них нет публичной страницы релизов с файлами, а Obtainium нужен именно адрес, где разработчик выкладывает каждую версию. Такие приложения обновляются через Play Store.

Как часто Obtainium проверяет новые версии?

По умолчанию — раз в шесть часов на каждое приложение, по одному веб-адресу.

Зачем отключать Play Protect при установке Obtainium?

Он может принять Obtainium за неопознанное приложение и заблокировать установку APK из GitHub или F-Droid. После установки защиту включают обратно.

Что делать, если Obtainium не видит запущенный Shizuku?

Проверьте, что Wi-Fi на месте и беспроводная отладка не отключилась при выходе из сети, затем откройте Shizuku и нажмите Start. Ещё стоит выставить приложению неограниченный расход батареи, чтобы система его не выгружала.

Источник: androidpolice.com