Levyra обзор. Музыкальный плеер без аккаунта и трекинга для Android и Windows

190
Levyra обзор. Музыкальный плеер без аккаунта и трекинга для Android и Windows

Музыкальный плеер без рекламы, обязательной регистрации и профиля, который знает, что я слушаю по утрам, выглядит почти анахронизмом. Levyra пытается вернуть более старую модель отношений с программой. Библиотека, плейлисты, история и статистика хранятся локально, исходный код открыт, а Android-версия доступна через F-Droid.

После изучения репозитория Levyra, Android-манифеста, зависимостей и описания F-Droid я бы сформулировал вывод так. Проект действительно выглядит заметно прозрачнее большинства коммерческих музыкальных приложений и не содержит очевидной инфраструктуры рекламного или поведенческого трекинга. Но «без трекинга» нельзя переводить как «никто не видит мои сетевые действия». Для потоковой музыки, текстов, обложек и дополнительных функций Levyra обращается к множеству внешних сервисов.

Что представляет собой Levyra

Levyra объединяет потоковую музыку и обычные локальные файлы. На Android интерфейс написан на Kotlin и Jetpack Compose, воспроизведением занимается AndroidX Media3 с ExoPlayer. Windows-версия использует Compose Multiplatform и libVLC. Проект не представляет собой сайт, завернутый в Electron или WebView.

При этом есть интересное исключение. Для отдельных операций с YouTube Android-версия может запускать скрытый WebView и загружать служебный сценарий YouTube, необходимый для получения токенов воспроизведения. F-Droid прямо описывает такой механизм. Поэтому правильнее говорить, что основной интерфейс и звуковой тракт нативные, а не утверждать, что WebView нигде не используется.

На момент проверки актуальная Android-версия 2.5.8. Она требует Android 8.0 или новее. Плеер умеет воспроизводить локальную музыку и потоковые источники, сохранять композиции в обычные M4A-файлы, показывать синхронизированные тексты, работать с Android Auto, использовать SponsorBlock, распознавать музыку, строить локальную статистику прослушивания и применять профили AutoEQ для наушников.

Особенно мне нравится подход к загруженным файлам. Levyra не пытается навсегда запереть музыку во внутреннем контейнере приложения. Загруженный трек может лежать как обычный M4A с обложкой, исполнителем, альбомом и текстом. Пользователь может перенести файл в другой проигрыватель, на компьютер или аудиоплеер. Конечно, техническая возможность сохранить файл не отменяет авторские права и условия сервиса, откуда получена музыка.

Levyra работает с внешними музыкальными и сетевыми сервисами. Проверять их инфраструктуру, обходить ограничения доступа или скачивать контент без соответствующих прав не следует. Открытая лицензия Levyra относится к программному коду, а не к музыке и данным сторонних платформ.

Levyra плейлисты история статистика настройки Локальное хранилище SQLite, файлы, резервная копия Музыка и метаданные внешние сервисы Тексты и обложки сторонние API Last.fm / ListenBrainz только при подключении Локальные данные не означают отсутствие внешнего сетевого трафика

Где здесь приватность, а где начинается маркетинг

Разработчик заявляет отсутствие рекламы, аналитики и собственной телеметрии. Проверка основных зависимостей Android-проекта не показывает привычных SDK вроде Firebase Analytics, AppsFlyer, Amplitude или рекламных библиотек. F-Droid также описывает Levyra как приложение без рекламы, аналитики и телеметрии, управляемой разработчиком.

История прослушивания, счетчики, плейлисты и статистика рассчитываются локально. Собственный аккаунт Levyra не нужен. Если хочется отправлять прослушивания в Last.fm или ListenBrainz, функцию приходится подключать отдельно. Для внешних учетных данных Android-версия использует ключ из Android Keystore и шифрование AES-GCM перед записью зашифрованного значения в приватные настройки приложения.

Но дальше начинается сетевой мир. Потоки и поиск могут обращаться к YouTube и YouTube Music. Метаданные и изображения могут приходить от Apple Music/iTunes, Deezer, Tidal, Qobuz, Wikidata и других источников. За текстами Levyra обращается к LRCLIB и дополнительным поставщикам. SponsorBlock тоже способен получать данные во время воспроизведения. Часть конфигурации приложение загружает с GitHub.

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

Именно поэтому F-Droid помечает Levyra предупреждением о зависимости от несвободных сетевых сервисов. Формулировка не означает, что программа закрытая или вредоносная. Код Levyra свободный, но значительная часть потоковой функциональности зависит от инфраструктуры YouTube и других коммерческих платформ.

Разрешения Android заслуживают отдельного взгляда

Манифест выглядит намного интереснее рекламного обещания «privacy first». Приложение запрашивает доступ к интернету и состоянию сети, работу фоновой службы воспроизведения, уведомления, чтение аудиофайлов, Wake Lock и доступ к микрофону.

Микрофон нужен функции распознавания музыки. Само наличие RECORD_AUDIO в манифесте не дает приложению вечный доступ к микрофону. Современный Android требует отдельного разрешения пользователя. Разработчик утверждает, что Levyra запрашивает доступ, когда пользователь запускает распознавание.

Есть и менее очевидное разрешение REQUEST_INSTALL_PACKAGES. GitHub-сборка использует собственный механизм обновлений, поэтому программа может передать скачанный APK системному установщику Android. F-Droid-вариант специально удаляет данное разрешение, отключает встроенное самообновление и получает обновления через F-Droid.

Для меня F-Droid здесь выглядит наиболее интересным вариантом именно с точки зрения модели доверия. Сборка создается из публичного исходного кода, а часть функций обновления исключается на этапе компиляции. Но даже публикация исходников сама по себе не равна аудиту безопасности. Я уже разбирал, почему GitHub не гарантирует доверие к готовому бинарнику.

У проекта есть отдельная политика безопасности и закрытый канал для сообщений об уязвимостях. На момент проверки публичных security advisory для Levyra нет. Отсутствие опубликованных уязвимостей нельзя превращать в вывод «уязвимостей нет». Независимого профессионального аудита, на который можно было бы сослаться как на доказательство безопасности всей кодовой базы, я не нашел.

Как самостоятельно проверить обещание «без трекинга»

Верить README необязательно. На Android за десять минут можно получить гораздо более полезную картину.

  1. Установите официальную F-Droid-версию или релиз из репозитория разработчика. Не используйте случайные APK-зеркала.
  2. Откройте системную страницу разрешений Levyra. Особенно проверьте микрофон, файлы и уведомления.
  3. Запустите сетевой монитор вроде TrackerControl или PCAPdroid и несколько минут пользуйтесь поиском, воспроизведением, текстами и обложками.
  4. Отключите SponsorBlock, Last.fm, ListenBrainz и необязательные сетевые функции. Сравните список соединений.
  5. Запретите Levyra интернет и откройте локально сохраненную музыку. Локальная библиотека должна продолжить работать без облачного аккаунта.

На Windows можно дополнительно посмотреть активные TCP-соединения через «Монитор ресурсов», TCPView или PowerShell. Например, после запуска плеера найти PID процесса и выполнить Get-NetTCPConnection -OwningProcess PID. Такой тест хорошо показывает разницу между «Levyra не ведет аналитику» и «Levyra вообще никуда не подключается».

Есть еще простой тест на пользовательский контроль. Создайте плейлисты, накопите немного истории, сохраните несколько файлов, сделайте Levyra Vault и проверьте восстановление. У приватного приложения мало пользы, если данные формально локальные, но покинуть программу вместе с ними невозможно. Levyra как раз старается не создавать такую ловушку.

Кому Levyra подойдет, а кому нет

Levyra особенно интересен пользователям, которым нужен гибрид между локальным музыкальным проигрывателем и современным потоковым клиентом. Плюсом станут обычные файлы вместо закрытого кеша, отсутствие обязательного аккаунта, локальная статистика, открытый код и возможность выбрать F-Droid.

Плеер хуже подходит тем, кому нужна полностью официальная интеграция с одним коммерческим музыкальным сервисом, гарантированная долговременная работа всех потоковых функций или полноценная облачная синхронизация между несколькими устройствами. Зависимость от сторонних API означает, что отдельные функции могут ломаться после изменений YouTube, поставщиков метаданных или других сервисов.

Есть и странный парадокс. Чем больше возможностей разработчик добавляет в Levyra, тем шире становится набор внешних соединений. Радио, обложки, рекомендации, тексты, SponsorBlock, распознавание и дополнительные каталоги повышают удобство, но уменьшают сетевую минималистичность. Поэтому пользователь, которому нужна максимальная приватность, получит лучший результат не просто установкой Levyra, а отключением ненужных сетевых функций.

Мой вывод

Я бы не называл Levyra «приватным Spotify» или музыкальным клиентом, который ничего никому не сообщает. Такое описание было бы слишком красивым и технически неверным.

Гораздо точнее другое определение. Levyra представляет собой открытый локально ориентированный музыкальный плеер, разработчик которого постарался не строить собственную систему наблюдения за пользователем. Нет обязательного аккаунта, рекламной сети и собственного аналитического профиля, а значительная часть персональных данных остается на устройстве. Исходники, отдельная F-Droid-сборка и понятная архитектура позволяют проверить многие заявления самостоятельно.

Цена такого подхода заключается в зависимости от сторонних сетевых платформ. YouTube, поставщики текстов, обложек и другие сервисы все равно видят обращения со стороны устройства. Поэтому Levyra заслуживает внимания прежде всего не как «невидимый в интернете» плеер, а как попытка вернуть пользователю контроль над библиотекой и сократить лишний сбор данных там, где разработчик действительно может его не собирать.

FAQ

Levyra действительно не собирает данные?

В коде и основных зависимостях я не нашел типичных рекламных или аналитических SDK, а F-Droid указывает на отсутствие developer-operated telemetry. Однако внешние сервисы получают сетевые запросы и как минимум IP-адрес пользователя.

Нужен ли аккаунт для Levyra?

Собственный аккаунт Levyra не требуется. Last.fm и ListenBrainz подключаются только при желании пользователя.

Почему Levyra есть предупреждение F-Droid Anti-Feature?

Потоковое воспроизведение и часть метаданных зависят от несвободных сетевых сервисов, включая YouTube и YouTube Music. Предупреждение относится к внешней инфраструктуре, а не к лицензии исходного кода Levyra.

Зачем Levyra доступ к микрофону?

Микрофон используется для функции распознавания музыки. На Android доступ требует отдельного разрешения пользователя.

Чем F-Droid-версия отличается от GitHub-сборки?

F-Droid-вариант отключает встроенный механизм обновлений и удаляет разрешение REQUEST_INSTALL_PACKAGES. Обновления приходят через F-Droid. Есть и другие различия в сетевом стеке сборки.

Открытый исходный код гарантирует безопасность Levyra?

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

Можно ли использовать Levyra только как локальный плеер?

Да. Levyra индексирует локальные аудиофайлы и может воспроизводить сохраненную библиотеку без собственного облачного аккаунта. Часть функций поиска, текстов, обложек и потокового контента без сети работать не будет.

levyra плеер музыка Android Windows приватность трекинг
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
Не тратьте ресурсы на реагирование на все угрозы подряд!
24 сентября в 11:00 (МСК) на бесплатном вебинаре Security Vision разберёт, как отделять релевантные угрозы от «белого шума», расставлять приоритеты и использовать Threat Intelligence для защиты на опережение.
18+. Реклама. Рекламодатель ООО «Интеллектуальная безопасность», ИНН 7719435412
Регистрируйтесь →

Юрий Кочетов

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

Реклама 18+
Рекламодатель
Реклама. АО «Позитив Текнолоджиз». ИНН 7718668887. 18+
Сайт рекламодателя: ptsecurity.com
Реклама