# MiAuto: установка APK и подключение к CarWith, Car+ и Jovi InCar

> AI Release · @ai_release1 · https://ai-release.org/guides/miauto-ustanovka-apk-podklyuchenie.html

## TL;DR
- Время выполнения: 20–30 минут (без учёта поиска сборки в репозитории)
- Уровень сложности: Intermediate
- Понадобится: автомобильное головное устройство (ГУ) на Android с включённой отладкой по USB; ПК с `adb` (Android Platform Tools); APK MiAuto из репозитория `PiggyBackBayonet/MiAuto`; телефон Xiaomi с CarWith, OPPO с Car+ или vivo с Jovi InCar; Wi-Fi-сеть, общая для телефона и ГУ

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/miauto-ustanovka-apk-podklyuchenie-ru-1.jpg?v=1793695759)


- **ГУ на Android.** MiAuto — приёмник ICCOA CarLink, он ставится на сторону автомобиля: принимает видеопоток от телефона, а не наоборот. Ставить APK на телефон бессмысленно.
- **Root не нужен.** По заявлению авторов проекта, ни root, ни переходная коробка (отдельный аппаратный адаптер) не требуются — приложение работает как обычный пользовательский APK.
- **Телефон с поддерживаемой оболочкой.** Соответствие «оболочка → приложение» из описания проекта:

| Телефон | Приложение-источник | Кто делает |
|---|---|---|
| Xiaomi | CarWith | Xiaomi |
| OPPO | Car+ | OPPO |
| vivo | Jovi InCar | vivo |

- **ADB на ПК.** `adb` — консольная утилита из Android Platform Tools, которая ставит APK и читает логи с подключённого устройства.
- **Общая сеть.** Телефон и ГУ должны быть в одной сети Wi-Fi: подключение беспроводное.
- **Чего в описании проекта нет.** Минимальная версия Android, имя пакета, размер APK и номер версии в тексте репозитория не указаны — эти значения сверьте с README и разделом Releases.

Чек-лист перед началом:

- [ ] На ГУ включена «Отладка по USB» (Настройки → Для разработчиков)
- [ ] `adb devices` видит устройство в статусе `device`, а не `unauthorized`
- [ ] APK MiAuto скачан из репозитория `PiggyBackBayonet/MiAuto`
- [ ] Телефон и ГУ подключены к одной Wi-Fi-сети
- [ ] На телефоне включены CarWith / Car+ / Jovi InCar

**Пример:** проверка связи с ГУ до установки.

```bash
adb devices
```

Ожидаемый вывод:

```
List of devices attached
0123456789ABCDEF	device
```

Если в правой колонке `unauthorized` — на экране ГУ не подтвердили запрос «Разрешить отладку по USB». Если список пуст — кабель, драйвер или выключенная отладка.

Порядок установки APK на Android подробно разобран в гайде [WordCraft APK для Android: где скачать, как проверить файл и установить](https://ai-release.org/guides/wordcraft-apk-android-skachat.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — логика проверки файла и установки там та же.

## Шаг 1. Установить APK на автомобильную сторону

**Что сделать:** подключить ГУ к ПК по USB, установить APK и убедиться, что пакет появился в системе.

**Зачем:** приёмник должен работать на устройстве, которое отдаёт экран в автомобиле. Пока APK не установлен на ГУ, телефону не к чему подключаться.

**Как проверить:** `adb install` вернул `Success`, а `pm list packages -3` показывает новый пакет.

```bash
adb install -r MiAuto.apk
```

Ожидаемый вывод:

```
Performing Streamed Install
Success
```

Почему это работает: `-r` переустанавливает пакет с сохранением данных, поэтому повторный запуск команды после обновления сборки не требует удаления приложения.

Если у ГУ нет доступного USB-порта, но есть отладка по сети, подключитесь по стандартному порту ADB `5555`:

```bash
adb connect 192.168.1.50:5555
```

где `192.168.1.50` — IP-адрес ГУ в вашей сети (посмотрите в настройках Wi-Fi головного устройства). Команда должна ответить `connected to 192.168.1.50:5555`.

Зафиксируйте список сторонних пакетов до и после установки — так вы найдёте имя пакета MiAuto, не угадывая его:

```bash
adb shell pm list packages -3 | sort > before.txt
adb install -r MiAuto.apk
adb shell pm list packages -3 | sort > after.txt
diff before.txt after.txt
```

**Пример вывода:** строка вида `> package: com.example.miauto` — это и есть установленный пакет; используйте его в `logcat` и при удалении.

## Шаг 2. Включить приёмник на ГУ и сопрячь телефон
![Иллюстрация к разделу «Шаг 2. Включить приёмник на ГУ и сопрячь телефон»](https://ai-release.org/guides/img/miauto-ustanovka-apk-podklyuchenie-ru-2.jpg?v=1793695762)


**Что сделать:** запустить установленное приложение на ГУ, перевести его в режим приёма (элемент запуска в интерфейсе — его точное название сверьте с README проекта), затем на телефоне открыть CarWith / Car+ / Jovi InCar и найти приёмник в списке доступных устройств.

**Зачем:** MiAuto реализует автомобильную сторону протокола ICCOA CarLink. Телефон ведёт себя как обычно — ищет автомобиль, — а приёмник ждёт подключения. Root не нужен именно потому, что обе стороны общаются по штатному протоколу, а не через системные хуки.

**Как проверить:** на ГУ появился экран трансляции или статус подключения, а в логе нет падений приложения.

```bash
adb logcat -c
adb logcat | grep -i -E "miauto|carwith|carplus|jovi|iccoa|carlink"
```

`logcat` — поток системных логов Android; `-c` очищает буфер, чтобы вы видели только события после запуска приёма. Если по этим тегам пусто, приложение пишет под другим тегом — уберите `grep` и смотрите поток целиком.

Пошаговая схема с ожидаемым результатом:

1. Запустить MiAuto на ГУ → приложение открылось без краша.
2. Включить приём → в интерфейсе отображается ожидание подключения (формулировку сверьте с README).
3. На телефоне открыть CarWith / Car+ / Jovi InCar → в списке появляется автомобиль.
4. Выбрать его → на ГУ начинает отображаться экран телефона.
5. Проверить IP ГУ, чтобы понимать, в какой подсети идёт обмен:

```bash
adb shell ip addr show wlan0
```

**Пример вывода:** строка `inet 192.168.1.50/24` — адрес ГУ в вашей сети. Если у телефона адрес из другой подсети (например, `192.168.0.x`), соединения не будет.

## Шаг 3. Проверить трансляцию и стабильность
![Иллюстрация к разделу «Шаг 3. Проверить трансляцию и стабильность»](https://ai-release.org/guides/img/miauto-ustanovka-apk-podklyuchenie-ru-3.jpg?v=1793695768)


**Что сделать:** убедиться, что изображение идёт, ввод работает, и повторить подключение после разрыва.

**Зачем:** первое подключение часто проходит на кэшированных данных, а реальная пригодность видна только после переподключения и проверки активного окна.

**Как проверить:** активное окно на ГУ — приложение трансляции, экран обновляется, повторный коннект проходит без переустановки.

```bash
adb shell dumpsys window | grep -i mCurrentFocus
```

`dumpsys window` отдаёт состояние окон, `mCurrentFocus` — окно, которое сейчас в фокусе.

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

```
mCurrentFocus=Window{... u0 <package-приложения>}
```

Если в фокусе лаунчер, а не приложение приёмника, — приём не запустился или его вытеснила система.

Финальная проверка списком:

- [ ] Экран телефона виден на ГУ
- [ ] Касания на экране ГУ передаются в интерфейс телефона
- [ ] После отключения и повторного запуска приёма телефон находится заново
- [ ] В `adb logcat` нет повторяющихся ошибок соединения

Успех выглядит так: приложение на ГУ держит окно в фокусе, а телефон подключается к нему как к обычному автомобилю — без перезагрузки ГУ и без повторной установки APK.

## Возможные проблемы и решения

**Проблема. ADB не видит головное устройство**
- Ошибка: `error: no devices/emulators found`
- Причина: выключена отладка по USB, кабель только для зарядки или на ГУ не подтверждён запрос авторизации.
- Решение: включить «Отладку по USB», заменить кабель на передающий данные, выполнить `adb kill-server && adb devices` и подтвердить диалог на экране ГУ.

**Проблема. Установка блокируется системой**
- Ошибка: `adb: failed to install MiAuto.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]`
- Причина: на MIUI/HyperOS и части прошивок ГУ запрещена установка через USB без дополнительного разрешения.
- Решение: в «Для разработчиков» включить «Установка через USB», при необходимости отключить «Оптимизацию MIUI», затем повторить `adb install -r MiAuto.apk`.

**Проблема. Телефон не находит приёмник в CarWith / Car+ / Jovi InCar**
- Ошибка: в интерфейсе телефона список устройств пуст, в `logcat` на ГУ нет событий подключения.
- Причина: телефон и ГУ в разных подсетях, включена изоляция клиентов на роутере или приём не переведён в режим ожидания.
- Решение: подключить оба устройства к одной сети, отключить изоляцию клиентов (AP isolation), сверить адреса через `adb shell ip addr show wlan0` и `ping <IP-ГУ>` с телефона; затем заново запустить приём.

## Резюме и следующие шаги
MiAuto ставится на автомобильную сторону, работает без root и без переходной коробки, а телефон подключается штатным приложением CarWith, Car+ или Jovi InCar. После успешной проверки трансляции имеет смысл зафиксировать рабочую сборку APK и параметры сети, чтобы повторное развёртывание занимало минуты; общая логика установки APK из репозитория разобрана в гайде [Sideraven: как установить с GitHub и перенести закладки](https://ai-release.org/guides/sideraven-ustanovka-s-github.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## FAQ

**Нужен ли root на головном устройстве?**
Нет. По заявлению авторов проекта, подключение беспроводное и root не требуется.

**Нужна ли специальная переходная коробка-адаптер?**
Нет, авторы заявляют работу без аппаратного адаптера: приёмник — это APK на стороне автомобиля.

**Ставить MiAuto на телефон или на магнитолу?**
На автомобильную сторону. Приёмник принимает поток от телефона; телефон использует своё штатное приложение (CarWith, Car+, Jovi InCar).

**Какая версия Android нужна и где взять APK?**
В описании репозитория `PiggyBackBayonet/MiAuto` минимальная версия Android и номер сборки не указаны — сверьтесь с README и разделом Releases на GitHub.
