Джейлбрейк VK Капсулы

Разбор по чату LibreCapsula (327 участников, ~11 тем, около 500 сообщений в топике «Capsula (большая)») и по README открытого инструмента capsula-jb. Всё описанное — про собственные колонки и физический доступ к ним: удалённо «взломать» Капсулу нельзя, и это не тот случай, когда «взлом» означает чужое устройство.

Коротко

  • Что сделали: открытый (MIT) capsula-jb — перезапись неподписанного раздела userdata, после которой на колонке появляется adb shell с root. Первый релиз — 26 октября 2026-го, актуальный — 0.1.5 от 29 октября.
  • Что нужно: физический доступ. Снять нижнюю накладку, подключить micro-USB, зажать Recovery. Удалённо это не работает и работать не будет.
  • Что остаётся: стоковая прошивка, Secure Boot, голосовой стек. Меняется только раздел данных.
  • Как откатить: сброс к заводским настройкам стирает /data вместе с джейлбрейком.
  • Что уже есть: AirPlay 2, твикер с пресетами кольца, Bad Apple на панели часов, свой голосовой ассистент на Gemini Live.

Какие колонки бывают и что с ними можно

УстройствоЖелезоСтатус
Капсула (большая), ревизии Capsule-14 и Capsule-15Rockchip RK3308, BuildrootОсновная цель capsula-jb, работает
Капсула первого поколения («подарочные»)RK3308, BootROM залоченДжейлбрейк возможен, но без бэкапа
Капсула МиниAmlogic A113XОтдельная ветка: root по SSH, Alpine Linux, AirPlay 2
Капсула Neo и Pro—В чате есть топики, публичных методов на начало ноября не обсуждалось

Ревизия определяется не по наклейке, а по серийнику в режиме загрузчика: у обычных колонок он начинается с четырёх цифр (01139EB3613ABD80), у первых партий выглядит как случайный hex (e5fe5a07c23ce39a). Инструмент различает их сам и для «подарочной» меняет сценарий.

Почему «взлом» — не совсем взлом

Ключевая деталь, вокруг которой всё построено, звучит скучно: раздел userdata не подписан и свободно перезаписывается пользователем. Secure Boot защищает boot и system — они read-only, и любая правка там заканчивается тем, что система отказывается грузиться. А userdata — обычный раздел с данными, около 78–81 МБ, содержимое которого никто не проверяет.

Дальше — дело техники. Стоковая прошивка сама монтирует userdata поверх read-only корня через overlayfs. Значит, достаточно положить в верхний слой свои файлы, и после перезагрузки они окажутся в корне системы. Никаких дыр в ядре, никаких подмен подписей.

В чате это сформулировали ровно так: джейлбрейк «модифицирует» системный раздел через overlay в userdata, а «secure-boot всё еще активен — нельзя модифицировать boot/system разделы (по умолчанию они read-only), при их модификации система откажется грузиться».

Как это устроено внутри

Железо большой Капсулы — Rockchip RK3308, система — Buildroot 2022.11.1 с BusyBox 1.35.0 (это видно по отчёту, который в чате сняли с живой колонки, и по списку init-скриптов). Ни systemd, ни OpenRC там нет, и это регулярно сбивает новичков: в чате человек спрашивает, как автозапустить скрипт, получает совет «в /etc/init.d скрипт S99 закинуть» — и дальше выясняет, что rc-update и rc-service тут не работают, потому что это команды OpenRC.

Реальный init — BusyBox (PID 1 = /rom/bin/busybox init), сервисы — обычные SysV-скрипты: S25fwlabel.sh, S30dbus, S35iptables, S40network, S41dhcpcd, S41wpa_supplicant, S49ntp, S50pulseaudio, S50usbdevice, S60bluetooth, S95telemetry.sh.

Вся магия держится на трёх из них:

  • S02mount-data.sh — проверяет userdata через e2fsck -yf, при необходимости пересоздаёт ФС и монтирует её как ext2 в /data;
  • S23overlayfs.sh — поднимает overlay lowerdir=/ upperdir=/data/overlay/upper workdir=/data/overlay/work и делает pivot_root: файлы из userdata:/overlay/upper оказываются в корне системы;
  • S50usbdevice — поднимает USB-гаджет ffs.adb и запускает adbd & безусловно.

Последний пункт — главная находка. В стоковой прошивке 44.90 бинарника adbd в rootfs просто нет: гаджет мигает на секунду и умирает. Положили adbd в оверлей — он запустится сам.

Что именно кладут в userdata:/overlay/upper:

/usr/bin/adbd
/etc/init.d/.usb_config   # флаг adb для прошивок, где он разбирается
/etc/jailbreak            # маркер

adbd — собственная сборка (android-tools 4.2.2 плюс патч «слушать TCP одновременно с USB»), слинкованная под сток: glibc ≤ 2.33, libcrypto.so.1.1. Он слушает и USB, и TCP:5555 сразу — после подключения колонки к Wi-Fi кабель больше не нужен.

От розетки до root

Ниже — сжатый пересказ сценария. Это не полная инструкция: перед первым запуском прочитайте README релиза и QUICKSTART.txt из архива, а если хотите отдать рутину ИИ-агенту — AGENTS.md (он есть в релизном архиве).

0. Что понадобится

  • Колонка, которую не жалко. Идеально — вторая, купленная на вторичке.
  • Компьютер с USB: сборки под Windows (x64), Linux (x64/arm64) и macOS (x64/arm64).
  • На Windows инструмент запросит права администратора: он сам ставит WinUSB-пакеты, сам перевязывает плату при смене USB-личины (лоадер 330d, MaskROM/usbplug 330e) и сам побеждает вендорский Rockusb-драйвер, если тот установлен.
  • На macOS может понадобиться xattr -d com.apple.quarantine capsula-jb, если Gatekeeper заблокировал скачанный бинарник.
  • На Linux без root — udev-правила из resources/udev/.

1. Режим загрузчика

Большая Капсула: выключить питание, снять нижнюю накладку, подключить micro-USB (OTG) к компьютеру, иголкой зажать кнопку Recovery — это нижнее из двух отверстий над micro-USB, дальше от разъёма питания, — и, удерживая, подать питание. Отпустить через несколько секунд. Плата появится в системе как 2207:330d.

2. Что делает инструмент

  1. Лоадер. Подписанный usbplug из OTA Capsule-14 (сборка 44.90) вшит в бинарник — качать ничего не нужно, сеть не используется.
  2. Плата. Инструмент ждёт 2207:330d/330e, загружает свой лоадер в RAM (флеш не трогается), сверяет сигнатуры в DRAM и опознаёт колонку по серийному номеру.
  3. Дамп. RAM-патчем поднимается предел чтения (0xCC-маска), после чего снимается полный дамп всех GPT-разделов в backup/<серийник>/ с SHA256-суммами. Если валидный бэкап этого серийника уже есть — дамп пропускается.
  4. Оверлей. На основе дампа собирается образ userdata с файлами в /overlay/upper; ФС правится через ext4-lwext4, остальное содержимое сохраняется.
  5. Запись. Единственная запись во флеш за весь сценарий — userdata обратно в раздел.
  6. Перезагрузка. Инструмент ждёт устойчивого появления adb-гаджета 2207:0006: сток без adbd мигает гаджетом меньше секунды, и мигание успехом не считается.

Только дампы, без записи:

capsula-jb backup

Полный сценарий и подключение:

capsula-jb
adb devices && adb shell

3. ADB по USB и по Wi-Fi

USB работает всегда после джейлбрейка: колонка видна как ADB-устройство, adb shell даёт root без авторизации. Wi-Fi включается, как только колонка в сети:

adb shell ifconfig wlan0      # смотрим inet addr
adb connect 192.168.1.42:5555
adb shell

Порт по умолчанию 5555, меняется переменной ADBD_TCP_PORT при старте adbd (0 — выключить TCP).

Отдельная деталь для тех, кто автоматизирует: инструмент спрашивает подтверждение перед записью (proceed? [y/N]), а в неинтерактивном окружении (CI, LLM-агент) завершается ошибкой, ничего не записав. Флаг --yes существует, но в AGENTS.md прямо написано: агент не должен подтверждать перепрошивку сам, только после согласования с человеком.

4. Сразу после: три правила гигиены

  1. adbd без авторизации — это root для любого в вашей сети. Порт 5555 нельзя пробрасывать наружу и не стоит держать в общем Wi-Fi. Не нужен доступ по сети — запускайте adbd с ADBD_TCP_PORT=0.
  2. Не трогайте boot и system. Это единственный способ получить кирпич вместо колонки.
  3. Сохраните каталог backup/<серийник>/. Это единственный способ вернуться к точному состоянию платы, а не «к стоку».

5. Как откатить

Сброс к заводским настройкам вычищает /data вместе с /data/overlay — джейлбрейк исчезает, колонка возвращается к стоку. Это же и главный ответ на вопрос «а если что-то пойдёт не так».

Что на этом уже запускают

Самое интересное в чате — не сам root, а то, что на нём выросло за неделю.

AirPlay 2. ryysel/capsula-mini-airplay2 — приёмник для Мини на Alpine 3.24/aarch64: shairport-sync 5.6.2 с AirPlay 2, nqptp 1.2.9 и D-Bus-управление. iPhone и Mac видят колонку как обычный приёмник, громкость синхронизируется в обе стороны (и до старта трека тоже), кольцо показывает состояние — тусклое значит «подключено», бегущая точка — «играет». Если стоит твикер, установщик включает мост ap2-bridge, и кнопки на колонке тоже работают. Ставится скриптом по SSH или мастером Install-Windows.cmd из релиза v1.3.0, с проверкой SHA256, бэкапом и откатом.

Твикер для Мини. byrbyrka/capsula-mini-tweaker — программа на C, один бинарник под ARM64/musl: громкость и аппаратный mute, часы, «мордашка» с анимацией, курс доллара с сайта ЦБ РФ (обновление раз в 6 часов) и пресеты светового кольца — до 16 штук по 12 кадров, с редактором прямо в меню. Автор честно пишет, что на физической колонке аппаратное испытание ещё не проводилось: проверяли в QEMU с musl из прошивки.

Capsule Tools. makso46nchik/capsule-tools — набор функций для Мини после получения доступа: часы, погода, громкость, таймер, мониторинг устройства, информация о Wi-Fi и быстрый перезапуск.

Bad Apple на панели часов. dojekon/bad-apple-capsule-mini: 28 сегментов с ШИМ-яркостью, звук из динамика, двоеточие мигает в такт громкости, кольцо работает белой светомузыкой (6 полос от 120 Гц до 6 кГц, вспышки на ударах). Кадры пишутся напрямую в sysfs, один кадр — около 3 мс; занимает примерно 6 МБ.

Свой ассистент вместо Маруси. yawaflua/Gemini-for-Capsula — два бинарника на Go: статический агент на колонке (wake word, VAD, запись, воспроизведение, команды) и сервер, который держит сессию Gemini Live. Есть веб-панель, провайдеры переключаются на лету (Gemini Live, OpenAI Realtime, любой OpenAI-совместимый чат, Claude), плагины на Go, C++ и Python, управление кольцом и экраном через D-Bus, Spotify и YouTube. Колонки обновляют агент сами — по SHA-256 с сервера.

Сборка на Gemini Live. В чате выложили архив Capsula-Portable: часы с часовым поясом из настроек, Gemini Live на русском, казахском и английском (голос Aoede), таймеры и будильники, погода Open-Meteo, курсы валют, поиск контекста через Tavily, AirPlay 2. С оговоркой от автора: без ключа Tavily остаётся «ограниченный энциклопедический резерв» Wikipedia, который не заменяет проверку цен и новостей.

Мини уходит в Alpine. Для плат на Amlogic A113X есть установщик amlogic-mini: бэкап системы, восстановление из бэкапа и установка Alpine Linux с проверкой SSH и сменой пароля. Плюс отдельное «user-friendly» решение для Мини — root по SSH и SFTP без перепрошивки, с отключением телеметрии, бэкапом и откатом в один клик.

Где ломается

  1. Secure Boot никуда не делся. boot и system read-only: попытка их править — и колонка не загрузится. Свою сборку ОС поставить нельзя, только стоковую.
  2. Колонки первого поколения — без бэкапа. Их BootROM залочен (secure:yes) и молча отклоняет чужой usbplug, поэтому полный дамп невозможен. userdata собирается с нуля, существующее содержимое теряется — инструмент предупреждает об этом перед записью.
  3. Маска 0xCC. Без RAM-патча всё выше 32 МБ читается как 0xCC, и дамп получается мусорным. На стоковом лоадере первого поколения эту маску не обойти вообще.
  4. Аварийный fastboot. Если стоковый u-boot упал в гаджет 18d1:d00d, инструмент откажется работать: это не рабочий канал, нужно передёрнуть питание и заново войти в режим лоадера.
  5. Сброс — это откат, но и потеря данных. /data стирается целиком.
  6. Windows-драйверы. WinUSB против вендорского Rockusb — самая частая причина «плата не видна». В архиве есть и Zadig, и DRIVER-SETUP.txt, но лучше дать инструменту сделать всё самому.
  7. Гарантия и сервис. Формально вы вмешиваетесь в устройство, и сервисный центр это увидит, если заглянет в раздел данных.

Про «услуги обхода» и правила комьюнити

В телеграме вокруг темы регулярно всплывают объявления «сделаем обход», «разблокируем колонку» — за деньги, в личку. Полезно понимать: удалённого взлома Капсулы не существует. Всё, что есть, требует физического доступа к конкретной колонке и открыто лежит на GitHub. За деньги в таких объявлениях продают либо пересказ README, либо ничего.

Показательно, что само комьюнити ограничивает себя: в правилах LibreCapsula отдельным пунктом запрещено распространение «обходов аппаратных ограничений, Secure Boot, „железа“ и др.» — с оговоркой «об этом сообщить администраторам для согласования, т.к. идёт процесс официального оформления этого со стороны ВК». Формулировка туманная, но настрой понятен: сверх «перезаписи неподписанного раздела» чат старается не ходить.

И да, юридическая рамка: доступ к чужому устройству без разрешения — это не «моддинг», а совсем другая история. Всё описанное имеет смысл только на своей колонке.

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

Это законно?
На своём устройстве — да, вы распоряжаетесь купленным железом. На чужом — нет: несанкционированный доступ к устройству другого человека — это правонарушение, а не исследование.

Можно ли взломать колонку удалённо?
Нет. Нужен физический доступ: снять накладку, подключить USB, зажать Recovery. Всё остальное — реклама.

Джейлбрейк переживёт обновление прошивки?
Сброс к заводским настройкам его точно стирает: overlay живёт в /data. Поведение при штатном OTA в README не описано, так что проверять придётся самому — и лучше на второй колонке.

Нужно ли разбирать колонку?
Нет. Снимается нижняя накладка, плата не разбирается. Нужны micro-USB-кабель, иголка и ровные руки.

Что с гарантией?
Риск на вас. Сервис увидит изменения в разделе данных, а «сброс к заводским» вернёт не всё: содержимое /data он как раз стирает, но факт вмешательства мог остаться в логах.

Сколько это стоит?
Сам инструмент бесплатный и открытый. Платить можно только за вторую колонку на эксперименты — и не платить никому за «обход».

Куда это идёт

Смотришь на чат и видишь не «взлом одной колонки», а сборку платформы:

  • есть постоянный канал управления — adbd, который живёт и по USB, и по Wi-Fi;
  • есть слой для своих файлов — overlay поверх read-only корня, то есть можно добавлять бинарники и сервисы, не трогая подписанное;
  • есть прикладные сценарии — AirPlay 2, твикер, свой голосовой ассистент, часы и погода;
  • есть альтернативная ОС — Alpine на платах Amlogic, с бэкапом и откатом.

Большая Капсула на RK3308 — это, по сути, мини-компьютер с микрофонным массивом, кольцом и динамиком, у которого нашёлся незапертый раздел данных. Дальше всё упирается не в железо, а в фантазию: локальный ассистент, музыкальный эндпоинт, устройство для Home Assistant или что-то, чего ещё не было. В чате уже есть топики по Mi Smart Speaker и Prestigio SmartVoice — похоже, LibreCapsula постепенно становится хабом для всей этой категории железок.

Главный совет из чата, который стоит повторить: сначала бэкап, потом эксперименты.

Источники