AOSP и управляемые устройства
ManagedProvisioning — системное приложение, устанавливающее MDM-агента при первом запуске устройства и дающее ему расширенные права Device Owner.
На штатных прошивках, мастер установки MDM открывается специальным жестом в проприетарном мастере начальной настройки, разработанном Google и не входящем в AOSP. В AOSP имеется лишь очень простой прототип мастера начальной настройки.
Provision — приложение, являющееся точкой входа при первом запуске AOSP. Оно устанавливает MDM или, в случае, если MDM-приложение не задано, помечает устройство полностью настроенным.
Интеграция в AOSP
Для внедрения MDM-системы в устройство на базе AOSP, нужно выполнить два действия.
1. Установить Headwind MDM в ROM
Для установки Headwind MDM в прошивку AOSP, нужно создать новую поддиректорию в packages/apps, и добавить ее в конфигурацию ROM. Для решения этой задачи мы создали простой шаблон для AOSP, содержащий Makefile и пошаговую инструкцию для интеграции.
2. Настроить стартовое приложение
Для назначения Headwind MDM приложением администратора, необходимо подправить исходный код приложения Provision. Подготовленный исходный код можно скачать здесь. Детальное описание, что нужно сделать, находится в файле README.md.
Скачать стартовое приложение >>
Как протестировать?
AOSP ROM собирается из исходного кода на сервере Ubuntu Linux. Финальная прошивка устанавливается на большинство смартфонов Google Pixel и Nexus без дополнительной доработки. На веб-сайте AOSP есть детальные инструкции по загрузке исходного кода, сборке и установке на устройства.
Описанные выше методы интеграции были протестированы на Google Pixel 5a с прошивкой на Android 13.
У меня нет исходного кода ROM!
Headwind MDM может быть предустановлен в прошивку, даже если у вас нет ее исходного кода.
1. Запросите платформные ключи у производителя устройства — они необходимы для подписи системных приложений. В исходном коде AOSP, ключи находятся в директории build/make/target/product/security. Вам необходимы два файла, platform.pk8 (поиватный ключ) и platform.x509.pem (сертификат).
2. Преобразуйте платформные ключи в файл JKS (как это сделать, написано здесь).
3. Загрузите исходный код приложения Provision и соберите его в Android Studio, подписав платформными ключами (см. README.md). Обратите внимание, что этот код адаптирован к Android Studio, в отличие от предыдущего варианта, который не собирается вне AOSP.
4. Загрузите последнюю версию Headwind MDM APK. Обратите внимание, что ее не нужно пересобирать или подписывать платформными ключами, так как она не требует системных прав.
5. Попросите производителя устройства установить приложения Headwind MDM и Provision в прошивку (и при необходимости заменить существующее приложение Provision). Или самостоятельно внесите изменения в ROM, пользуясь инструкциями от производителя или из Интернета.