Привет, клубнички и клубни!
Много раз замечал за собой, что бесконтрольное потребление контента приводит к сенсорной перегрузке, от которой и до выгорания недалеко. Время сейчас такое, что от новостей спасаться довольно трудно, приходится вводить искусственные ограничения. Вместе со всеми моими прочими странностями вроде bash-скриптов на телефоне для измерения настроения и музыкального центра на базе флоппи-дисковода мне захотелось сделать следующий шаг.
Среди всего барахлища, которым сейчас засрат мой подвал, нашёлся один очень маленький и очень красивый белый телефончик, Motorola RAZR i. На гриле динамика красуется логотип ещё той самой Motorola Mobility, которая была до Google и Lenovo. Приятные воспоминания, надо сказать! Чего стоит одна только текстурная спинка устройства с имитацией белого карбонового волокна. На этой спинке, кстати, очень своеобразно выглядит лого Intel Inside. Ага, внутри там самый настоящий Atom, и архитектура у него вполне себе X86. Что особых преимуществ не даёт, просто попытка зайти на рынок смартфонов.
Ну да ладно, переключимся на то, что позволило мне подарить этому красавчику вторую жизнь и постоянную прописку в моём кармане.
Софт
Определюсь сначала с основными идеями построения оффлайнового плеера:
- Не подключать устройство к интернету. Вообще никак и никогда. Это в том числе означает, что операционная система не будет получать патчи, закрывающие уязвимости. Это осознанный шаг, вместе с этим я закрываю себе возможность попасть в ловушку бесконечных лент контента с pull-to-refresh.
- Максимально удобные физические контролы прямо на самом плеере. Motorola RAZR i родом из той эпохи, когда в телефоны не боялись добавлять дополнительные кнопочки. Тем самым у меня появляется возможность замапить полный контроль плейбека (play/ffwd/rew/volume) и оперировать им вслепую.
- Скробблинг в Last.fm. Для этого мне потребовалось по локоть залезть в Java и модифицировать мой любимый плеер. Мне это удалось, о чём я расскажу далее
- Система меню, похожая на оригинальный iPod. У меня он когда-то был, да так и остался навсегда в сердечке. Даже когда он умер, я купил SanDisk Sansa Clip Zip на замену, прошил туда Rockbox и пользовался дальше как ни в чём не бывало. Теперь под эту функцию пристроился старый мобильник: с помощью кастомного лончера я вынес в построчное меню всё, для чего устройство предназначено, то есть музыка, подкасты, аудиокниги и диктофон. Больше нихера. И кроме плееров ничто не может изрыгать уведомления, что важно.
Теперь о конкретной реализации плана.
Lineage OS (неофициальный билд)
На стоковой прошивке Motorola RAZR i апгрейдился максимум до Android 4.4. Энтузиасты с XDA developers собрали неофициальный билд Lineage OS на базе Android 9. Кстати, именно в этой версии Android, по слухам, запатчили проблему 2038, что есть дополнительный приятный бонус! Можно продолжать быть кибердедом и 14 лет спустя :D
Смартфон бегает под этой версией операционки не то что бы сильно бодро, но достаточно быстро, чтобы не раздражать и чтобы уметь воспроизводить аудиофайлы. А больше от него ничего и не надо. Раз в месяц я меняю обои на новые и нескучные. Если делать это через стандартный интерфейс Lineage OS, то вот там начинаются дикущие тормоза. В остальном же жить вполне можно.
В прошивке есть root
через интерфейс ADB. Это помогло мне сделать ремап кнопки спуска затвора камеры на функцию toggle play/pause путём простой замены кодов в кеймапах. Сама же фирмварь позволяет при заблокированном и выключенном экране использовать долгое нажатие Volume keys как Fast Forward и Rewind. И вот это самое охеренное! Можно полностью оперировать плеером вслепую, не доставая его из кармана! Как же долго я хотел это всё вернуть, и вот получилось, наконец.
Unlauncher
Скачать тут. Nuff said, это лучший лончер, если вы хотите сделать тупофон из смартфона. Выглядит неплохо, есть цветовые темы и всевозможно гибкие настройки для запускалки такого типа. Не поддерживает виджеты, но они и нахер тут не нужны. Зато можно переименовать любое приложение и даже добавить эмодзи. Что я и сделал, выглядит аккуратненько теперь.
Vanilla Plus (мой форк Vanilla Music)
Тут сложно. Я пользовался плеером Vanilla аж с самого начала моего захода на территорию Android. Любимый, простой, достаточно функциональный, хотя для современных смартфонов уже немного ржавый.
Зачем мне понадобилось его форкать? Я начал играться с темами оформления, потом плавно перешёл к починке самых противных багов. На момент написания в апстрим принято уже несколько моих пулл-реквестов, в процессе ревью висит ещё один однострочник, однако есть и такие функции, которые вряд ли вообще нужны будут оригиналу.
Да, плеер умеет бродкастить метаданные проигрываемой музыки, но далее с этим необходимо работать приложениям-скробблерам. Эти приложения требуют подключения к интернету, а у нас по условиям задачи это запрещено. И тут я вспомнил, что треки со своего старого перепрошитого айпода скробблил путём скармливания логов утилитке в терминале. Повод закатать рукава и залезть внутрь кода. В оригинальный event emitter было добавлено немного логики для записи логов в файл. Почитал спеку, подровнял обработку событий и добился чего хотел!
О принимающей части скробблера будет дальше, а пока что, если интересно, можете посмотреть код моего форка.
AntennaPod (подкасты)
Скачать тут. Вне сомнений, лучший проигрыватель подкастов. Есть функция создания "виртуальных" фидов из локальных директорий, чем я и пользуюсь. Загрузка осуществляется через компьютер и только через него. Я слушаю довольно много всяких политобзоров (оставлю названия каналов при себе, тема очень срачегонная), а также Sci-Fi. Часто замечал за собой, что в поисках очередной дозы быстрого дофаминчика я начинал "доить" эти фиды на апдейты. С оффлайн-плеером апдейты по воздуху получать нельзя, а после прослушивания эпизоды для освобождения места удаляются. Получилось прям очень хорошо, всячески рекомендую подход с подобным гейткипером.
Voice (аудиокниги)
Скачать тут. Я брал довольно старую версию, новая сильно тормозит и в ней уёбищное оформление Material You. Все базовые функции проигрывателя аудиокниг, а именно таймер сна, закладки и возобновление воспроизведения с нескольких секунд раньше момента постановки на паузу. Сейчас переслушиваю цикл "Дюна" Фрэнка Герберта.
Кстати, автор программы пишет релиз-ноуты в стихах, что очень необычно как минимум!
Audio Recorder
Скачать тут. Простой диктофон, делает то, что от него требуется. Как человеку с ADHD мне необходимо записывать на ходу рандомные мысли. Экран RAZR i всё же не очень подходит для набивания текста на ходу, а вот диктофон — очень даже записная книжка. Дома уже я эти записи переслушиваю, обрабатываю и потом удаляю.
Amaze File Manager
Скачать тут. Иногда для дебага мне требуется побродить по файловой системе. В Amaze есть встроенные функции для просмотра различных форматов файлов. Размер небольшой, жрать не просит.
rb-scrobbler
Скачать тут. Основная рабочая станция у меня бегает под управлением Linux Mint. В ней я настроил правило udev, которое с помощью rb-scrobbler
забирает файл по указанному пути и затем удаляет его. Всё происходит ровно так, как это было 14 лет назад с моим айподом.
Заключение
Лучшее достижение этого проекта — экранное время основного смартфона. Оно упало с 5-6 часов в день до 1.5 на минимуме. В своём доме я перестал всюду носить за собой телефон, а просто назначил ему отведённое место. Если возникает фантомное желание пожмякать брусочек в руке и потом его разблокировать его, то Антизалипод покажет, что нового контента нет, зато всегда можно довольствоваться существующим!
Проект в принципе годится для установки на любой старый Android-девайс c операционкой 8.x+, скачать можно здесь.
Просто каеф, а не проекты у тебя. Интересно, если взять мобилу старую с выделенным DAC чипом (много хрений от сони) и сменной батарейкой (моё требование), то по идее можно из старой мобилы сделать аудиофильский плеер по твоим чертежам, плюс и уменьшить e-waste.
Azer, вы классный человек с суперными проектами. Всегда плюсую!
Когда дочитал до скробблинга, прям свело олдскулы. Но пока жамкаю айфон 13 мини, таких больше не делают.
Проект зачетный! Не бывает ломки от того, что онлайн-контент недоступен?
И всё-таки какой же крутой рэйзер был у моторолы! До сих пор восхищаюсь его дизайном и компактностью. А экран, амолед с настоящим черным цветом, почти что безрамочный.. И кевлар этот на спинке...
Через меня 5 штук razr M прошли (который не на Intel, a на snapdragon). Сам два из них юзал, плюс друзьям/знакомым насоветовал. Идеальный аппарат был.
Сейчас лежат два штуки (белый и синий) мертвым грузом, потому что экраны у них сдохли. Выкидывать жалко, чисто как память по классным тактильным брусочкам))
Автор, золотые руки и чудо голова! Прочитал пост и захотелось так же, чуть на Авито не купил плеер.
Сейчас понимаю, что с моим сдвг не варик отвлекаться еще и на это, решил вопрос иначе.
А какой стек у вас под капотом, чтобы делать такое?
Какой своевременный пост -- как раз второй день прессую продавца на местной барахолке продать мне плеер с кнопками за мою цену. Очень соскучился по возможности переключать треки просто наощупь, без дисплея. И хотя TWS наушники такую возможность вернули, но у них своих проблем хватает.
Спасибо за пост, интересная концепция. А сама моторола какого года? Батарейка не бобо у неё? Надолго хватает?
Вспомнил свои плееры формата "флешка" из студенчества :D 4 гигабайта богатств и зарядка от втыкания в комп, кайф какой был!
И отдельно спасибо за Antennapod, давно искал куда слезть с нынешнего приложения, выглядит приятно, попробую (не для оффлайна впрочем).
Ух, я тоже на Leboncoin (французское Авито) полез уже искать конкретно эту модель на вторичке, еле остановился.
Nokia 5310 Xpress Music - тоже подойдет для музыки)