На этой странице описывается, как включить начальные функции шифрования привязки автомобиля.
Обзор
Основная цель функции начального значения привязки транспортного средства — дополнительная защита конфиденциальности пользователя путем защиты данных в автомобильной информационно-развлекательной системе (IVI) от удаления из автомобиля. Это делается путем привязки ключей шифрования хранилища к какому-либо другому электронному блоку управления (ЭБУ), так что если IVI снимается и помещается в другой автомобиль (или запускается на испытательном стенде), зашифрованные пользовательские данные на IVI не могут быть расшифрованы.
 Чтобы связать ключи шифрования файлов, Волд смешивает начальное значение для конкретного автомобиля с производным ключом шифрования ключа, поэтому ключи уникальны и физически привязаны к транспортному средству. Начальное значение представляет собой массив байтов, представленный OEM-производителем как новое свойство уровня абстракции аппаратного обеспечения транспортного средства (VHAL), STORAGE_ENCRYPTION_BINDING_SEED . Разрешения этого свойства ограничены таким образом, что его могут запрашивать только привилегированные системные демоны.
Схема архитектуры
Этот рисунок иллюстрирует архитектуру интеграции с привязкой к транспортному средству:

Рисунок 1. Архитектура, привязанная к транспортному средству.
Включить привязку на основе транспортного средства
Привязка шифрования хранилища к автомобилю должна быть явно включена и не может быть включена или выключена без выполнения сброса настроек. Это означает, что обновление по беспроводной сети (OTA) не может включить эту функцию без очистки устройства. OEM-производитель может включить эту функцию после обновления, если он также осуществит сброс настроек устройства до заводских. Например, при посещении сервиса.
 Эта функция включается путем поддержки свойства STORAGE_ENCRYPTION_BINDING_SEED в HAL, предоставляемом поставщиком транспортного средства. Это свойство содержит байтовую строку длиной 16 байт и, как ожидается, будет сохраняться в ECU отдельно от IVI. Свойство изначально задается автомобильной ОС Android (AAOS), которая генерирует его с помощью криптографически безопасного генератора случайных чисел (CSRNG). Затем AAOS считывает это свойство при последующих загрузках.
 То, как VHAL хранит значение STORAGE_ENCRYPTION_BINDING_SEED , зависит от поставщика. У нас есть общие рекомендации по защите семян:
- ( Рекомендуется ) Семена хранятся в ЭБУ автомобиля, который физически хорошо защищен. Если нет, то и IVI, и ECU можно легко снять с автомобиля.
 - ( Рекомендуется ) IVI и ECU должны взаимно аутентифицироваться для обмена начальным значением, чтобы предотвратить поддельные запросы на начальное значение от ECU.
 - ( Рекомендуется ) Seed следует передавать по защищенному каналу для защиты от перехвата CAN-шины.
 
 Кроме того, добавьте следующее, чтобы гарантировать, что поставщик init.target.rc будет работать с late-fs перед mount_all --late :
# feed vehicle binding seed to vold
exec_start vold_seed_binding HAL транспортного средства следует запускать в early_hal вместо hal now . К любому системному свойству persist.* невозможно получить доступ в early-hal поскольку раздел /data еще не смонтирован.
Настройка привязки на основе транспортного средства
 Если начальное значение ECU не совпадает, устройство перезагружается в режиме восстановления и предлагает пользователю стереть раздел /data или повторить попытку.
Поведение запроса и очистки данных можно изменить в файлеbuiltins.cpp :
-  Измените 
prompt_and_wipe_dataнаwipe_data. Устройство очищает данные, а затем перезагружается без подсказки. -  Сообщение с подсказкой содержится в файле Recovery.cpp . 

Рисунок 2. Подсказка.
 
Тестовая привязка на базе автомобиля
Пробное тестирование
 Пробный тест представлен в packages/services/Car/cpp/security/vehicle_binding_util/tests .
Чтобы запустить этот пробный тест:
attest libvehicle_binding_util_test
Интеграционное тестирование
 Тестовый тест доступен в packages/services/Car/cpp/security/vehicle_binding_util/tests .
Чтобы запустить этот интеграционный тест:
atest vehicle_binding_integration_test