# Как превратить Android-смартфон в передатчик CarPlay: установка и настройка CarDeck

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-prevratit-android-smartfon-v-peredatchik-carplay-us.html

## TL;DR
- Время выполнения: 30–40 минут (без учёта скачивания APK и обновлений системы).
- Уровень сложности: Intermediate
- Понадобится:
  - Android-смартфон (минимальная поддерживаемая версия Android — сверьтесь с документацией проекта CarDeck);
  - ПК с Windows 10/11, macOS или Linux;
  - USB-кабель с передачей данных (не «только зарядка»);
  - platform-tools с утилитой `adb` (версию сверьте с документацией Android SDK);
  - файл `CarDeck.apk` из официального источника проекта;
  - головное устройство (ГУ) автомобиля — мультимедийная система с поддержкой CarPlay.

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-prevratit-android-smartfon-v-peredatchik-carplay-us-ru-1.jpg)


CarPlay — протокол Apple для вывода интерфейса телефона на экран автомобиля. CarDeck в этой схеме работает как передатчик: смартфон отдаёт сигнал на ГУ, поэтому проверять нужно обе стороны — телефон и машину.

- [ ] На телефоне включён режим разработчика и отладка по USB.
- [ ] ПК видит телефон в `adb` (не «unauthorized»).
- [ ] На телефоне достаточно свободного места под APK и кэш приложения.
- [ ] Разрешение на установку из неизвестных источников для файлового менеджера/браузера выдано.
- [ ] ГУ находится в режиме CarPlay и умеет принимать новое устройство (сверьтесь с инструкцией к автомобилю).
- [ ] Телефон и ГУ находятся рядом: во время первой настройки не уносите телефон из салона.

Установите platform-tools и проверьте, что `adb` вообще запускается:

```bash
adb version
```

Ожидаемый вывод — первая строка вида:

```
Android Debug Bridge version 1.0.41
```

Проверка каждой позиции из чек-листа — командой, а не «на глаз»:

| Что проверяем | Команда | Ожидаемый результат |
|---|---|---|
| adb на месте | `adb version` | строка с версией Android Debug Bridge |
| Телефон подключён | `adb devices` | `<серийный-номер> device` |
| Свободное место | `adb shell df /data` | в колонке Available ненулевое значение |
| Разрешение на неизвестные источники | `adb shell settings get secure install_non_market_apps` | `1`, если включено |

**Пример:** подключаете кабель, на экране телефона появляется «Разрешить отладку по USB?» с отпечатком ключа RSA. Нажимаете «Разрешить», затем:

```bash
adb devices
```

```
List of devices attached
R58M12ABCDE	device
```

Если вместо `device` стоит `unauthorized` — диалог на телефоне не подтверждён. Почему это важно: до подтверждения `adb install` не сработает, и вы будете искать проблему в APK, хотя дело в разрешении.

Полезно заранее понять, сколько лет обновлений получит ваш аппарат: старые модели иногда не тянут свежие требования приложений — см. [как узнать срок поддержки Android-смартфона](https://ai-release.org/guides/kak-uznat-skolko-let-obnovleniy-poluchit-vash-android-s.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

**Пример:** на телефоне занято 54 ГБ из 64 ГБ, `adb shell df /data` показывает Available 0.9G. Для установки хватит, но под кэш передачи лучше освободить место заранее.

## Шаг 1. Включаем режим разработчика и отладку по USB

**Что сделать:** откройте «Настройки → О телефоне → Номер сборки» и нажмите по строке 7 раз. Затем вернитесь в «Настройки → Система → Для разработчиков» и включите «Отладка по USB». У некоторых производителей путь отличается — сверьтесь с документацией производителя.

**Зачем:** `adb` — консольная утилита для управления Android с ПК. Установка APK, чтение логов и выдача разрешений через неё быстрее и точнее, чем через файловый менеджер, и сразу даёт текст ошибки, если что-то не так.

**Как проверить:** подключите кабель, подтвердите диалог RSA и выполните:

```bash
adb shell getprop ro.build.version.release
adb shell getprop ro.product.model
```

**Пример:** вывод `14` и `Pixel 7` означает, что Android 14 и модель определились — отладка работает. Если команда возвращает `error: device unauthorized`, повторите подтверждение диалога.

## Шаг 2. Устанавливаем и настраиваем CarDeck
![Иллюстрация к разделу «Шаг 2. Устанавливаем и настраиваем CarDeck»](https://ai-release.org/guides/img/kak-prevratit-android-smartfon-v-peredatchik-carplay-us-ru-2.jpg)


**Что сделать:** перенесите `CarDeck.apk` на телефон и установите через `adb` либо через файловый менеджер. Затем откройте приложение и выданные им разрешения (Bluetooth, местоположение, уведомления, при необходимости микрофон), выберите режим передачи на ГУ и включите автозапуск, если он доступен в вашей сборке.

**Зачем:** без разрешений Bluetooth и уведомлений приложение не сможет ни найти ГУ, ни удержать соединение в фоне — система Android «заморозит» его при первом же уходе в фон.

Установка через `adb`:

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

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

```
Performing Streamed Install
Success
```

**Пример:** если установка прошла, найдите имя пакета, чтобы дальше управлять приложением командой, а не через экран:

```bash
adb shell pm list packages
```

В списке ищите строку с `cardeck` — её точное написание сверьте с документацией проекта. Дальше вместо `<имя-пакета>` подставляйте найденное значение.

Проверьте, что приложение получило нужные права:

```bash
adb shell dumpsys package <имя-пакета>
```

В секции `requested permissions` должны присутствовать разрешения на Bluetooth и уведомления. Если их нет — включите вручную в «Настройки → Приложения → CarDeck → Разрешения».

**Как проверить:** запустите приложение и убедитесь, что оно не падает:

```bash
adb shell monkey -p <имя-пакета> -c android.intent.category.LAUNCHER 1
adb logcat -d -t 200 | findstr /i cardeck
```

**Пример:** на Windows `findstr` вернёт несколько строк с упоминанием CarDeck — это строки лога о старте. На Linux/macOS используйте `grep -i cardeck` вместо `findstr`. Точный формат строк лога — сверьтесь с документацией: тег может отличаться в вашей сборке.

## Шаг 3. Проверяем передачу CarPlay на головное устройство
![Иллюстрация к разделу «Шаг 3. Проверяем передачу CarPlay на головное устройство»](https://ai-release.org/guides/img/kak-prevratit-android-smartfon-v-peredatchik-carplay-us-ru-3.jpg)


**Что сделать:** включите зажигание, переведите ГУ в режим CarPlay, на телефоне откройте CarDeck и запустите передачу. На ГУ подтвердите сопряжение нового устройства, если появится запрос. Держите телефон на расстоянии, на котором он стоял при настройке.

**Как проверить:** критерии успеха видны одновременно на двух экранах.

- На экране ГУ: появляется интерфейс CarPlay — сетка иконок приложений, а не сообщение «Нет устройства».
- На экране телефона: в шторке уведомлений остаётся постоянное уведомление CarDeck о активной передаче.
- В логе: появляются строки соединения без слов `failed`, `timeout`, `refused`.

Снимите лог после подключения:

```bash
adb logcat -d -t 300 | findstr /i "cardeck fail"
```

**Пример:** пустой вывод означает, что ошибок с тегом CarDeck не зафиксировано. Строка вида `connect failed` на этом шаге — сигнал переходить в раздел «Возможные проблемы».

Чек-лист приёмки — пройдите по нему, прежде чем считать настройку законченной:

- [ ] На ГУ отрисован интерфейс CarPlay.
- [ ] Звук при звонке/медиа выводится через акустику автомобиля.
- [ ] После перезапуска зажигания соединение восстанавливается автоматически.
- [ ] Приложение не выгружается при блокировке экрана телефона.

Если после перезапуска соединение не поднимается, добавьте приложение в исключения режима энергосбережения: «Настройки → Приложения → CarDeck → Батарея → Без ограничений».

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

**Проблема. Установка APK не проходит, установщик пишет об ограничении от производителя**

- Ошибка: `Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]`
- Причина: на MIUI, EMUI и части сборок ColorOS установка по `adb` заблокирована отдельным переключателем, даже если отладка по USB включена.
- Решение: включите «Настройки → Для разработчиков → Установка через USB» и повторите `adb install -r CarDeck.apk`. Подтвердите диалог на экране телефона.

**Проблема. ПК не видит телефон**

- Ошибка: `adb: device unauthorized. Please check the confirmation dialog on your device.`
- Причина: на телефоне не подтверждён ключ RSA либо кабель только заряжает.
- Решение: отзовите ключи («Настройки → Для разработчиков → Отмена авторизации отладки USB»), переподключите кабель и подтвердите диалог заново:

```bash
adb kill-server
adb start-server
adb devices
```

**Проблема. Новая версия APK не встаёт поверх старой**

- Ошибка: `Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package ... signatures do not match previously installed version]`
- Причина: APK подписан другим ключом — например, вы поставили сборку из другого источника.
- Решение: удалите предыдущую версию и поставьте заново:

```bash
adb uninstall <имя-пакета>
adb install CarDeck.apk
```

## Резюме и следующие шаги

Вы включили отладку, установили CarDeck через `adb`, выдали разрешения и подтвердили передачу CarPlay по интерфейсу на экране ГУ. Если хотите задействовать тот же телефон и для других задач, начните с гайда [как запустить ИИ-модель локально на Android](https://ai-release.org/guides/kak-zapustit-ii-model-lokalno-na-android-prilozheniya-i.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## FAQ

**Обязателен ли ПК и adb?**
Нет, APK можно поставить файловым менеджером. `adb` нужен, когда установка падает и требуется точный текст ошибки или проверка выданных разрешений.

**Почему телефон не виден в списке CarPlay на ГУ?**
Чаще всего не подтверждено сопряжение на стороне ГУ или приложение выгружено энергосбережением. Проверьте уведомление CarDeck в шторке и исключения батареи.

**Сработает ли это на любом автомобиле?**
Нет. ГУ должен поддерживать CarPlay и уметь принимать новое устройство. Проверьте это по инструкции к автомобилю — сверьтесь с документацией.

**Как понять, что передача стабильна, а не «случайно поднялась»?**
Перезапустите зажигание 2–3 раза и каждый раз проверяйте лог командой `adb logcat -d -t 300 | findstr /i "cardeck fail"`: пустой вывод во всех попытках — соединение восстанавливается штатно.
