Pico 4: установка и откат версии PICO Connect

от автора

Разрабатываю VR-игру на Unity с использованием SteamVR Plugin, и в ней реализовано отслеживание кистей рук без контроллеров. Решил протестировать эту механику в PCVR-режиме на своём PICO 4 и сразу упёрся в проблему: стандартная актуальная версия PICO Connect эту функцию не поддерживает.

На форуме PICO нашёлся пост с конкретной рабочей связкой версий: PICO Connect 10.4.55 для ПК и Connect 10.4.5 для шлема.

Проблема в том, что версия на ПК ставится без проблем обычным установщиком, а вот версию в шлеме просто так не поставить, особенно если там уже стоит более новая. Пришлось разбираться с ADB, откатом обновлений и чисткой драйверов в SteamVR, чтобы всё это в итоге заработало. Подробная инструкция, как повторить этот процесс у себя — ниже!

1. Общая схема

Для работы отслеживания кистей в PCVR используются две части PICO Connect:

  • На компьютере: PICO Connect для Windows

  • В шлеме: Android-приложение Connect

Для режима передачи костей кистей применяется связка:

  • ПК: PICO Connect 10.4.55

  • Шлем: Connect 10.4.5

Приложение в шлеме имеет системный пакет:

com.picovr.picostreamassistant

Версия на компьютере устанавливается обычным .exe-файлом. Версия в шлеме устанавливается через ADB.

2. Подготовка ADB

2.1. Установка Platform-Tools

Скачать Android SDK Platform-Tools для Windows и распаковать архив, например, в папку:

C:\Tools\platform-tools

Проверить наличие файла:

C:\Tools\platform-tools\adb.exe

2.2. Подготовка APK

Создать папку:

C:\Temp

Скопировать нужный APK-файл в эту папку и переименовать его:

C:\Temp\PICOConnect-beta.apk

2.3. Включение отладки на шлеме

В настройках PICO 4 включить режим разработчика и параметр:

Отладка по USBUSB debugging

Подключить шлем к компьютеру кабелем USB-C.

При появлении запроса в шлеме разрешить отладку для подключённого компьютера. Рекомендуется отметить вариант постоянного разрешения.

3. Подготовка командной строки

Открыть командную строку:

Win + R→ cmd

Задать переменные:

set "ADB=C:\Tools\platform-tools\adb.exe"set "PKG=com.picovr.picostreamassistant"set "APK=C:\Temp\PICOConnect-beta.apk"set "VRPATHREG=E:\steam\steamapps\common\SteamVR\bin\win64\vrpathreg.exe"

Проверить подключение шлема:

"%ADB%" devices

Нормальный вывод:

List of devices attachedPA821CMGH2100058G    device

Если устройство имеет статус:

unauthorized

нужно подтвердить запрос отладки в шлеме и повторить команду.

4. Проверка установленной версии в шлеме

Перед любыми изменениями проверить путь установленного приложения:

"%ADB%" shell pm path %PKG%

Проверить версии:

"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath flags"

Обычно вывод содержит две версии.

Пример:

codePath=/data/app/com.picovr.picostreamassistant-.../versionName=10.6.6flags=[ SYSTEM ... UPDATED_SYSTEM_APP ]codePath=/system/app/StreamingAssistantversionName=9.4.7

Это означает:

  • /data/app/... → активное обновление приложения

  • /system/app/StreamingAssistant → базовая версия, встроенная в прошивку шлема

Базовую системную версию удалять не требуется.

5. Обычная установка новой версии

Если устанавливаемая версия новее текущей, выполнить:

"%ADB%" install -r "%APK%"

Параметр:

-r

позволяет заменить установленную версию приложения.

При успешной установке появится:

Performing Streamed InstallSuccess

После установки проверить версию:

"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath"

Для нужной версии ожидается:

versionName=10.4.5versionCode=1000405001

После установки перезагрузить шлем.

6. Установка более старой версии

Если в шлеме уже установлена более новая версия, обычная установка завершится ошибкой:

INSTALL_FAILED_VERSION_DOWNGRADE

Для проверки можно выполнить:

"%ADB%" install -r -d "%APK%"

Параметр:

-d

разрешает попытку установки более старой версии.

Для обычного релизного приложения этого обычно недостаточно. Если снова появилась ошибка:

INSTALL_FAILED_VERSION_DOWNGRADE

нужно удалить только активное обновление Connect и вернуть встроенную системную версию.

7. Откат обновления Connect

Перед откатом ещё раз проверить текущее состояние:

"%ADB%" shell pm path %PKG%
"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath flags"

Если активный путь начинается с:

/data/app/

а в выводе присутствует:

UPDATED_SYSTEM_APP

значит поверх встроенной версии установлено обновление.

Удалить активное обновление:

"%ADB%" uninstall %PKG%

После этого обязательно проверить результат:

"%ADB%" shell pm path %PKG%
"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath flags"

Ожидаемый результат:

package:/system/app/StreamingAssistant/...versionName=9.4.7

После возврата к встроенной версии установить нужный APK:

"%ADB%" install -r "%APK%"

Проверить установленную версию:

"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath"

Ожидаемый результат:

versionName=10.4.5versionCode=1000405001

После установки перезагрузить PICO 4.

8. Команды, которые не следует использовать

Не выполнять команду:

"%ADB%" shell cmd package uninstall-system-updates %PKG%

На некоторых версиях прошивки PICO она работает нестандартно: вместо отката одного приложения пытается удалить обновления сразу у нескольких системных пакетов.

Также не выполнять без необходимости:

"%ADB%" shell pm uninstall --user 0 %PKG%

Эта команда может скрыть системное приложение для текущего пользователя вместо нормального возврата к встроенной версии.

9. Установка версии PICO Connect на компьютере

Версия на компьютере устанавливается без ADB.

Закрыть:

  • SteamVR

  • PICO Connect

  • Unity

  • VR-приложение

Открыть список установленных программ:

Win + R→ appwiz.cpl

Удалить текущую версию:

PICO Connect

Установить:

PICO Connect 10.4.55

После запуска проверить номер версии в левом нижнем углу окна:

V10.4.55

10. Удаление старого Streaming Assistant с компьютера

Если ранее использовался Streaming Assistant, его нужно удалить полностью. Иначе SteamVR может видеть два драйвера PICO одновременно.

Открыть список программ:

Win + R→ appwiz.cpl

Удалить:

Streaming Assistant

Проверить остаточную папку:

if exist "C:\Program Files\Streaming Assistant" (echo ПАПКА ОСТАЛАСЬ) else (echo ПАПКА УДАЛЕНА)

Если папка осталась, удалить её:

rmdir /s /q "C:\Program Files\Streaming Assistant"

Если Windows сообщает, что файлы заняты, определить процесс:

tasklist /m driver_pico.dll

Пример вывода:

steam.exe    21968    driver_pico.dll

Завершить найденный процесс:

taskkill /F /PID 21968 /T

Подождать несколько секунд:

timeout /t 3

Проверить повторно:

tasklist /m driver_pico.dll

После освобождения файлов удалить папку:

rmdir /s /q "C:\Program Files\Streaming Assistant"

11. Очистка драйверов PICO в SteamVR

После удаления старого Streaming Assistant проверить список внешних драйверов SteamVR:

"%VRPATHREG%" show

Проблемный вариант:

External Drivers:        pico : C:/Program Files/PICO Connect/openvr_driver/        pico : C:/Program Files/Streaming Assistant/driver

При наличии двух драйверов с одинаковым именем pico не следует удалять их по одному. Точечное удаление может затронуть не ту запись.

Удалить все регистрации драйвера pico:

"%VRPATHREG%" removedriverswithname pico

Проверить:

"%VRPATHREG%" show

После очистки блок внешних драйверов должен быть пустым.

Добавить только драйвер актуального PICO Connect:

"%VRPATHREG%" adddriver "C:/Program Files/PICO Connect/openvr_driver/"

Проверить итог:

"%VRPATHREG%" show

Ожидаемый результат:

External Drivers:        pico : C:/Program Files/PICO Connect/openvr_driver/

12. Итоговая конфигурация

На компьютере:

PICO Connect 10.4.55

В шлеме:

Connect 10.4.5

Пакет в шлеме:

com.picovr.picostreamassistant

В SteamVR зарегистрирован один драйвер:

pico : C:/Program Files/PICO Connect/openvr_driver/

Старая папка отсутствует:

C:\Program Files\Streaming Assistant

После завершения настройки перезагрузить:

  • компьютер

  • PICO 4

Запускать программы в порядке:

  1. PICO Connect

  2. Подключение PICO 4

  3. SteamVR

  4. Проверка отслеживания рук без контроллеров

  5. VR-приложение

Краткая памятка команд

Задать путь к ADB

set "ADB=C:\Tools\platform-tools\adb.exe"

Задать имя пакета Connect

set "PKG=com.picovr.picostreamassistant"

Задать путь к APK

set "APK=C:\Temp\PICOConnect-beta.apk"

Задать путь к vrpathreg

set "VRPATHREG=E:\steam\steamapps\common\SteamVR\bin\win64\vrpathreg.exe"

Проверить подключение шлема

"%ADB%" devices

Проверить путь установленного пакета

"%ADB%" shell pm path %PKG%

Проверить установленную версию

"%ADB%" shell dumpsys package %PKG% | findstr /i "versionName versionCode codePath flags"

Установить APK поверх текущей версии

"%ADB%" install -r "%APK%"

Проверить возможность установки более старой версии

"%ADB%" install -r -d "%APK%"

Удалить активное обновление Connect

"%ADB%" uninstall %PKG%

Проверить возврат к встроенной версии

"%ADB%" shell pm path %PKG%

Повторно установить нужный APK

"%ADB%" install -r "%APK%"

Проверить список драйверов SteamVR

"%VRPATHREG%" show

Удалить все регистрации драйвера pico

"%VRPATHREG%" removedriverswithname pico

Добавить драйвер PICO Connect

"%VRPATHREG%" adddriver "C:/Program Files/PICO Connect/openvr_driver/"

Найти процесс, который блокирует старый драйвер

tasklist /m driver_pico.dll

Завершить найденный процесс

taskkill /F /PID 21968 /T

Удалить остаточную папку Streaming Assistant

rmdir /s /q "C:\Program Files\Streaming Assistant"

ссылка на оригинал статьи https://habr.com/ru/articles/1047204/