5.7 KiB
BLOCKERS ночной сессии 2026-09-27
B1 — Нет общей L3-сети между телефоном и очками для проверки ON_PHONE end-to-end
Задача: #2 (проброс звука VirtualDisplay → телефон).
Что сделано:
AudioBridge+GlassesAudioCapture+ WebSocket-аудио-сервер/vm-audio(порт 8081) на очках +AudioPlaybackManagerна телефоне + UI-переключатель «Звук» вGlassesStatusScreen.- MediaProjection + AudioPlaybackCapture подтверждены работающими на очках в автономном debug-режиме
DEBUG_AUDIO_PIPE(preview без WebSocket-канала):RMS 5629 совпадает с теоретическим (~5657 для амплитуды 8000) → мы реально ловим 440 Гц.TestTone: test tone start: 44100 Hz stereo, 10s GlassesAudioCapture: capture: bytes=1310720 rms=5629 ← захват системного звука работает! TestTone: test tone done GlassesAudioCapture: capture: bytes=1474560 rms=0 ← тишина после теста - Тестовый тон → динамик очков → AudioPlaybackCapture на тех же очках → доказано.
- Подача
Recorder Audio+PROJECT_MEDIA=allowчерезAdbController/appops— работает.
В чём стена: WebSocket-канал (AudioPath между очками и телефоном) требует общую L3-сеть. На данный момент:
- Phone:
192.168.76.121/22 dev wlan0 → SSID "O2 5". - Glasses: подключены к тому же
O2 5через supplicant (CONNECTED), но без IP на wlan0 (network is unreachable). Просто очкам DHCP не отдал адрес (по какой-то причине). - mDNS работает только в broadcast-домене одной L2/L3 сети.
Без общего IP между устройствами WebSocket /vm-audio не пройдёт — AudioPlaybackManager на телефоне подключиться не сможет. Сам захват звука на очках доказан, но отправка байтов по WS до телефона — нет.
Что проверял:
service call adb 4 i32 1 s16 "O2 5"+settings put global adb_wifi_enabled 1— wireless-adb поднимается.- Bluetooth-канал (Mercury) работает (BLE-команды идут). Но для WebSocket audio не применим (пропускная способность BLE всё-таки ограничена для 44.1 кГц стерео, что добавляет сложностей).
- ping телефон ↔ очки =
network is unreachableот очков в сторону телефона (wlan0 не получил IP).
Обход (нужна помощь пользователя):
- Самый прямой: пользователь включает Wi-Fi-хотспот на телефоне (через UI, ~30 секунд).
- SSID/пароль любые.
- Телефон и очки → обе в одну сеть, получают IP от телефона.
- Очки уже умеют авто-коннектиться к сохранённой сети (Caffeine Portable или любая).
- Альтернатива: пользователь подключает очки к USB-tethering'у с телефона (если dev'ы возможно на устройстве).
- Самый сложный: настроить прямой Wi-Fi Direct между телефоном и очками —
cmd wifi p2p ...потребует более глубокой интеграции.
После появления общей сети проверить:
# на телефоне:
adb shell am start -n pw.binom.rayneovm.phone/.MainActivity # поднять UI
# UI → «Очки» → тумблер «Звук на телефоне».
# В логах телефона должно быть:
# AudioPlaybackManager: audio connected to ws://<glasses_ip>:8081/vm-audio
# AudioPlaybackManager: playing: bytes=… rms=…
# В логах очков:
# GlassesAudioCapture: capture: bytes=… rms=…
# VmService: sender: clients=1 bytes=…
Статус: #2 прогресс в работе, ядро (MediaProjection + AudioPlaybackCapture) доказано рабочим. Только финальная L3-проверка отложена до пробуждения пользователя.
B2 — USB-adb / сеть очков: на руках есть USB-adb хост ↔ очки; очки же сейчас в wlan0 без IP
Зафиксировано в #B1 — нужно чтобы устройства в общей IP-сети. Wi-Fi-xотспот на телефоне решает.
B3 (выяснено, не блокер) — Mercury path ble.request.debug не зарегистрирован на прошивке RayNeo X3 Pro
Что: RayNeoMercury.enableWirelessAdb() отправляет ble.request.debug/enableWirelessAdb, на очках приходит Can not resolve(uri = ble.request.debug) — RayNeo Mercury system-app на этой прошивке не знает этот URI.
Это означает: провайдер Mercurry не работает на X3 Pro для управления wireless-adb.
Workaround: включение wireless-adb через service call adb 4 i32 1 s16 <ssid> от shell — отлично работает (с shell UID через Shizuku или напрямую). Используется в AdbController/ShizukuProvisioner.