Android Enterprise의 기기 신뢰 - 사용 가능한 신호

Android Enterprise의 기기 신뢰는 허용 목록에 있는 애플리케이션과 COMPANION_APP 역할이 할당된 앱(애플리케이션 역할 관리 및 정책 구성 참고)을 포함하여 승인된 애플리케이션이 기기의 신뢰 점수를 계산하기 위해 액세스할 수 있는 일련의 기기 상태 신호를 Device에서 제공합니다.

Device의 각 신호 필드와 중첩된 모델 클래스에는 Metadata를 반환하는 상응하는 get*Metadata() 메서드가 포함되어 있습니다. 이 메서드는 신호를 가져올 때 발생한 Metadata.DataIssue(예: 누락된 매니페스트 권한)를 보고합니다.

애플리케이션에 Android Management API SDK를 통합하는 방법에 관한 자세한 내용은 Android Enterprise의 Device Trust - 통합 가이드를 참고하세요.

신호
OS 버전
Device#getSoftwareInfo()는 OS 버전 세부정보가 포함된 SoftwareInfo 객체를 반환합니다(이전 OS 버전에는 일반적으로 더 많은 취약점이 있음).
Android 기기 정책 버전
SoftwareInfo#getAndroidDevicePolicyVersionCode() 및 SoftwareInfo#getAndroidDevicePolicyVersionName()는 기기에 설치된 Android Device Policy 앱의 버전 코드와 사용자에게 표시되는 버전 이름을 반환합니다.
기기에 대기 중인 OTA가 있는가
SoftwareInfo#getSystemUpdateInfo()는 기기에 대기 중인 OS 업데이트가 있는지 여부(기기가 악용에 취약한지 여부를 나타내는 프록시)를 나타내는 SoftwareInfo.SystemUpdateInfo를 반환합니다.
기기 보안 패치 수준
SoftwareInfo#getDeviceSecurityPatchInfos()는 업데이트 가능한 SecurityPatchComponent 유형 전반에서 기기의 현재 보안 패치 수준에 관한 SoftwareInfo.SecurityPatchInfo 객체 목록을 반환합니다(getComponent() 및 getSecurityPatchLevel()는 SecurityPatchLevel 객체 목록을 반환함).
게시된 보안 패치 수준
SoftwareInfo#getPublishedSecurityPatchInfos()는 업데이트 가능한 SecurityPatchComponent 유형 전반에서 현재 게시된 보안 패치 수준의 SoftwareInfo.SecurityPatchInfo 객체 목록을 반환합니다(getComponent() 및 getSecurityPatchLevel()는 SecurityPatchLevel 객체 목록을 반환함).
중요한 앱 세부정보
Device#getApplicationReports()는 AMAPI 관리 기기에서 COMPANION_APP 역할이 있는 확장성 앱 및 호출 애플리케이션에 설치된 모든 애플리케이션에 관한 세부정보를 반환합니다(애플리케이션 역할 관리 및 정책 구성 참고. 직장 프로필 내에서 호출되는 경우 보고서는 직장 프로필에 설치된 앱으로 제한됨). 다른 모든 호출자(예: 허용 목록에 있는 애플리케이션)의 경우 Device#getApplicationReports()는 다음 중요 앱에 관한 세부정보만 반환합니다.
  • com.android.chrome
  • com.google.android.gms
  • com.google.android.apps.work.clouddpc
  • com.android.vending
  • 기기의 현재 WebView 패키지(예: com.google.android.webview)
세부정보는 다음을 노출하는 ApplicationReport 객체 목록으로 반환됩니다.
기기 하드웨어 정보
Device#getHardwareInfo()는 다음을 노출하는 HardwareInfo 객체를 반환합니다.
화면 잠금 복잡성
Device#getDeviceSettings()는 DeviceSettings#getScreenLockComplexity()를 제공하여 현재 사용자 또는 프로필의 화면 잠금이 얼마나 복잡한지 나타내는 DeviceSettings.ScreenLockComplexity 값을 반환합니다.
관리 상태(및 관리 앱)
반환되는 정보는 애플리케이션이 실행 중인 프로필에 따라 다릅니다. 자세한 내용은 관리 상태 표를 참고하세요.
디스크 암호화
DeviceSettings#getEncryptionStatus()는 기기의 저장소가 암호화되었는지 여부를 나타내는 DeviceSettings.EncryptionStatus 값을 반환합니다.
네트워크 상태 액세스(네트워크 상태 및 Wi-Fi 상태)
Device#getNetworkInfo()는 NetworkInfo 객체를 반환하고 NetworkInfo#getNetworkParams()는 기기의 모든 활성 네트워크에 관한 세부정보가 포함된 NetworkInfo.NetworkParams 객체 목록을 반환합니다.
Google Play 프로텍트 VerifyApps
DNS over TLS 사용 설정 여부
NetworkParams#getPrivateDnsState()는 네트워크에서 비공개 DNS가 사용되는지 여부를 나타내는 PrivateDnsState 값을 반환합니다.
WebView 패키지
SoftwareInfo#getWebviewPackage()는 현재 WebView 패키지의 이름을 반환합니다.
인간이 읽을 수 있는 관리 제공업체의 비즈니스 이름입니다.
AMAPI 관리 기기에서 Device#getManagementProviderInfo()는 ManagementProviderInfo 객체를 반환합니다. 이 객체의 getBusinessName() 메서드는 관리 제공업체의 사람이 읽을 수 있는 비즈니스 이름을 제공합니다. 이 필드는 관리되지 않는 기기 또는 맞춤 DPC에서 관리하는 기기에는 설정되지 않습니다.

관리 상태

관리 신호에 반환되는 값은 애플리케이션이 실행 중인 프로필에 따라 다릅니다. 개인 프로필 내에서, 관리되지 않는 기기에서, 또는 맞춤 DPC에서 관리하는 기기에서 신호에 액세스하려면 애플리케이션이 허용 목록에 있어야 합니다. AMAPI 관리형 완전 관리형 기기 또는 직장 프로필 내에서 COMPANION_APP 역할이 할당된 애플리케이션은 허용 목록에 없어도 이러한 신호에 액세스할 수 있습니다(직장 프로필 내에서 호출되는 경우 직장 프로필의 신호로 제한됨).

관리 상태 개인 프로필 내에서 호출될 때의 신호 직장 프로필 내에서 호출될 때의 신호
관리되지 않는 기기 ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
N/A
개인 소유 기기의 직장 프로필(BYOD) ownership: PERSONALLY_OWNED
managementMode: UNMANAGED
managementAppPackageName: N/A
workProfileState:
ownership: PERSONALLY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
회사 소유 기기의 직장 프로필 ownership: COMPANY_OWNED
managementMode: UNMANAGED
managementAppPackageName:N/A
workProfileState:
ownership: COMPANY_OWNED
managementMode: PROFILE_OWNER
managementAppPackageName: Package name of the Profile Owner application
workProfileState:
완전히 관리되는 기기 N/A ownership: COMPANY_OWNED
managementMode: DEVICE_OWNER
managementAppPackageName: Package name of the Device Owner application
workProfileState: