Questa pagina fornisce una panoramica delle API, delle funzionalità e del comportamento aziendali. modifiche disponibili in Android 9.
Interfaccia utente del profilo di lavoro
Android 9 (livello API 28) include modifiche all'interfaccia utente nell'impostazione predefinita Avvio app per aiutare gli utenti a separare le app personali da quelle di lavoro. Produttori di dispositivi a supporto di questo aspetto possono presentare app in schede di lavoro e personali separate. Abbiamo inoltre semplificato l'attivazione e la disattivazione del profilo di lavoro per gli utenti dei dispositivi inclusa un'opzione nella scheda Lavoro di Avvio app.
.Durante il provisioning dei profili di lavoro e dei dispositivi gestiti, Android 9 include illustrazioni animate per aiutare gli utenti di dispositivi a comprendere queste funzionalità.
Cambiare app tra profili
Android 9 include API per avviare un'altra istanza di un'app in un
per aiutare gli utenti a passare da un account all'altro. Ad esempio, un'app email può
Fornire una UI che permette all'utente di passare dal profilo personale al profilo di lavoro e viceversa
profilo per accedere a due account email. Tutte le app possono chiamare queste API per avviare
Attività principale della stessa app se è già installata nell'altro profilo. A
aggiungi il passaggio di più account alla tua app, segui i passaggi riportati di seguito per chiamare
i metodi di
Corso CrossProfileApps
:
- Chiama il numero
getTargetUserProfiles()
per ricevere un elenco di profili in cui puoi avviare un'altra istanza dell'app. Questo metodo verifica che l'app è installata nei profili. - Chiama il numero
getProfileSwitchingIconDrawable()
per ottenere un'icona da utilizzare per rappresentare un altro profilo. - Chiama il numero
getProfileSwitchingLabel()
per richiedere testo localizzato che richiede all'utente di cambiare profilo. - Chiama
startMainActivity()
per avviare un'istanza di la tua app in un altro profilo.
Verifica che l'attività principale che vuoi avviare sia dichiarata nel
con un'azione per intent ACTION_MAIN
e include
una categoria di intent CATEGORY_LAUNCHER
.
Attivare o disattivare i profili di lavoro in modo programmatico
L'Avvio app predefinito (o le app con l'autorizzazione MANAGE_USERS
o
MODIFY_QUIET_MODE
) può attivare o disattivare il profilo di lavoro chiamando
UserManager.requestQuietModeEnabled()
Puoi
controlla il valore restituito per sapere se l'utente deve confermare
e credenziali prima della modifica dello stato. Perché il cambiamento potrebbe non avvenire
all'istante, ascolta
ACTION_MANAGED_PROFILE_AVAILABLE
oppure
ACTION_MANAGED_PROFILE_UNAVAILABLE
per sapere quando aggiornare l'interfaccia utente.
La tua app può controllare lo stato del profilo di lavoro chiamando
UserManager.isQuietModeEnabled()
Bloccare qualsiasi app su un dispositivo
A partire da Android 9, i proprietari di dispositivi e profili (di utenti secondari) può bloccare qualsiasi app sullo schermo di un dispositivo attivando la modalità di blocco attività. In precedenza, gli sviluppatori di app dovevano aggiungere il supporto per l'attività di blocco nelle app. Android 9 estende anche l'attività di blocco API per i proprietari di profili di utenti secondari non affiliati. Procedi come indicato di seguito. per bloccare un'app sullo schermo:
- Chiama
DevicePolicyManager.setLockTaskPackages()
per Aggiungi le app alla lista consentita per la modalità di blocco attività. - Chiama il numero
ActivityOptions.setLockTaskEnabled()
per l'avvio di un'app inclusa nella lista consentita in modalità di blocco attività.
Per interrompere un'app in modalità di blocco attività, rimuovila dalla modalità di blocco attività
lista consentita con
DevicePolicyManager.setLockTaskPackages()
Attiva le funzionalità dell'interfaccia utente di sistema
Quando la modalità di blocco attività è attiva, i proprietari dei dispositivi e dei profili possono attivarla
alcune funzioni dell'interfaccia utente
di sistema sul dispositivo
DevicePolicyManager.setLockTaskFeatures()
e passare un
di bit dei seguenti flag di funzionalità:
LOCK_TASK_FEATURE_NONE
LOCK_TASK_FEATURE_SYSTEM_INFO
LOCK_TASK_FEATURE_HOME
LOCK_TASK_FEATURE_NOTIFICATIONS
può essere utilizzato solo in combinazione conLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_KEYGUARD
LOCK_TASK_FEATURE_OVERVIEW
può essere utilizzato solo in combinazione conLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_GLOBAL_ACTIONS
Puoi chiamare DevicePolicyManager.getLockTaskFeatures()
per ottenere l'elenco delle funzionalità disponibili su un dispositivo quando è attiva la modalità di blocco attività
in un bucket con il controllo
delle versioni attivo. Quando un dispositivo esce dalla modalità di blocco attività, torna allo stato richiesto da
altri criteri relativi ai dispositivi.
Elimina finestre di dialogo di errore
In alcuni ambienti, ad esempio dimostrazioni di vendita al dettaglio o informazioni pubbliche
potrebbe essere utile non mostrare agli utenti finestre di dialogo di errore. Un criterio relativo ai dispositivi
del controller (DPC) può eliminare le finestre di dialogo di errore di sistema per gli arresti anomali o le mancate risposte
di app aggiungendo
Utente di DISALLOW_SYSTEM_ERROR_DIALOGS
delle risorse. Questa limitazione interessa tutte le finestre di dialogo quando viene applicata dal proprietario di un dispositivo
ma vengono soppresse solo le finestre di dialogo di errore mostrate nell'utente principale o secondario
quando la limitazione viene applicata
dai proprietari dei profili. Questa restrizione non
influisce sui profili di lavoro.
In Android 9, le app eseguite in schermo intero immersivo modalità non mostrano il fumetto del promemoria quando è attiva in modalità blocco attività. Il fumetto del promemoria è un riquadro mostrato agli utenti (al primo avvio) che spiega come uscire dalla modalità immersiva.
Supporta più utenti su dispositivi dedicati
Android 9 introduce il concetto di utente temporaneo per gli account (in precedenza dispositivi COSU). Gli utenti temporanei vengono gli utenti a breve termine destinati a casi in cui più utenti condividono su un dispositivo dedicato. Sono incluse le sessioni utente pubbliche su dispositivi come le biblioteche o chioschi per il check-in degli alberghi, nonché sessioni persistenti tra un ambiente un gruppo di utenti sui dispositivi, ad esempio lavoratori turnisti.
Gli utenti temporanei devono essere creati in background. Vengono creati come utenti secondari su un dispositivo e vengono rimossi (insieme alle app e dati) quando vengono arrestati, scambiati o il dispositivo si riavvia. Per creare un utente temporaneo, i proprietari di dispositivi possono:
- Imposta il flag
MAKE_USER_EPHEMERAL
durante le chiamateDevicePolicyManager.createAndManageUser()
. - Chiama il numero
DevicePolicyManager.startUserInBackground()
per avviare l'utente temporaneo in background.
Tieni presente che le app destinate ad Android 9 dovrebbero rilevare
UserManager.UserOperationException
durante la chiamata
createAndManageUser()
. Chiama l'eccezione
getUserOperationResult()
per scoprire perché
utente non è stato creato.
Ricevi notifiche di eventi
Il DeviceAdminReceiver
riceve notifiche per
i seguenti eventi:
onUserStarted()
: chiamato all'avvio di un utente.onUserSwitched()
: chiamato quando un cambio utente viene completata.onUserStopped()
: chiamata insieme aonUserRemoved()
quando un utente interrompe o registra i dati di Google.
Mostra messaggi di evento agli utenti
I proprietari dei dispositivi possono configurare i messaggi da mostrare agli utenti quando all'inizio e alla fine delle rispettive sessioni:
- Utilizza le funzionalità di
DevicePolicyManager.setStartUserSessionMessage()
per impostare il messaggio da mostrare all'utente all'inizio della sua sessione. A recupera il messaggio, richiamaDevicePolicyManager.getStartUserSessionMessage()
- Utilizza le funzionalità di
DevicePolicyManager.setEndUserSessionMessage()
per impostare il messaggio da mostrare all'utente al termine della sua sessione. A recupera il messaggio, richiamaDevicePolicyManager.getEndUserSessionMessage()
Uscire e interrompere gli utenti
I proprietari dei dispositivi possono utilizzare
DevicePolicyManager.setLogoutEnabled()
per specificare se
la disconnessione sia abilitata per gli utenti secondari. Per verificare se la disconnessione è abilitata, chiama
DevicePolicyManager.isLogoutEnabled()
I proprietari del profilo degli utenti secondari possono chiamare
DevicePolicyManager.logoutUser()
per interrompere l'utente secondario e
torna all'utente principale.
I proprietari del dispositivo possono utilizzare DevicePolicyManager.stopUser()
per interrompere una
come utente secondario specificato.
Memorizzazione nella cache del pacchetto
Per semplificare il provisioning degli utenti sui dispositivi condivisi con un insieme fisso di utenti: come i dispositivi per turni, è possibile memorizzare nella cache i pacchetti necessarie per le sessioni multiutente:
Chiama
DevicePolicyManager.setKeepUninstalledPackages()
per specificare l'elenco dei pacchetti da conservare come APK. Per recuperare un elenco di questi pacchi, chiamaDevicePolicyManager.getKeepUninstalledPackages()
Chiama il numero
DevicePolicyManager.installExistingPackage()
installare un pacchetto che è stato conservato dopo la rimozione tramitesetKeepUninstalledPackages()
.
Altri metodi e costanti
Android 9 include anche i seguenti metodi e costanti per un ulteriore supporto sessioni utente su dispositivi condivisi:
DevicePolicyManager.getSecondaryUsers()
ottiene un elenco di per tutti gli utenti secondari su un dispositivo.DISALLOW_USER_SWITCH
è una limitazione utente che puoi abilita chiamandoDevicePolicyManager.addUserRestriction()
per bloccare il passaggio da un utente all'altro.LEAVE_ALL_SYSTEM_APPS_ENABLED
è una bandiera disponibile perDevicePolicyManager.createAndManageUser()
. Una volta impostato, le app di sistema non vengono disattivate durante il provisioning degli utenti.UserManager.UserOperationException
è lanciato daDevicePolicyManager.createAndManageUser()
quando non è possibile creare un utente, contiene il motivo dell'errore.
Cancella i dati del pacchetto e rimuovi gli account
I proprietari di dispositivi e profili possono chiamare
clearApplicationUserData()
per cancellare i dati utente
per un determinato pacchetto. Per rimuovere un account dal
AccountManager
, i proprietari di dispositivi e profili possono chiamare
removeAccount()
.
Limitazioni per gli utenti e maggiore controllo sulle impostazioni
Android 9 introduce una serie di limitazioni per gli utenti per i DPC, nonché possibilità di configurare APN, ora, fuso orario e impostazioni di sistema su un dispositivo.
Configura gli APN
I proprietari dei dispositivi possono utilizzare i seguenti metodi nell'
DevicePolicyManager
per configurare gli APN su una
dispositivo:
addOverrideApn()
updateOverrideApn()
removeOverrideApn()
getOverrideApns()
setOverrideApnEnabled()
isOverrideApnEnabled()
Configura ora e fuso orario
I proprietari dei dispositivi possono utilizzare i seguenti metodi nell'
Classe DevicePolicyManager
per impostare l'orario e il fuso orario
su un dispositivo:
Applicare restrizioni per gli utenti su impostazioni importanti
Android 9 aggiunge limitazioni relative agli utenti per disattivare funzionalità e impostazioni di sistema. A
aggiungi una restrizione, chiama
DevicePolicyManager.addUserRestriction()
con uno dei
le seguenti costanti UserManager
:
DISALLOW_AIRPLANE_MODE
DISALLOW_AMBIENT_DISPLAY
DISALLOW_CONFIG_BRIGHTNESS
DISALLOW_CONFIG_DATE_TIME
DISALLOW_CONFIG_LOCATION
DISALLOW_CONFIG_SCREEN_TIMEOUT
DISALLOW_PRINTING
Se DISALLOW_CONFIG_BRIGHTNESS
e
DISALLOW_CONFIG_SCREEN_TIMEOUT
applicate in modo forzato
su un dispositivo, i proprietari possono comunque impostare lo schermo
luminosità, luminosità dello schermo
modalità e timeout dello schermo
sul dispositivo con l'API
DevicePolicyManager.setSystemSetting()
.
Dati misurati
I proprietari del dispositivo e dei profili possono impedire alle app di utilizzare il
reti di dati a consumo. Una rete viene considerata a consumo quando l'utente
sensibili all'utilizzo intensivo dei dati a causa di costi, limiti di dati o batteria e
o problemi di prestazioni. Per impedire alle app di utilizzare le reti a consumo, chiama
DevicePolicyManager.setMeteredDataDisabledPackages()
passando un elenco di nomi di pacchetti. Per recuperare le app attualmente limitate, chiama
DevicePolicyManager.getMeteredDataDisabledPackages()
Per scoprire di più sui dati a consumo in Android, leggi l'articolo Ottimizzazione dei dati di rete Utilizzo.
Esegui la migrazione dei DPC (controller criteri dispositivi)
I controller dei criteri dei dispositivi (DPC) possono trasferire la proprietà di un dispositivo oppure profilo di lavoro a un altro DPC (controller criteri dispositivi). Potresti trasferire la proprietà per spostare alcune funzionalità all'Android Management API, per eseguire la migrazione dei dispositivi il tuo DPC legacy o per aiutare gli amministratori IT a eseguire la migrazione all'EMM. Perché sei solo modificare la proprietà DPC, non puoi utilizzare questa funzione per modificare il tipo Gestione dei dispositivi, ad esempio la migrazione da un dispositivo gestito a un profilo di lavoro viceversa.
Puoi utilizzare la risorsa XML dei criteri di amministrazione dei dispositivi per
indicare che questa versione del DPC supporta la migrazione. Un DPC target
indica di poter ricevere la proprietà includendo un elemento denominato
<support-transfer-ownership>
. L'esempio seguente mostra come eseguire questa operazione
il file XML di amministrazione del dispositivo del DPC:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<support-transfer-ownership />
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
</uses-policies>
</device-admin>
I DPC che vogliono eseguire la migrazione della proprietà a una nuova app DPC possono verificare se
supporta la migrazione chiamando il metodo DeviceAdminInfo
supportsTransferOwnership()
Prima del trasferimento
proprietà, è responsabilità del DPC di origine verificare il DPC di destinazione
il confronto tra le firme delle app. Il corso PackageManager
include
per lavorare con le firme del codice.
Android mantiene i criteri relativi agli utenti e al sistema del DPC di origine attraverso un
trasferimento: non è necessario che i DPC eseguano la migrazione. Un DPC di origine può passare dati personalizzati
il DPC target utilizzando coppie chiave-valore in un PersistableBundle
. Dopo un
trasferimento riuscito, il DPC di destinazione può recuperare questi dati richiamando
DevicePolicyManager.getTransferOwnershipBundle()
I passaggi per trasferire la proprietà di un dispositivo gestito o di un profilo di lavoro sono: uguale:
- Il DPC di origine controlla che la versione del DPC di destinazione supporti la migrazione e Conferma che la firma dell'app del DPC di destinazione corrisponde a un valore previsto.
- Il DPC di origine chiama
transferOwnership()
per avviare il trasferimento. - Il sistema imposta il DPC di destinazione come amministratore attivo e imposta in quanto proprietario del dispositivo gestito o del profilo di lavoro.
- Il DPC di destinazione riceve il callback
onTransferOwnershipComplete()
e può configurare utilizzando i valori dell'argomentobundle
. - In caso di problemi con il trasferimento, il sistema ripristina la proprietà
il DPC di origine. Se il DPC di origine deve verificare che il trasferimento della proprietà
riuscito, chiama
isAdminActive()
per verificare che il DPC di origine non è più l'amministratore attivo.
Tutte le app in esecuzione nel profilo di lavoro ricevono il token
ACTION_PROFILE_OWNER_CHANGED
trasmetti quando
le modifiche del proprietario del profilo. Le app in esecuzione su un dispositivo gestito ricevono lo
ACTION_DEVICE_OWNER_CHANGED
viene trasmesso quando
modifiche del proprietario del dispositivo.
Profili di lavoro su dispositivi completamente gestiti
Trasferimento di due istanze di un DPC in esecuzione come proprietario del dispositivo e proprietario del profilo avviene in due fasi. Se il profilo personale e il profilo di lavoro vengono un membro affiliato, completa il trasferimento nel seguente ordine:
- Innanzitutto, trasferisci la proprietà del profilo di lavoro.
- Attendi il callback
DeviceAdminReceiver
onTransferAffiliatedProfileOwnershipComplete()
per confermare che il profilo di lavoro è stato trasferito al DPC di destinazione. - Infine, trasferisci la proprietà del dispositivo gestito al DPC di destinazione.
Rimanda gli aggiornamenti over-the-air (OTA)
I proprietari dei dispositivi possono posticipare gli aggiornamenti di sistema OTA dei dispositivi fino a un massimo di 90 giorni per bloccare la versione del sistema operativo in esecuzione su questi dispositivi durante periodi critici (ad esempio festività). Il sistema applica un buffer obbligatorio di 60 giorni dopo per evitare di bloccare il dispositivo per un tempo indeterminato.
Durante un periodo di blocco:
- I dispositivi non ricevono notifiche sugli aggiornamenti OTA in attesa.
- I dispositivi non installano aggiornamenti OTA del sistema operativo.
- Gli utenti dei dispositivi non possono controllare manualmente la disponibilità di aggiornamenti OTA nelle Impostazioni.
Per impostare un periodo di blocco, chiama
SystemUpdatePolicy.setFreezePeriods()
Poiché il blocco
ogni anno si ripete, le date di inizio e fine del periodo sono rappresentate
tramite numeri interi conteggiando il numero di giorni dall'inizio dell'anno. Il giorno di inizio deve
iniziano almeno 60 giorni dopo la fine di qualsiasi periodo di blocco precedente. Dispositivo
proprietari possono chiamare SystemUpdatePolicy.getFreezePeriods()
per
consente di recuperare un elenco di periodi di blocco impostati in precedenza per l'oggetto dei criteri di aggiornamento di sistema.
DevicePolicyManager.getSystemUpdatePolicy()
è stato
vengono aggiornate in modo da restituire eventuali periodi di blocco impostati dal proprietario del dispositivo.
Limitare la condivisione in un profilo di lavoro
I proprietari del profilo possono impedire agli utenti di condividere dati personali in un profilo di lavoro
sul dispositivo aggiungendo la limitazione utente
DISALLOW_SHARE_INTO_MANAGED_PROFILE
Questa limitazione impedisce le seguenti attività di gestione e condivisione degli intent:
- App del profilo personale che condividono dati e file con le app del profilo di lavoro.
- App del profilo di lavoro che selezionano elementi dal profilo personale, ad esempio immagini o file.
Dopo aver impostato questa limitazione, il DPC può comunque consentire l'Attività tra più profili
gli intent richiamando
addCrossProfileIntentFilter()
Chiavi protetti dall'hardware e certificati delle macchine
Android 9 aggiunge API per aiutarti a lavorare con chiavi e certificati si combinano per identificare i dispositivi in modo sicuro. Un DPC in esecuzione nel proprietario o dispositivo del profilo proprietario o un programma di installazione dei certificati delegato, possono completa le seguenti attività:
- Genera chiavi e certificati nell'hardware protetto (ad esempio un certificato
ambiente di esecuzione (TEE) o Secure Element (SE) del dispositivo Android. La
le chiavi generate non escono mai dall'hardware sicuro e possono essere utilizzate dal
KeyChain. Chiama
DevicePolicyManager.generateKeyPair()
che fornisce il dell'algoritmo (vediKeyPairGenerator
) e gli eventuali ID hardware che desideri che si voglia attestare, ad esempio il numero di serie o il codice IMEI. Per scoprire di più sulla sicurezza modifiche all'hardware, consulta la Guida per la sicurezza di Android 9 miglioramenti. - Associa un certificato a una chiave esistente generata dal dispositivo. Chiama
DevicePolicyManager.setKeyPairCertificate()
fornitura l'alias della chiave esistente e della catena di certificati, a partire dalla foglia certificato e includere la catena di attendibilità in ordine. - Prima di utilizzare la chiave, verifica che l'hardware sicuro protegga la chiave. Per verificare quali meccanismi proteggono la chiave, segui i passaggi descritti in Chiavi Attestazione.
- I proprietari del dispositivo e gli utenti che hanno eseguito l'installazione dei certificati delegati possono ricevere un
l'istruzione dei dispositivi ID hardware con versioni del sistema Android. Chiama
DevicePolicyManager.generateKeyPair()
ha superato uno o più diID_TYPE_BASE_INFO
,ID_TYPE_SERIAL
,ID_TYPE_IMEI
oID_TYPE_MEID
inidAttestationFlags
. Il certificato restituito include l'hardware ID nel record di attestazione. Se non vuoi che gli ID hardware siano inclusi, trasmetti0
. I proprietari di profili possono ricevere informazioni sul produttore soltantoID_TYPE_BASE_INFO
). Per verificare che il dispositivo possa attestare gli ID, chiamaisDeviceIdAttestationSupported()
- Impedisci agli utenti dei dispositivi di usare impropriamente le chiavi aziendali (nelle attività non aziendali)
rendendo non selezionabili i certificati della chiave. Il sistema non include
certificati non selezionabili nel riquadro del selettore. Nel tuo
DeviceAdminReceiver.onChoosePrivateKeyAlias()
di callback di Google, restituisci l'alias alla tua chiave aziendale in modo che seleziona automaticamente il certificato per conto dell'utente. Per creare una chiave non selezionabile, chiama i seguenti metodiDevicePolicyManager
:setKeyPairCertificate()
e passafalse
per l'argomentoisUserSelectable
.installKeyPair (ComponentName, PrivateKey, Certificate[], String, int)
e omettiINSTALLKEY_SET_USER_SELECTABLE
da dall'argomentoflags
.
Combinando queste API, le aziende possono identificare i dispositivi e confermare in modo sicuro la loro integrità prima di fornire l'accesso:
- Il dispositivo Android genera una nuova chiave privata nell'hardware sicuro. Poiché la chiave privata non esce mai dall'hardware protetto, rimane segreta.
- Il dispositivo utilizza la chiave per creare e inviare una richiesta di firma del certificato (CSR) al server. Il CSR include il record di attestazione contenente ID dispositivo.
- Il server convalida la catena di certificati (rooted a un certificato Google) ed estrae i metadati del dispositivo dal record di attestazione.
- Il server verifica che l'hardware sicuro protegga la chiave privata e che gli ID dispositivo corrispondano a quelli in possesso dell'azienda. Il server può inoltre verificare che il sistema Android e le versioni delle patch soddisfino eventuali requisiti.
- Il server genera un certificato dalla CSR e lo invia a del dispositivo.
- Il dispositivo accoppia il certificato alla chiave privata (che rimane nella hardware sicuro) che consente alle app di connettersi ai servizi aziendali.
Altre API, funzionalità e modifiche per la sicurezza
ID per i log di sicurezza e i log di rete
Android 9 include gli ID nei log di sicurezza e delle attività di rete. L'ID numerico aumenta monotonicamente per ogni evento, consentendo agli amministratori IT di individuare più facilmente lacune nei log. Poiché i log di sicurezza e i log di rete sono separati raccolte, il sistema mantiene valori ID separati.
Chiama il numero SecurityEvent.getId()
,
DnsEvent.getId()
oppure
ConnectEvent.getId()
per ottenere il valore dell'ID. Il sistema
reimposta l'ID ogni volta che un DPC abilita il logging o al riavvio del dispositivo.
Log di sicurezza recuperati tramite la chiamata
DevicePolicyManager.retrievePreRebootSecurityLogs()
non includono questi ID.
Logging di sicurezza
Il logging di sicurezza assegna un livello di log a ogni SecurityEvent
. Per ottenere il livello di log,
chiama getLogLevel()
. Questo metodo restituisce un valore a livello di log che
può essere LEVEL_INFO
, LEVEL_WARNING
o
LEVEL_ERROR
Android 9 registra gli eventi elencati nella tabella che segue nella sezione Sicurezza
log. Per controllare il tag di un evento, chiama getTag()
. A
recupera i dati sull'evento, chiama getData()
.
Tagga | Descrizione evento |
---|---|
TAG_CERT_AUTHORITY_INSTALLED |
Tentativo di installare un nuovo certificato radice nell'archivio credenziali del sistema. |
TAG_CERT_AUTHORITY_REMOVED |
Tentativo di rimuovere un certificato radice dall'archivio credenziali del sistema. |
TAG_CERT_VALIDATION_FAILURE |
Un certificato Wi-Fi non ha superato il controllo di convalida durante la connessione. |
TAG_CRYPTO_SELF_TEST_COMPLETED |
Il sistema ha completato la verifica automatica della crittografia. |
TAG_KEYGUARD_DISABLED_FEATURES_SET |
Un'app di amministrazione ha disattivato le funzionalità di una schermata di blocco di un dispositivo o di un profilo di lavoro. |
TAG_KEY_DESTRUCTION |
Tentativo di eliminare una chiave di crittografia. |
TAG_KEY_GENERATED |
Tentativo di generare una nuova chiave di crittografia. |
TAG_KEY_IMPORT |
Tentativo di importare una nuova chiave di crittografia. |
TAG_KEY_INTEGRITY_VIOLATION |
Android ha rilevato una crittografia o una chiave di autenticazione danneggiate. |
TAG_LOGGING_STARTED |
Registrazione del logging di sicurezza avviata. |
TAG_LOGGING_STOPPED |
La registrazione del logging di sicurezza è stata interrotta. |
TAG_LOG_BUFFER_SIZE_CRITICAL |
Il buffer dei log di sicurezza ha raggiunto il 90% della capacità. |
TAG_MAX_PASSWORD_ATTEMPTS_SET |
Un'app di amministrazione ha impostato il numero di tentativi consentiti di inserimento della password errata. |
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET |
Un'app di amministrazione ha impostato un timeout massimo per il blocco schermo. |
TAG_MEDIA_MOUNT |
Il supporto di archiviazione rimovibile montato sul dispositivo. |
TAG_MEDIA_UNMOUNT |
Il dispositivo di archiviazione rimovibile ha smontato. |
TAG_OS_SHUTDOWN |
Il sistema Android si è spento. |
TAG_OS_STARTUP |
Il sistema Android è stato avviato. |
TAG_PASSWORD_COMPLEXITY_SET |
Un'app amministratore imposta i requisiti di complessità delle password. |
TAG_PASSWORD_EXPIRATION_SET |
Un'app di amministrazione ha impostato una durata per la scadenza della password. |
TAG_PASSWORD_HISTORY_LENGTH_SET |
Un'app di amministrazione ha impostato una durata della cronologia delle password, impedendo agli utenti di riutilizzare vecchie password. |
TAG_REMOTE_LOCK |
Un'app di amministrazione ha bloccato il dispositivo o il profilo di lavoro. |
TAG_USER_RESTRICTION_ADDED |
Un'app di amministrazione ha impostato una limitazione per gli utenti. |
TAG_USER_RESTRICTION_REMOVED |
Un'app di amministrazione ha rimosso una limitazione per gli utenti. |
TAG_WIPE_FAILURE |
Tentativo di cancellare i dati di un dispositivo o di un profilo di lavoro non riuscito. |
Sfida schermata di blocco del profilo di lavoro
A partire da Android 9, i proprietari dei profili possono richiedere agli utenti di impostare un blocco separato
schermata per il profilo di lavoro utilizzando
Limitazione utente DISALLOW_UNIFIED_PASSWORD
. A
controllare se per un utente è stata impostata la stessa verifica della schermata di blocco per il dispositivo e
profilo di lavoro, chiamata
DevicePolicyManager.isUsingUnifiedPassword()
Se su un dispositivo è presente una schermata di blocco
per il profilo di lavoro separata,
DevicePolicyManager.setMaximumTimeToLock()
imposta solo un
timeout della schermata di blocco per il profilo di lavoro anziché per l'intero dispositivo.
Accesso agli strumenti per sviluppatori
Per mantenere i dati di lavoro nel profilo di lavoro, lo strumento Android Debug Bridge (adb) non possono accedere alle directory e ai file nel profilo di lavoro.
Supporto di altre opzioni biometriche
Android 9 offre un controllo granulare sull'autenticazione hardware biometrica in un
schermata di blocco del profilo di lavoro. Chiama l'istanza
DevicePolicyManager.setKeyguardDisabledFeatures()
con KEYGUARD_DISABLE_FACE
e
KEYGUARD_DISABLE_IRIS
Per disattivare tutti i metodi di autenticazione biometrica forniti dal dispositivo, aggiungi KEYGUARD_DISABLE_BIOMETRICS
.
Ritiro dei criteri di amministrazione dei dispositivi
Android 9 contrassegna i criteri elencati di seguito come deprecati per i DPC che utilizzano device Amministratore. I criteri continuano a funzionare su Android 9, come ha fatto in precedenza. A partire dalla release di Android 10, gli stessi criteri genereranno un'eccezione SecurityEccezioni quando richiamati da un amministratore del dispositivo.
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
Alcune applicazioni utilizzano l'amministrazione del dispositivo per l'amministrazione dei dispositivi consumer. Per ad esempio bloccare e cancellare i dati di un dispositivo smarrito. Le seguenti norme continueranno a essere applicate disponibili per abilitare questa funzione:
Per maggiori informazioni su queste modifiche, leggi Amministratore dispositivo il ritiro.
Registrazione semplificata del codice QR
Libreria QR integrata
Android 9 viene fornito in bundle con una libreria QR per semplificare il dispositivo con codice QR per eseguire il provisioning. Gli amministratori IT non devono più inserire manualmente i dettagli del Wi-Fi per la configurazione un dispositivo. Con Android 9 è invece possibile includere questi dettagli relativi al Wi-Fi. all'interno di un codice QR. Quando un amministratore IT scansiona il codice QR con un account di proprietà dell'azienda dispositivo, il dispositivo si connette automaticamente alla rete Wi-Fi ed inserisce il provisioning senza ulteriori input manuali.
Il metodo di provisioning del codice QR supporta le seguenti opzioni di provisioning aggiuntive per specificare i dettagli del Wi-Fi:
EXTRA_PROVISIONING_WIFI_HIDDEN
EXTRA_PROVISIONING_WIFI_PAC_URL
EXTRA_PROVISIONING_WIFI_PASSWORD
EXTRA_PROVISIONING_WIFI_PROXY_BYPASS
EXTRA_PROVISIONING_WIFI_PROXY_HOST
EXTRA_PROVISIONING_WIFI_PROXY_PORT
EXTRA_PROVISIONING_WIFI_SECURITY_TYPE
EXTRA_PROVISIONING_WIFI_SSID
Imposta data e fuso orario utilizzando i provisioning extra
Il metodo di provisioning del codice QR supporta il provisioning extra per impostare l'ora e fuso orario su un dispositivo:
Opzioni di cancellazione dei dati
Gli amministratori dei dispositivi possono mostrare un messaggio personalizzato agli utenti quando rimuovono un lavoro
profilo utente o utente secondario. Il messaggio aiuta gli utenti dei dispositivi a comprendere che
L'amministratore IT ha rimosso il profilo di lavoro o l'utente secondario. Chiama
wipeData(int, CharSequence)
e fornisci uno Short
esplicativo. Quando l'utente principale o il proprietario del dispositivo chiama, il sistema
non mostra alcun messaggio e avvia il ripristino dei dati di fabbrica del dispositivo.
Per rimuovere i dati dell'abbonamento da una SIM eUICC incorporata, chiama
wipeData()
e includi WIPE_EUICC
in flags
.
Metodi per i proprietari di profili affiliati
I seguenti metodi sono disponibili per il profilo affiliato proprietari:
DevicePolicyManager.setKeyguardDisabled()
DevicePolicyManager.setStatusBarDisabled()
PackageInstaller.createSession()