Automotive용 기기 관리

기기 관리를 사용하면 AAOS(Android Automotive OS)를 실행하는 차량을 원격으로 관리할 수 있습니다. 예를 들어 차량 소유자가 인포테인먼트 장치를 원격으로 초기화할 수 있습니다.

Automotive에서는 두 가지 카테고리의 기기 관리를 제공합니다.

  • 개인 기기. 차량을 소비자가 소유합니다. 차량 소유자가 자동차를 원격으로 관리합니다. 예를 들어 소유자가 차량의 모바일 앱을 사용하여 인포테인먼트 장치를 원격으로 초기화합니다.
  • 엔터프라이즈 기기. 기업 또는 조직이 차량을 소유합니다. 관리자가 자동차를 원격으로 관리합니다.

개인 기기

개인 기기 시나리오에서 차량을 원격으로 관리하려면 차량의 주행 상태를 고려해야 합니다. 예를 들어 차량 소유자가 원격으로 초기화를 시작했을 때 다른 사람이 차를 운전 중이라면 초기화가 진행되면 안 될 것입니다.

따라서 주행 상태 제한과 통합된 기기 관리 API 세트를 제공합니다. 이러한 API는 정확한 권한을 보유한 모든 시스템 애플리케이션(시스템 파티션에 사전 설치된 앱)에서 호출할 수 있습니다.

개인 기기 관리 API

API 목적
CarDevicePolicyManager.createUser()

백그라운드에서 기기의 신규 사용자를 만듭니다.

주행 상태와 상호작용하는 방식

주행 상태와 상관없이 백그라운드에서 신규 사용자가 생성됩니다.

CarDevicePolicyManager.RemoveUser()

기기에서 기존 사용자를 삭제합니다.

주행 상태와 상호작용하는 방식

만약 대상 사용자가

  • 백그라운드에 있다면 작업이 진행됩니다.
  • 포그라운드에 있고 자동차가 주차 또는 유휴 상태이면 작업이 진행됩니다.
  • 포그라운드에 있고 자동차가 이동 중인 경우 예외 코드가 발생합니다.
DevicePolicyManager.lockNow()

기기에서 기존 사용자를 잠급니다. 사용자에게 기존 잠금 화면 사용자 인증 정보(예: PIN 또는 패턴)가 있는 경우 디스플레이가 켜진 상태를 유지합니다.

주행 상태와 상호작용하는 방식

만약 대상 사용자가

  • 백그라운드에 있다면 작업이 진행됩니다.
  • 포그라운드에 있고 자동차가 주차, 유휴 또는 이동 중 상태라면 사용자가 (주행 상태와 무관하게) 포그라운드에 있는 경우 작업이 진행되고 아니면 무시됩니다. lockNow()는 UX 방해 상태로 제한되지 않습니다.
DevicePolicyManager.resetPassword()

사용자에게 기존 사용자 인증 정보가 없다면 잠금 화면 사용자 인증 정보를 설정하여 기기의 기존 사용자를 잠급니다. 디스플레이는 켜진 상태를 유지합니다.

주행 상태와 상호작용하는 방식

만약 대상 사용자가

  • 백그라운드에 있다면 작업이 진행됩니다.
  • 포그라운드에 있고 자동차가 주차 또는 유휴 상태이면 작업이 진행됩니다.
  • 포그라운드에 있고 자동차가 이동 중인 경우 예외 코드가 발생합니다.
DevicePolicyManager.wipeData()

기기 초기화를 시작합니다.

주행 상태와 상호작용하는 방식

주행 상태(주차, 유휴 또는 이동 중)와 상관없이 작업이 진행됩니다. 시스템은 초기화가 필요하다는 알림을 운전자에게 표시합니다.

차량이 주차 중일 때 운전자는 알림에서 지금 또는 나중에(다음에 자동차 시동 시) 기기 초기화를 선택할 수 있습니다.

예:

초기화 알림

그림 1. 초기화가 시작되면 시스템에서 알림을 표시합니다.

차량 주차됨

그림 2. 차량이 주차 중일 때 운전자는 알림에서 지금 또는 나중에(다음에 자동차 시동 시) 기기 초기화를 선택할 수 있습니다.

운전자가 초기화를 선택

그림 3. 운전자가 나중에 초기화를 선택하면 다음에 자동차 시동을 걸 때 기기가 초기화된다는 토스트 메시지가 표시됩니다.

엔터프라이즈 기기

Android 13 SC V2 이상을 실행하는 Android Automotive OS 기기는 android.software.device_admin 기능 지원을 선언하여 엔터프라이즈 기기 관리 API를 사용 설정할 수 있습니다(자세한 내용은 DevicePolicyManager 참고). 그러면 조직에서 기기 정책 컨트롤러(DPC) 앱을 사용하여 기기의 로컬 기기 정책 및 시스템 애플리케이션을 제어할 수 있습니다.

Automotive는 직장 프로필을 지원하지 않습니다. 즉, 지원되는 유일한 관리 솔루션은 회사 소유로 개발되어 조직이 완전한 관리 권한을 갖고 있는 완전 관리형 기기뿐입니다.

차량을 원격으로 관리하는 기업도 자동차의 주행 상태를 고려해야 합니다. 따라서 특정 원격 작업도 차량의 주행 상태와 통합됩니다. 예를 들어 DevicePolicyManager.setFactoryResetProtectionPolicy()초기화 흐름은 기업에서 사용하는 차량에도 적용됩니다.

DevicePolicyManagercode>의 모든 API는 예외를 발생시킬 수 있습니다(예: 차량이 움직이는 경우). 다음은 DevicePolicyManagercode> API의 일부 목록입니다. 자세한 내용은 기기 관리 개요를 참고하세요.

  • DevicePolicyManager.removeActiveAdmin()
  • DevicePolicyManager.setFactoryResetProtectionPolicy()
  • DevicePolicyManager.installCaCert()
  • DevicePolicyManager.uninstallCaCert()
  • DevicePolicyManager.installKeyPair()
  • DevicePolicyManager.removeKeyPair()

여러 사용자를 위한 엔터프라이즈 기기 관리

Automotive용 기기 관리는 멀티 사용자 지원과 호환됩니다. 즉, 여러 운전자가 동일한 회사 소유 차량을 사용할 수 있지만 자신의 사용자 데이터를 사용하여 다른 운전자에게 데이터 개인 정보가 노출되지 않도록 예방하고 개인 정보를 보호합니다.

관리자는 기기 정책 컨트롤러 빌드에서 설명한 대로 기기 정책 컨트롤러(DPC) 앱을 사용하여 기기 전체 또는 사용자별 정책을 제어할 수 있습니다.

Automotive 빌드는 일반적으로 헤드리스 시스템 사용자 모드를 사용합니다. 이 경우 기기 정책 컨트롤러(DPC)가 시스템 사용자의 기기 소유자(DO)이자 나머지 다른 사용자의 프로필 소유자(PO)로 설정됩니다. 일부 API(예: requestBugreport())는 모든 사용자가 연결된 경우에만 사용할 수 있으므로 원격 관리자는 PO 사용자를 연결해야 합니다. 그런 다음 원격 관리자가 적절한 DPC를 선택하여 작업을 실행해야 합니다. 작업이 기기와 연결된 경우(예: wipeData()를 통한 초기화) DO DPC를 사용해야 합니다. 사용자(예: addUserRestriction())와 연결된 경우 PO DPC를 사용해야 합니다.

DPC 앱에는 DO와 PO 사이에 있는 IPC가 필요합니다. 연결된 직장 및 개인 앱에 설명된 Connect Apps API를 사용하는 것이 좋습니다.

DPC 앱이 여러 사용자를 관리하는 방법에 관한 자세한 내용은 연결된 사용자를 참고하세요.