Zaufanie do urządzenia w Android Enterprise udostępnia zestaw sygnałów dotyczących stanu urządzenia na Device, do których autoryzowane aplikacje – w tym aplikacje z listy dozwolonych i aplikacje z przypisaną rolą COMPANION_APP (patrz Zarządzanie rolami aplikacji i Konfiguracja zasad) – mogą mieć dostęp, aby obliczyć ocenę zaufania urządzenia.
Każde pole sygnału w klasie Device i jej zagnieżdżonych klasach modelu zawiera odpowiednią metodę get*Metadata(), która zwraca obiekt Metadata. Obiekt ten zgłasza wszelkie błędy Metadata.DataIssue napotkane podczas pobierania sygnału (np. brak uprawnień w pliku manifestu).
Informacje o tym, jak zintegrować pakiet SDK interfejsu Android Management API z aplikacją, znajdziesz w przewodniku po integracji Device Trust od Android Enterprise.
| Sygnały | |
|---|---|
| Wersja systemu operacyjnego |
Device#getSoftwareInfo() zwraca obiekt SoftwareInfo zawierający szczegółowe informacje o wersji systemu operacyjnego (starsze wersje systemu operacyjnego zwykle mają więcej luk w zabezpieczeniach):
|
| Wersja Android Device Policy |
SoftwareInfo#getAndroidDevicePolicyVersionCode() i SoftwareInfo#getAndroidDevicePolicyVersionName() zwracają kod wersji i widoczną dla użytkownika nazwę wersji aplikacji Android Device Policy na urządzeniu.
|
| Czy na urządzeniu jest oczekująca aktualizacja OTA? |
SoftwareInfo#getSystemUpdateInfo() zwraca SoftwareInfo.SystemUpdateInfo wskazujący, czy jest oczekująca aktualizacja systemu operacyjnego urządzenia (co wskazuje, czy urządzenie jest podatne na exploity):
|
| Poziom aktualizacji zabezpieczeń urządzenia |
SoftwareInfo#getDeviceSecurityPatchInfos() zwraca listę obiektów SoftwareInfo.SecurityPatchInfo (przy czym getComponent() i getSecurityPatchLevel() zwracają listę obiektów SecurityPatchLevel) dla bieżącego poziomu aktualizacji zabezpieczeń urządzenia w przypadku typów SecurityPatchComponent, które można aktualizować:
|
| Opublikowany poziom aktualizacji zabezpieczeń |
SoftwareInfo#getPublishedSecurityPatchInfos() zwraca listę obiektów SoftwareInfo.SecurityPatchInfo (przy czym getComponent() i getSecurityPatchLevel() zwracają listę obiektów SecurityPatchLevel) dla aktualnie opublikowanego poziomu aktualizacji zabezpieczeń w przypadku typów SecurityPatchComponent, które można zaktualizować:
|
| Szczegóły aplikacji o znaczeniu krytycznym |
Device#getApplicationReports() zwraca szczegółowe informacje o wszystkich zainstalowanych aplikacjach do aplikacji rozszerzalności i aplikacji wywołujących z rolą COMPANION_APP na urządzeniu zarządzanym przez AMAPI (patrz Zarządzanie rolami aplikacji i Konfiguracja zasad; w przypadku wywołania w profilu służbowym raporty są ograniczone do aplikacji zainstalowanych w profilu służbowym). W przypadku wszystkich innych wywołujących (takich jak aplikacje z listy dozwolonych) Device#getApplicationReports() zwraca szczegółowe informacje tylko o tych aplikacjach o znaczeniu krytycznym:
Szczegóły są zwracane jako lista obiektów
ApplicationReport, które zawierają:
|
| Informacje o sprzęcie urządzenia |
Device#getHardwareInfo() zwraca obiekt HardwareInfo, który udostępnia:
|
| Złożoność blokady ekranu |
Device#getDeviceSettings() udostępnia DeviceSettings#getScreenLockComplexity(), zwracając wartość DeviceSettings.ScreenLockComplexity, która wskazuje, jak złożona jest blokada ekranu bieżącego użytkownika lub profilu.
|
| Stan zarządzania (i aplikacja do zarządzania) |
Zwracane informacje zależą od profilu, w którym działa aplikacja. Więcej informacji znajdziesz w tabeli stanów zarządzania.
|
| Szyfrowanie dysku |
DeviceSettings#getEncryptionStatus() zwraca wartość DeviceSettings.EncryptionStatus wskazującą, czy pamięć urządzenia jest zaszyfrowana.
|
| Dostęp do stanu sieci (stan sieci i stan Wi-Fi) |
Device#getNetworkInfo() zwraca obiekt
NetworkInfo, a
NetworkInfo#getNetworkParams() zwraca listę obiektów
NetworkInfo.NetworkParams ze szczegółowymi informacjami o wszystkich aktywnych sieciach na urządzeniu:
|
| Google Play Protect VerifyApps | |
| Czy tryb DNS-over-TLS jest włączony |
NetworkParams#getPrivateDnsState() zwraca wartość PrivateDnsState wskazującą, czy w sieci jest używany prywatny DNS.
|
| Pakiet WebView |
SoftwareInfo#getWebviewPackage() zwraca nazwę bieżącego pakietu WebView.
|
| Zrozumiała dla człowieka nazwa firmy dostawcy usług zarządzania |
Na urządzeniach zarządzanych przez AMAPI metoda
Device#getManagementProviderInfo() zwraca obiekt ManagementProviderInfo, którego metoda getBusinessName() podaje czytelną dla człowieka nazwę firmy dostawcy usług zarządzania. To pole nie jest ustawione na urządzeniach niezarządzanych ani na urządzeniach zarządzanych przez niestandardowy kontroler zasad urządzeń.
|
Stan zarządzania
Wartości zwracane w przypadku sygnałów zarządzania zależą od profilu, w którym działa aplikacja. Aby uzyskać dostęp do sygnałów z profilu osobistego na urządzeniu niezarządzanym lub zarządzanym przez niestandardowy kontroler zasad urządzeń, aplikacja musi znajdować się na liście dozwolonych. Na w pełni zarządzanym urządzeniu zarządzanym przez AMAPI lub w profilu służbowym aplikacje z przypisaną rolą COMPANION_APP mogą też uzyskiwać dostęp do tych sygnałów bez umieszczania ich na liście dozwolonych (ograniczone do sygnałów z profilu służbowego, gdy są wywoływane w profilu służbowym).
| Stan zarządzania | Sygnały wywoływane z profilu osobistego | Sygnały wywoływane z profilu służbowego |
|---|---|---|
| Urządzenie niezarządzane |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
N/A
|
| Profil służbowy na urządzeniu należącym do pracownika (BYOD) |
ownership:
PERSONALLY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
PERSONALLY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Profil służbowy na urządzeniu należącym do firmy |
ownership:
COMPANY_OWNEDmanagementMode: UNMANAGEDmanagementAppPackageName: N/AworkProfileState:
|
ownership:
COMPANY_OWNEDmanagementMode: PROFILE_OWNERmanagementAppPackageName: Package name of the Profile Owner applicationworkProfileState:
|
| Urządzenie w pełni zarządzane |
N/A
|
ownership:
COMPANY_OWNEDmanagementMode: DEVICE_OWNERmanagementAppPackageName: Package name of the Device Owner applicationworkProfileState:
|