# XIOT · Обновление панелей для Windows

Программа 1.0.5 для установки XIOT Panel 14.2.8 (140208) на TP4/TP8 по USB.
В одном EXE находятся приложение панели, ADB и необходимые библиотеки. Отдельно устанавливать Android SDK, Java или .NET не нужно.

## Подготовка

- Windows 10/11, 64-разрядная, процессор Intel/AMD. Windows 7/8 и 32-разрядная Windows не поддерживаются.
- Кабель USB с передачей данных и питание панели согласно её инструкции.
- На панели включите параметры разработчика и USB-отладку. Не отключайте питание во время установки.
- Подключите только одну панель. Другие USB-устройства с активной ADB-отладкой временно отключите.
- Windows иногда требует отдельный USB/ADB-драйвер производителя панели. Программа не устанавливает драйверы и не отключает проверку их подписей.

## Установка

1. Распакуйте архив в обычную папку. Запустите «XIOT Panel Updater 1.0.5.exe». Запуск от администратора не требуется.
2. Подключите панель и подтвердите запрос USB-отладки на её экране. Нажмите «Найти панели».
3. Проверьте модель и серийный номер. Если прошивка сообщает общее имя модели, вручную подтвердите, что это ваша физическая XIOT TP4/TP8.
4. Оставьте включённым «Настроить киоск и автозапуск XIOT Panel». Программа назначит Panel домашним приложением Android и настроит необходимые разрешения. Режим Device Owner не используется.
5. Нажмите «Установить обновление», подтвердите выбранную панель и дождитесь результата. Затем проверьте запуск интерфейса и вход в проект на панели.

При обычном обновлении данные уже установленного XIOT Panel сохраняются. Appphone из RuStore — другой пакет: он не удаляется и не обновляется этим установщиком. Если Panel установлен впервые, войдите в аккаунт заново.

Сведения о `pro.xiot.app` (Appphone) носят справочный характер. Отключённый пакет, неизвестное состояние или некорректные сведения об Appphone не блокируют обновление `ru.xiot`. Неизвестное состояние явно отмечается в журнале и сообщается как предупреждение. Проверки целевого пакета `ru.xiot` остаются строгими.

## Замена старого Panel с другой подписью

После отказа обычной установки из-за несовместимой подписи появится кнопка
«Заменить старый Panel…». Эта операция предназначена только для старого `ru.xiot`.

1. Проверьте серийный номер и физическую панель. Нажмите «Заменить старый Panel…».
2. Подтверждение перечисляет потерю сохранённого входа, локального проекта и настроек
   старого Panel. По умолчанию выбран ответ «Нет». Продолжайте только если эти данные
   можно удалить: обновлятор не делает резервную копию и не сможет восстановить их.
3. Программа сначала повторит обычную установку. Только при повторной несовместимой
   подписи, после проверки панели и комплекта, удалит старый `ru.xiot` и установит
   встроенный Panel. Appphone `pro.xiot.app` не затрагивается.
4. На панели заново войдите в аккаунт и загрузите проект. Для этого нужна сеть.
   При включённом пункте киоска обновлятор настроит разрешения, HOME и автозапуск.

Замена недоступна для системного приложения и устройства с несколькими пользователями
Android. Понижение версии остаётся запрещённым. При обрыве связи во время замены
программа сообщит, могло ли уже произойти удаление. Если старый Panel удалён, а новая
установка не завершилась, восстановите USB-соединение и повторите обычную установку.

## Сеть на Android 14

Установщик выполняет повторную установку с сохранением данных, которая в ранее
проверенном случае восстанавливала потерянные обычные разрешения сети. После установки
он отдельно проверяет INTERNET и ACCESS_NETWORK_STATE. Если разрешения не подтверждены,
показывает замечание; доступ к серверу и отсутствие ограничений прошивки этим не доказаны.
Сброс к заводским и глобальное отключение сетевых ограничений не выполняются.
При несовместимой подписи возможна только описанная выше замена с потерей данных либо
получение APK с прежней подписью.

## Если возникла ошибка

- Панели нет в списке: проверьте кабель, USB-порт, режим подключения, USB-отладку и драйвер в «Диспетчере устройств» Windows. Используйте подписанный драйвер производителя. Не выбирайте Wi-Fi ADB или эмулятор.
- `unauthorized`: разблокируйте экран панели, разрешите отладку, повторите поиск.
- Найдено несколько USB-устройств ADB: отключите остальные и повторите поиск.
- Ошибка подписи APK: установленный Panel подписан другим ключом. Для сохранения его данных нужен APK с прежней подписью. Если данные старого Panel больше не нужны, используйте отдельную кнопку «Заменить старый Panel…» и внимательно прочитайте подтверждение ниже.
- На панели более новая версия: понижение версии запрещено.
- «APK установлен, но настройка неполная»: приложение установлено, однако часть разрешений или выбор домашнего приложения не подтверждены. Прочитайте журнал и проверьте настройки панели. Автоматических бесконечных повторов нет.
- Если соединение оборвалось, подключите панель снова и выполните новый поиск. Установка может уже завершиться на Android; повторная проверка покажет фактическую версию.

Кнопка «Сохранить журнал» сохраняет текст локально. Журнал может содержать модель, серийный номер и версию приложения. На сервер он автоматически не отправляется.

## Защита Windows

Эта сборка пока не подписана сертификатом Authenticode. Windows SmartScreen или политика организации могут предупредить о неизвестном издателе либо запретить запуск. Получайте файл непосредственно от XIOT и сверяйте контрольную сумму. Не отключайте Defender, SmartScreen и проверку подписи драйверов. Если политика организации блокирует программу, передайте файл своему администратору для проверки; отсутствие предупреждений не гарантируется.

## Границы действий

Программа устанавливает только вложенный `ru.xiot` версии 14.2.8, проверяет SHA-256 встроенных файлов и результат установки. Она не прошивает Android, не сбрасывает панель к заводским, не переключает пользователей Android и не выполняет root-команды. Обычное обновление сохраняет данные; отдельная подтверждённая замена при другой подписи удаляет старый ru.xiot вместе с его данными. Поддерживается основной пользователь Android (user 0).

Интернет для самой USB-установки не нужен. Для входа в XIOT и загрузки проекта на панели понадобится сеть.

Встроенный комплект извлекается в `%LOCALAPPDATA%\XIOT\PanelUpdater\1.0.5\session-*`. Он остаётся там после закрытия: локальный сервер ADB может продолжать использовать свой EXE. Отдельных команд остановки ADB программа не отправляет, но при несовпадении версий сам ADB может перезапустить локальный сервер. Перед установкой завершите другие операции отладки Android.

Проверка комплекта без ADB: запустите EXE с аргументами `--self-test` и путём JSON-отчёта. Демонстрация окна без ADB: `--preview`. Эти режимы не устанавливают приложение и не обращаются к панели.

Лицензии: `ANDROID-NOTICE.txt` (Android Platform Tools 36.0.2) и `GO-LICENSE.txt` включены в архив; соответствующие тексты встроены в EXE. Исходный проект находится в `tools/panel-updater-windows`.
