Diese Seite bietet einen Überblick über die neuen Enterprise-APIs, -Funktionen und -Funktionen. Verhaltensänderungen mit Android 10.
Arbeitsprofile für unternehmenseigene Geräte
Android 10 bietet neue Bereitstellungs- und Attestierungsfunktionen für unternehmenseigenen Geräten nutzen, für die nur ein Arbeitsprofil erforderlich ist.
Verbesserte Bereitstellungstools für Arbeitsprofile
Sie können Arbeitsprofile auf Geräten mit Android 10 und höher bereitstellen, die registriert sind mit QR-Code oder Zero-Touch. Ein neues Intent-Extra für die Bereitstellung unternehmenseigener Geräte ermöglicht Device Policy Controller Apps (DPCs) zum Initiieren von Arbeitsprofilen oder vollständig verwalteten einrichten. Nachdem ein Arbeitsprofil erstellt oder die vollständige Verwaltung eingerichtet wurde, müssen Bildschirme zur Richtliniencompliance starten, um anfängliche Richtlinien zu erzwingen.
Deklarieren Sie in der Manifestdatei Ihres DPC einen neuen Intent-Filter für
GET_PROVISIONING_MODE
in einer Aktivität und füge den BIND_DEVICE_ADMIN
hinzu
Berechtigung, um zu verhindern, dass beliebige Apps diese Aktivität starten. Beispiel:
<activity
android:name=".GetProvisioningModeActivity"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<intent-filter>
<action
android:name="android.app.action.GET_PROVISIONING_MODE" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Während der Bereitstellung startet das System die mit dem Intent-Filter. Zweck dieser Aktivität ist es, einen Verwaltungsmodus festzulegen (Arbeitsprofil oder vollständig verwaltet)
Es kann hilfreich sein, zusätzliche Bereitstellungszustände abzurufen, bevor Sie den
entsprechenden Verwaltungsmodus für das Gerät auswählen. Die Aktivität kann
getIntent()
zum Abrufen
Folgendes:
DPCs können auch einen neuen Ergebnis-Intent erstellen und ihm die folgenden Extras hinzufügen:
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: Fügen Sie sie dem vorhandenen Set hinzu oder erstellen Sie ein neues Set. Dieses Bundle wird gesendet als zusätzliche Absicht, wenn der DPC die Bildschirme für die Einhaltung der Richtlinien öffnet.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
: Geben Sie nur dann ein zu migrierendes Konto an, wenn Sie ein Arbeitskonto als geschäftliches Konto hinzufügen Profilbereitstellung.EXTRA_PROVISIONING_SKIP_EDUCATION_SCREENS
Um den Verwaltungsmodus auf dem Gerät festzulegen, rufen Sie
putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode)
,
Dabei steht desiredProvisioningMode
für:
- Arbeitsprofil:
PROVISIONING_MODE_MANAGED_PROFILE
- Vollständig verwaltet:
PROVISIONING_MODE_FULLY_MANAGED_DEVICE
Arbeitsprofil oder vollständig verwaltete Bereitstellung durch Senden der Nutzerverwaltung abschließen
Details zur Einrichtung über setResult(RESULT_OK,
Intent)
und schließen Sie alle aktiven Bildschirme
finish()
Nach der Bereitstellung steht den DPCs ein neuer Intent zum Starten zur Verfügung Compliance-Bildschirme zu öffnen und anfängliche Richtlinieneinstellungen zu erzwingen. Im Arbeitsprofil werden im Arbeitsprofil die Compliance-Bildschirme angezeigt. Ihr DPC muss sicherstellen, dass seine Compliance-Bildschirme den Nutzern angezeigt werden, selbst wenn sie diese verlassen während der Einrichtung.
Deklarieren Sie in der Manifestdatei Ihres DPC einen neuen Intent-Filter für
ADMIN_POLICY_COMPLIANCE
in einer Aktivität und füge den BIND_DEVICE_ADMIN
hinzu
Berechtigung, um zu verhindern, dass beliebige Apps diese Aktivität starten. Beispiel:
<activity
android:name=".PolicyComplianceActivity"
android:label="@string/app_name"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<intent-filter>
<action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
Ihr DPC muss diesen neuen Intent verwenden, anstatt auf den
ACTION_PROFILE_PROVISIONING_COMPLETE
Nachricht an alle.
Die mit dem Intent-Filter verknüpfte Aktivität kann Folgendes aufrufen:
getIntent()
zum Abrufen
die
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
Nach der Einhaltung der Richtlinien muss ADMIN_POLICY_COMPLIANCE
setResult(RESULT_OK,
Intent)
zurückgeben und alle aktiven Bildschirme mit folgendem Symbol schließen:
finish()
Auf vollständig verwalteten Geräten kehren Nutzer zum Startbildschirm zurück. Geräte mit Arbeitsprofil Nutzer auffordern, ihr privates Konto hinzuzufügen, bevor sie zu Hause zurückkehren Bildschirm.
Attestierung der Geräte-ID des Arbeitsprofils
DPCs, die als Administrator eines Arbeitsprofils festgelegt wurden, das über die Zero-Touch-Registrierung bereitgestellt wird Geräte-IDs wie die IMEI-Nummer oder die des Herstellers Seriennummer haben. Das Gerät muss sichere Hardware wie eine vertrauenswürdige Ausführungsumgebung (TEE) oder Secure Element (SE) und unterstützen Geräte-ID Attestierung und Zero-Touch-Registrierung.
Die Administratorkomponente eines Arbeitsprofils kann DevicePolicyManager.generateKeyPair()
aufrufen und dabei ID_TYPE_SERIAL
, ID_TYPE_IMEI
oder ID_TYPE_MEID
für das idAttestationFlags
-Argument übergeben.
Weitere Informationen zum Extrahieren und Validieren von Geräte-IDs finden Sie unter Hardwaregestützte Schlüsselpaare mit Schlüsselattestierung verifizieren.
Verbesserungen am Arbeitsprofil
Neue APIs zur Unterstützung der profilübergreifenden Sichtbarkeit von Kalendern und App-Installationen aus unbekannten Quellen werden auf dem gesamten Gerät blockiert.
Arbeitsprofil, unbekannte Quellen auf dem gesamten Gerät
Apps, die von anderen Quellen als Google Play oder einer anderen vertrauenswürdigen App heruntergeladen wurden
werden als Apps aus unbekannten Quellen bezeichnet. Unter Android 10 haben Administratoren der Arbeit
Profile können Nutzer oder Profile daran hindern, Apps von unbekannten
auf beliebigen Geräten auf dem Gerät finden,
indem Sie die neue Nutzereinschränkung
DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY
Nach dem Hinzufügen dieser Einschränkung kann ein Nutzer des Geräts jedoch weiterhin
Apps mithilfe von ADB installieren.
Um zu verhindern, dass Nutzer versehentlich Apps aus unbekannten Quellen installieren, empfehlen, diese Nutzereinschränkung hinzuzufügen, da dafür Google Play nicht erforderlich ist zu installierende Dienste. Ältere Android-Versionen können folgendermaßen unterstützt werden: Legen Sie einen Wert für die verwaltete Konfiguration für Google Play fest.
Zulässige Eingabegeräte auf Arbeitsprofile beschränken
Wenn Administratoren von Arbeitsprofilen DevicePolicyManager.setPermittedInputMethods()
aufrufen, können Nutzer nur auf die zulässigen Eingabemethoden in ihrer Arbeit zugreifen
statt des gesamten Geräts aus. So haben die Nutzenden volle Kontrolle über die Eingabe.
auf der privaten Seite ihres Geräts.
Arbeitsprofile im Hintergrund löschen
WIPE_SILENTLY
hinzugefügt
Melden Sie sich in DevicePolicyManager.wipeData()
an.
Wenn das Flag gesetzt ist, werden Nutzer nicht benachrichtigt, nachdem ihr Arbeitsprofil gelöscht wurde
mit wipeData()
.
Neue Funktionen für vollständig verwaltete Geräte
Mit Android 10 werden neue Funktionen und APIs für vollständig verwaltete Geräte eingeführt, darunter manuelle Systemupdates, die Ausweitung der QR-Code- und NFC-Bereitstellung auf sind die Anmeldedaten für ein EAP-WLAN und die Unterstützung von DNS-over-TLS enthalten.
Manuelle Installation von Systemupdates
In Android 10 können Administratoren von vollständig verwalteten Geräten Systemupdates über eine Datei mit Systemupdates. Mit manuellen Systemupdates können IT-Administratoren Folgendes tun:
- Teste ein Update auf einer kleinen Anzahl von Geräten, bevor du es allgemein installierst.
- Vermeiden Sie doppelte Downloads in Netzwerken mit begrenzter Bandbreite.
- Installationen aufteilen oder Geräte nur dann aktualisieren, wenn sie nicht verwendet werden
Zuerst legt ein IT-Administrator eine Richtlinie für verzögerte Systemupdates fest.
um die automatische Installation zu verzögern (falls erforderlich). Als Nächstes ruft der DPC eines Geräts installSystemUpdate()
auf
durch den Pfad zur Systemupdatedatei eines Geräteherstellers. Übergeben Sie ein InstallSystemUpdateCallback
-Element
Objekt, mit dem das System Fehler melden kann, die vor dem Gerät auftreten.
neu gestartet. Wenn ein Fehler auftritt, ruft das System onInstallUpdateError()
auf
durch den Fehlercode.
Nach dem Neustart des Geräts muss der DPC die erfolgreiche Installation bestätigen
mit einer Versions-API wie
Build.FINGERPRINT
Wenn das Update
melden Sie den Fehler einem IT-Administrator.
EAP-WLAN-Bereitstellung
In Android 10 können QR-Codes und NFC-Daten, die für die Gerätebereitstellung verwendet werden, Folgendes enthalten: EAP-Konfiguration und -Anmeldedaten – einschließlich Zertifikaten. Wenn eine Person einen QR-Code scannt oder auf ein NFC-Tag tippt, authentifiziert sich das Gerät automatisch bei einem lokalen WLAN Netzwerk mit EAP und startet den Bereitstellungsprozess ohne zusätzliche manuelle Eingabe.
Um WLAN über EAP zu authentifizieren, füge ein
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
mit dem Wert "EAP"
. Um die EAP-Authentifizierung festzulegen, können Sie den
folgende zusätzliche Extras für Ihren Intent:
EXTRA_PROVISIONING_WIFI_EAP_METHOD
EXTRA_PROVISIONING_WIFI_IDENTITY
EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY
EXTRA_PROVISIONING_WIFI_DOMAIN
EXTRA_PROVISIONING_WIFI_PHASE2_AUTH
EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE
EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE
Unterstützung für privates DNS
Organisationen können DNS-over-TLS verwenden. (auf Android-Geräten als Privates DNS bezeichnet), um DNS-Abfragen nicht bekannt zu machen. einschließlich der internen Hostnamen. Administratorkomponenten vollständig verwalteter Geräte kann die Einstellungen für das private DNS des Geräts steuern. So richten Sie den Modus „Privates DNS“ ein: Rufen Sie uns an:
setGlobalPrivateDnsModeOpportunistic()
damit das Gerät ein privates DNS verwenden kann, wenn das System einen unterstützenden Nameserver erkennen kann, odersetGlobalPrivateDnsModeSpecifiedHost()
zum Angeben des Hostnamens eines Nameservers, der RFC7858 unterstützt im ArgumentprivateDnsHost
.
Wenn Ihr DPC eine dieser Methoden aufruft, gibt das System PRIVATE_DNS_SET_NO_ERROR
zurück, wenn
Der Anruf war erfolgreich. Andernfalls wird ein Fehler zurückgegeben.
Rufen Sie getGlobalPrivateDnsMode()
auf, um den Modus des privaten DNS und den auf einem Gerät festgelegten Host abzurufen
und getGlobalPrivateDnsHost()
.
Sie können verhindern, dass Nutzer die Einstellungen für das private DNS ändern, indem Sie die
DISALLOW_CONFIG_PRIVATE_DNS
Nutzereinschränkung.
Ausnahme für VPN-Sperrmodus
Im VPN-Sperrmodus kann ein DPC jedes Netzwerk blockieren Zugriffe, bei denen keine das VPN. Administratoren von vollständig auf verwalteten Geräten und mit Arbeitsprofilen können Apps vom Sperrmodus ausgenommen werden. Ausgenommene Apps verwenden standardmäßig ein VPN, stellen aber automatisch eine Verbindung zu anderen Apps her wenn das VPN nicht verfügbar ist. Ausgenommene Apps, die auch explizit Zugriff verweigert auf VPN verwenden nur andere Netzwerke.
Um eine App vom Sperrmodus auszunehmen, rufen Sie die neue
Methode DevicePolicyManager
setAlwaysOnVpnPackage()
die eine Liste ausgenommener App-Pakete akzeptiert. Alle vom DPC hinzugefügten App-Pakete
muss beim Aufruf der Methode auf dem Gerät installiert werden. Wenn eine App
deinstalliert und neu installiert wird, muss die App wieder ausgenommen werden. So holst du dir die Apps
zuvor vom Sperrmodus ausgenommen,
getAlwaysOnVpnLockdownWhitelist()
Damit Administratoren von vollständig verwalteten Geräten und Arbeitsprofilen den Sperrmodus erhalten
fügt Android 10 die
isAlwaysOnVpnLockdownEnabled()
.
Neue Delegationsbereiche
Android 10 erweitert die Liste der Funktionen, die ein DPC an andere, mehr
spezialisierten Anwendungen. Android gruppiert die für eine Aufgabe erforderlichen API-Methoden in
Scopes. Rufen Sie zum Delegieren eines Bereichs
setDelegatedScopes()
und einen oder mehrere der folgenden Bereiche übergeben:
DELEGATION_NETWORK_LOGGING
zum Delegieren des Loggings der NetzwerkaktivitätenDELEGATION_CERT_SELECTION
um die Zertifikatauswahl zu delegieren
Android 10 führt die neue Klasse ein
DelegatedAdminReceiver
für bevollmächtigte Apps. Das System verwendet diesen Übertragungsempfänger, um DPC-ähnliche
Callbacks zum Delegieren von Apps. Apps, denen Netzwerkaktivitäten delegiert wurden
Logging und Zertifikatsauswahl sollte diese Klasse implementieren. So fügen Sie dies hinzu:
-Komponente an eine delegierte App übergeben werden, gehen Sie folgendermaßen vor:
- Fügen Sie eine abgeleitete Klasse von
DelegatedAdminReceiver
hinzu an die Delegat-App gesendet. - Deklarieren Sie die
<receiver>
im App-Manifest erstellen und dabei für jeden Callback eine Intent-Filteraktion hinzufügen. Beispiel:ACTION_NETWORK_LOGS_AVAILABLE
oderACTION_CHOOSE_PRIVATE_KEY_ALIAS
. - Übertragungsempfänger mit
BIND_DEVICE_ADMIN
schützen Berechtigung.
Das folgende Snippet zeigt das App-Manifest einer einzelnen Bevollmächtigten-App, die übernimmt sowohl die Netzwerkprotokollierung als auch die Zertifikatsauswahl:
<receiver android:name=".app.DelegatedAdminReceiver"
android:permission="android.permission.BIND_DELEGATED_ADMIN">
<intent-filter>
<action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
<action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
</intent-filter>
</receiver>
Protokollierung der Netzwerkaktivität
Damit Organisationen Malware erkennen und verfolgen können, können DPCs TCP-Verbindungen protokollieren und DNS-Lookups durch das System. In Android 10 Administratoren von vollständig verwalteten Netzwerkprotokollierung an eine spezialisierte App delegieren können.
Zum Abrufen von Netzwerkprotokollen nach dem
macht einen Batch verfügbar, delegieren von Anwendungen zuerst abgeleitete Klassen.
DelegatedAdminReceiver
(wie zuvor beschrieben). Implementieren Sie in Ihrer abgeleiteten Klasse den Parameter
onNetworkLogsAvailable()
-Callbacks an, indem du der Anleitung unter Logs abrufen folgst.
Apps delegieren können Folgendes aufrufen
DevicePolicyManager
Methoden
(null
für das Argument admin
wird übergeben):
Um den Verlust von Protokollen zu vermeiden, sollten DPCs die Netzwerkprotokollierung nicht aktivieren.
an eine andere App delegieren möchten. Die Delegat-App sollte
Netzwerkprotokolle zu erfassen. Nachdem ein DPC das Netzwerk-Logging
delegiert, erhält er keine
Weitere onNetworkLogsAvailable()
Callbacks angegeben werden.
Weitere Informationen dazu, wie Sie das Logging der Netzwerkaktivität über eine delegierte App melden, finden Sie in der Entwicklerleitfaden zum Logging der Netzwerkaktivität.
Zertifikatauswahl
In Android 10: Administratoren von auf vollständig verwalteten Geräten, Arbeitsprofilen und sekundären Nutzern von der Zertifikatsauswahl bis zu einer spezialisierten App.
Zum Auswählen eines Zertifikatsalias müssen zuerst abgeleitete Klassen von Apps delegieren
DelegatedAdminReceiver
(wie zuvor beschrieben). Implementieren Sie in Ihrer abgeleiteten Klasse den Parameter
onChoosePrivateKeyAlias()
-Callback und gibt einen Alias für einen bevorzugten
Zertifikat oder geben Sie null
zurück, um den Nutzer zur Auswahl eines Zertifikats aufzufordern.
Einstellung von Richtlinien zur Geräteverwaltung
Android 10 verhindert, dass Apps und DPCs alte Geräte verwenden.
Admin. Wir empfehlen Kunden,
und Partner auf vollständig verwaltete Geräte oder Arbeitsprofile umstellen. Die folgenden
lösen eine SecurityException
aus
wenn sie von einem Geräteadministrator aufgerufen wird, der auf Android 10 ausgerichtet ist:
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
Einige Anwendungen verwenden die Geräteverwaltung für die Geräteverwaltung für Verbraucher. Für z. B. das Sperren und Löschen eines verlorenen Geräts. Dazu gehen Sie so vor: sind weiterhin verfügbar:
Weitere Informationen zu diesen Änderungen finden Sie unter Geräteadministrator Einstellung.
Neue Funktionen für Apps
Apps, die auf Android 10 ausgerichtet sind, können die Komplexität der Displaysperre auf einem Gerät abfragen
bevor vertrauliche Daten angezeigt oder wichtige Funktionen eingeführt werden. Apps anrufen
Vorteile der KeyChain
API durch
verbessertes Verhalten und für VPN-Apps sind neue Funktionen verfügbar.
Qualitätsprüfung für Displaysperre
Ab Android 10 werden Apps mit wichtigen Funktionen, die eine Displaysperre erfordern, kann die Komplexität der Displaysperre eines Geräts oder Arbeitsprofils abfragen. Apps, die eine kann der Nutzer zu den Einstellungen für die Displaysperre des Systems weitergeleitet werden. damit sie ihre Sicherheitseinstellungen aktualisieren können.
So prüfen Sie die Qualität der Displaysperre:
- Fügen Sie die neue Berechtigung
REQUEST_PASSWORD_COMPLEXITY
zu Ihrem App-Manifests. - Rufen Sie
DevicePolicyManager.getPasswordComplexity()
auf. Komplexität wird in vier Kategorien unterteilt: <ph type="x-smartling-placeholder">
Um die Einstellungen für die Displaysperre des Systems zu starten, verwenden Sie
ACTION_SET_NEW_PASSWORD
mit zusätzlichen EXTRA_PASSWORD_COMPLEXITY
-Optionen, die nicht
die im Intent „Extra“ angegebenen Komplexität erfüllen, sind ausgegraut. Nutzer können
eine der verfügbaren Optionen für die Displaysperre auswählen oder den Bildschirm verlassen.
Best Practice:Zeigen Sie vor dem Starten des Systems eine Nachricht in Ihrer App an
die Seite für die Displaysperre. Wenn die App fortgesetzt wird,
DevicePolicyManager.getPasswordComplexity()
noch einmal. Wenn trotzdem eine stärkere Displaysperre erforderlich ist, schränken Sie den Zugriff ein, anstatt
Nutzer werden wiederholt aufgefordert, ihre Sicherheitseinstellungen zu aktualisieren.
HTTP-Proxy-Unterstützung in VPN-Anwendungen
In Android 10 können VPN-Apps einen HTTP-Proxy festlegen
für die VPN-Verbindung. Um einen HTTP-Proxy hinzuzufügen, muss eine VPN-App eine
ProxyInfo
-Instanz mit einem Host und Port
vor dem Anruf
VpnService.Builder.setHttpProxy()
Das System und viele Netzwerkbibliotheken verwenden diese Proxy-Einstellung, aber das System
zwingt Apps nicht, HTTP-Anfragen über einen Proxy weiterzuleiten.
Beispielcode, der zeigt, wie ein HTTP-Proxy eingerichtet wird, finden Sie in der ToyVPN Beispiel-App.
VPN-Dienstmodi
VPN-Apps können erkennen, ob der Dienst ausgeführt wird, weil der Dienst immer aktiv ist. Vpn und wenn lockdown Modus aktiv ist. Neue Methoden die in Android 10 hinzugefügt wurden, können Sie Ihre Benutzeroberfläche anpassen. Zum Beispiel haben Sie wird möglicherweise deaktiviert, wenn der Lebenszyklus durch ein durchgehend aktives VPN gesteuert wird Ihrer Dienstleistung.
VPN-Apps können die folgenden VpnService
aufrufen
nach dem Herstellen einer Verbindung
und die lokale Schnittstelle einrichten:
isAlwaysOn()
bis Herausfinden, ob das System den Dienst aufgrund eines durchgehend aktiven VPNs gestartet hatisLockdownEnabled()
um herauszufinden, ob das System Verbindungen blockiert, die das VPN nicht verwenden
Der Status "Always-On" bleibt während der Ausführung des Dienstes gleich, Der Status des Sperrmodus kann sich ändern.
Verbesserungen am Schlüsselbund
Android 10 enthält einige Verbesserungen in Bezug auf die
KeyChain
API
Wenn eine App KeyChain.choosePrivateKeyAlias()
aufruft, müssen Android 10 oder höher installiert sein
Geräte filtern die Liste der Zertifikate, aus denen ein Nutzer basierend auf den
Aussteller und Schlüsselalgorithmen, die im Aufruf angegeben wurden.
Beispiel: Ein TLS-Server sendet eine Zertifikatsanfrage
im Rahmen eines TLS-Handshakes und durch Browseraufrufe
KeyChain.choosePrivateKeyAlias()
, nur die Aufforderung zur Zertifikatsauswahl
enthält Optionen, die dem Parameter Aussteller entsprechen. Wenn keine Übereinstimmungstypen
oder keine Zertifikate auf dem Gerät installiert sind,
wird dem Nutzer nicht angezeigt.
Außerdem wurde KeyChain
nicht mehr
muss auf dem Gerät eine Displaysperre eingerichtet sein, bevor Schlüssel oder CA-Zertifikate übertragen werden können.
importiert.