Кастомный Dynamic Island для HyperOS на базе LSPosed и Jetpack Compose

02 сен 2026
472
50
6
1 неделя
HyperIsland Icon

Когда Apple показала Dynamic Island в iPhone 14 Pro, разработчики под Android бросились делать аналоги. Большинство приложений из Google Play пошли по простому пути: они создают поверх экрана системный оверлей через службы специальных возможностей (Accessibility Services). На практике такие утилиты часто тормозят, съедают заряд аккумулятора, конфликтуют со стандартными жестами навигации и отваливаются после первой же выгрузки процесса из оперативной памяти.

Китайский разработчик с ником 1812z подошел к задаче иначе. Его проект HyperIsland представляет собой полноценный модуль для фреймворка LSPosed, созданный под прошивки Xiaomi HyperOS 3 и HyperOS 4. Вместо костылей с оверлеями он перехватывает системные события напрямую и рендерит интерфейс острова с помощью современного декларативного фреймворка Jetpack Compose.

Что внутри и как это работает

Главное отличие системного модуля от обычного APK заключается в глубине интеграции. HyperIsland внедряется в системные процессы HyperOS и работает как нативная часть прошивки.

Разработчик реализовал четыре основных блока функций:

  • Управление загрузками файлов. Модуль перехватывает события системного Download Manager в HyperOS. Вместо стандартного статического уведомления в шторке пользователь видит компактную плашку с именем файла и плавной полосой прогресса. Прямо из острова можно приостановить скачивание, продолжить его или сбросить задачу.
  • Адаптация любых входящих уведомлений. Обычные пуши от мессенджеров, почтовых клиентов или банковских приложений трансформируются в интерактивные карточки острова. Кнопки быстрых действий при этом не теряются, модуль забирает их из оригинального Notification Builder.
  • Перехват всплывающих тостов. Короткие системные плашки Toast внизу экрана часто перекрывают кнопки ввода или клавиатуру. Модуль ловит такие всплывашки и аккуратно рендерит их вверху, в едином стиле с остальными уведомлениями.
  • Суммаризация текста через нейросети. Нетипичная опция для системных твиков. В настройках модуля можно указать эндпоинт и токен любого API, совместимого с протоколом OpenAI. Если приходит длинное письмо или простыня текста из чата, модуль отправляет запрос к LLM и показывает в карточке острова короткую выжимку сути сообщения.

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

Реклама

Архитектура и технические детали

Кодовая база проекта написана на Kotlin. Архитектурно приложение разделено на две части: Xposed-хуки и UI-модуль на Jetpack Compose.

Хуки встраиваются в системные вызовы NotificationManagerService и службы системного интерфейса HyperOS. Они извлекают метаданные уведомлений: заголовок, текст, иконку приложения и прикрепленные PendingIntent для кнопок действий. Затем данные прокидываются в слой отображения.

Интерфейс острова работает с постоянным отслеживанием выреза камеры, автоматически меняет размеры при появлении новых данных и поддерживает режим постоянного отображения (Persistent Island) с умным скрытием, когда на экране открывается полноэкранное приложение или видео.

Для самостоятельной сборки проекта понадобятся установленный JDK версии 21 и актуальный Android SDK. Сборка релизного пакета запускается стандартной командой Gradle:

./android/gradlew -p android :app:assembleRelease

После компиляции сгенерированный APK устанавливается как стандартный модуль в среду LSPosed, после чего активируется с областью применения к системным пакетам HyperOS.

Практические сценарии и ограничения

Модуль решает давнюю проблему фирменных оболочек Xiaomi, где всплывающие баннеры уведомлений занимают треть экрана и перекрывают контент во время чтения или игр. Компактный остров оставляет рабочее пространство свободным и собирает нужную информацию в аккуратный статус-бар.

Перед тем как ставить проект на свой девайс, нужно учитывать четыре технических ограничения:

  1. Наличие Root-доступа. Модуль требует разблокированный загрузчик и установленный LSPosed (через Magisk, KernelSU или APatch). Без рута запустить хуки невозможно.
  2. Строгая совместимость с HyperOS. Проект заточен под внутренние классы и методы оболочки Xiaomi версий 3 и 4. На других прошивках вроде OneUI, ColorOS или чистом AOSP модуль работать не будет.
  3. Зависимость от стороннего API для AI-функций. Суммаризация текстов работает только при наличии собственного ключа OpenAI или совместимого шлюза, что расходует платные токены.
  4. Риск нестабильности после OTA-апдейтов. Когда Xiaomi выпускает минорные патчи прошивки, сигнатуры внутренних системных методов могут измениться, из-за чего модуль может временно перестать перехватывать события до обновления кода автором.

Динамика проекта

Проект активно набирает популярность среди пользователей кастомных прошивок и моддеров экосистемы Xiaomi.

Star History Chart

Стоит ли пробовать

HyperIsland — отличный пример того, как современный UI-стек Android уживается с низкоуровневой модификацией системы. Для рядовых пользователей с рутированными устройствами Xiaomi это простой способ получить эстетичные интерактивные уведомления без лагов и фонового жора батареи.

Для Android-разработчиков репозиторий представляет интерес как практический образец внедрения Jetpack Compose в окружение Xposed-модулей. Код распространяется под свободной лицензией MIT, документация с примерами настройки доступна на официальном сайте проекта hyperisland.1812z.top. Если вас интересует модификация системных компонентов Android или вы ищете вдохновение для собственных интерфейсных твиков, проект определенно стоит клонировать и разобрать на составляющие.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.