Snowdroid - сказка, которая могла быть вечной
С Android-разработкой я знаком уже 7 лет, но часто ли вы задумывались о том, чего не хватает в AOSP (так называемом “чистом” Android)?
Сервисы Google с Firebase? Это для меня мелочь, сам пользовался андроидом без них.
Гораздо сложнее проблема заключается в системных приложениях. Из года в год, а то и полгода Google выпускает новую версию Android, и вместе с этим системное ПО глобально не меняется.
Привычные приложения из эпохи Android 2.x-4.x уже давно пора бросить на свалку и переписать с нуля под современные гайдлайны и паттерны, потому что сама же компания развивает подобные приложения только внутри сервисов Google, не отдавая исходники обратно сообществу, а это монополизация. Сглаживать легаси пытаются кастомные прошивки crDroid и LineageOS, но эпоха, в которых был единый интерфейс, уже прошла.
Такое, кстати, случалось и раньше, но время не стоит на месте, и со временем появляются новые стандарты и паттерны языков программирования, но увы, имеем такое же легаси, что было 4 года назад с выходом Android 12.
Стандартные рингтоны - это отдельный разговор. Им больше 10-15 лет, короткие и надоевшие.
А ещё мне не нравится Material Design 3, особенно потому что интерфейс разжирелся под стандартный DPI. Сейчас принято считать тенденцию и в Дзене, который принадлежит ВК. Но непонятно, что мешало компаниям оптимизировать свои интерфейсы, если под рукой есть ноутбук с экраном в разрешении 1366x768 или 1920x1080.
По этой же причине пользуюсь только оболочками, которые приятные глазу и не ломают мозги рекламным ПО и прочим мусором - это OxygenOS и One UI (можно, конечно, сюда добавить и Realme UI, но из-за рекламного ПО каждые несколько секунд она очень не нравится).
Но всегда найдется тот, кто хочет сделать самому, и я - здесь не исключение.
Имея в руках старый Xiaomi Redmi Note 4 на базе MediaTek с отсутствием полноценных кастомов (не то что урезанный сток с чистым Android), тоже искал возможные баги и недочеты. При этом можно было установить старенький Debian вместе с зависимостями, взять за основу похожий Android для другого девайса на базе того же чипсета (благо, исходники есть в открытом доступе, и это не оригинальный AOSP), внести свои изменения и пытаться портировать обратно на Redmi. У меня кое-как даже получалось, и то не полностью.
Камера работала только фронтальная, и только через инженерное меню, а завести сканер опечатка пальцев и акселерометр у меня не получалось. Бывали проблемы и с воспроизведением видео - стоковые плееры падали постоянно из-за сбоя в проприетарном MiraVision.
И только благодаря своему проекту Snowdroid, у меня было желание довести это до конца. Из всего, что я смог сделать:
1. Починить основную камеру, пусть и без автофокуса и без стандартных приложений. 2. Добавить видеообои. 3. Портировать лаунчер из поздних версий Android. 4. Добавить темную тему, которая была изначально скрыта. 5. Написать приложение “Музыка” с нуля, с Material Design 2. Планировалось интегрировать свои проекты в новую операционку, но пока только на словах. 6. Заменить стандартный пакет эмодзи на Twemoji. 7. Сочинить несколько рингтонов, иногда адаптируя уже готовые.
Амбиций в Snowdroid было немало - планировал перенести наработки в более поздние версии Android, написать свой дополнительный SDK и редизайнить ещё старые приложения по типу Галереи, Календаря и т. д.
Увы, дальше развивать проект за пределами существующих возможностей я так и не смог. Болячки в виде неработающего акселерометра так и остались нерешенными.
Собирать прошивку можно было за час два максимум, учитывая саму сложность и железо с виртуалкой, когда как для успешной сборки супер-приложения можно было и чай попить. С другой стороны, развивать свою собственную экосистему следовало бы начать с простого, что я к этому и готовился.
Так проект прожил всего лишь 9 месяцев, с первой альфа-версией, где я максимум поправлял баги и добавил некоторую функциональность. Наверное, повезет это в будущем, но перспективы пока туманные.