Halaman ini menyediakan ringkasan tentang enterprise API, fitur, dan perubahan perilaku yang tersedia di Android 9.
Antarmuka pengguna profil kerja
Android 9 (API level 28) menyertakan perubahan antarmuka pengguna di peluncur default untuk membantu pengguna memisahkan aplikasi pribadi dan kerja. Produsen perangkat yang mendukung hal ini dapat menampilkan aplikasi pengguna di tab kerja dan pribadi yang terpisah. Kami juga mempermudah pengguna perangkat untuk mengaktifkan dan menonaktifkan profil kerja dengan menyertakan tombol di tab kerja peluncur.
Saat menyediakan profil kerja dan perangkat terkelola, Android 9 menyertakan ilustrasi animasi untuk membantu pengguna perangkat memahami fitur-fitur ini.
Beralih aplikasi di seluruh profil
Android 9 menyertakan API untuk meluncurkan instance lain aplikasi di profil
yang berbeda untuk membantu pengguna beralih akun. Misalnya, aplikasi email dapat
menyediakan UI yang memungkinkan pengguna beralih antara profil pribadi dan profil
kerja untuk mengakses dua akun email. Semua aplikasi dapat memanggil API ini untuk meluncurkan
aktivitas utama aplikasi yang sama jika sudah diinstal di profil lain. Untuk
menambahkan peralihan akun antar-profil ke aplikasi Anda, ikuti langkah-langkah di bawah yang memanggil
metode
class CrossProfileApps
:
- Panggil
getTargetUserProfiles()
untuk mendapatkan daftar profil tempat Anda dapat meluncurkan instance lain aplikasi. Metode ini memeriksa apakah aplikasi telah diinstal di profil. - Panggil
getProfileSwitchingIconDrawable()
untuk mendapatkan ikon yang dapat Anda gunakan untuk merepresentasikan profil lain. - Panggil
getProfileSwitchingLabel()
untuk mendapatkan teks yang dilokalkan yang meminta pengguna untuk beralih profil. - Panggil
startMainActivity()
untuk meluncurkan instance aplikasi Anda di profil lain.
Pastikan aktivitas utama yang ingin Anda luncurkan dideklarasikan dalam file
manifes aplikasi, dengan tindakan intent ACTION_MAIN
, dan menyertakan
kategori intent CATEGORY_LAUNCHER
.
Mengaktifkan atau menonaktifkan profil kerja secara terprogram
Peluncur default (atau aplikasi yang memiliki izin MANAGE_USERS
atau
MODIFY_QUIET_MODE
) dapat mengaktifkan atau menonaktifkan profil kerja dengan memanggil
UserManager.requestQuietModeEnabled()
. Anda dapat
memeriksa nilai yang ditampilkan untuk mengetahui apakah pengguna perlu mengonfirmasi
kredensial mereka sebelum status berubah. Karena perubahan mungkin tidak terjadi
secara instan, proses siaran
ACTION_MANAGED_PROFILE_AVAILABLE
atau
ACTION_MANAGED_PROFILE_UNAVAILABLE
untuk mengetahui kapan harus mengupdate antarmuka pengguna.
Aplikasi Anda dapat memeriksa status profil kerja dengan memanggil
UserManager.isQuietModeEnabled()
.
Mengunci aplikasi apa pun ke perangkat
Mulai Android 9, pemilik perangkat dan pemilik profil (dari pengguna sekunder) dapat mengunci aplikasi apa pun ke layar perangkat dengan menyetel aplikasi ke mode mengunci tugas. Sebelumnya, developer aplikasi harus menambahkan dukungan untuk mode mengunci tugas di aplikasi mereka. Android 9 juga memperluas API tugas kunci ke pemilik profil pengguna sekunder yang tidak terafiliasi. Ikuti langkah-langkah di bawah untuk mengunci aplikasi ke layar:
- Panggil
DevicePolicyManager.setLockTaskPackages()
agar dapat memasukkan aplikasi ke daftar yang diizinkan untuk mode mengunci tugas. - Panggil
ActivityOptions.setLockTaskEnabled()
untuk meluncurkan aplikasi yang diizinkan ke mode mengunci tugas.
Untuk menghentikan aplikasi dalam mode mengunci tugas, hapus aplikasi dari daftar yang diizinkan
mode kunci tugas menggunakan
DevicePolicyManager.setLockTaskPackages()
.
Mengaktifkan fitur UI sistem
Saat mode kunci tugas diaktifkan, pemilik perangkat dan pemilik profil dapat mengaktifkan
fitur UI sistem tertentu di perangkat dengan memanggil
DevicePolicyManager.setLockTaskFeatures()
dan meneruskan
kolom bit tombol fitur berikut:
LOCK_TASK_FEATURE_NONE
LOCK_TASK_FEATURE_SYSTEM_INFO
LOCK_TASK_FEATURE_HOME
LOCK_TASK_FEATURE_NOTIFICATIONS
hanya dapat digunakan bersamaLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_KEYGUARD
LOCK_TASK_FEATURE_OVERVIEW
hanya dapat digunakan bersamaLOCK_TASK_FEATURE_HOME
.LOCK_TASK_FEATURE_GLOBAL_ACTIONS
Anda dapat memanggil DevicePolicyManager.getLockTaskFeatures()
untuk mendapatkan daftar fitur yang tersedia di perangkat saat mode kunci tugas
diaktifkan. Saat keluar dari mode mengunci tugas, perangkat akan kembali ke status yang dimandatkan oleh
kebijakan perangkat lainnya.
Sembunyikan dialog error
Di beberapa lingkungan, seperti demonstrasi retail atau tampilan informasi
publik, Anda mungkin tidak ingin menampilkan dialog error kepada pengguna. Pengontrol kebijakan
perangkat (DPC) dapat menyembunyikan dialog error sistem untuk aplikasi yang error atau tidak responsif
dengan menambahkan
pembatasan pengguna
DISALLOW_SYSTEM_ERROR_DIALOGS
. Batasan ini memengaruhi semua dialog jika diterapkan oleh pemilik perangkat,
tetapi hanya dialog error yang ditampilkan pada pengguna utama atau sekunder yang akan disembunyikan
saat pembatasan diterapkan oleh pemilik profil. Batasan ini tidak
memengaruhi profil kerja.
Di Android 9, aplikasi yang berjalan dalam mode layar penuh yang imersif tidak menampilkan balon pengingat saat dalam mode mengunci tugas. Balon pengingat adalah panel yang ditampilkan kepada pengguna (saat peluncuran pertama) yang menjelaskan cara keluar dari mode imersif.
Mendukung banyak pengguna pada perangkat khusus
Android 9 memperkenalkan konsep pengguna efemeral untuk perangkat khusus (sebelumnya disebut perangkat COSU). Pengguna ephemeral adalah pengguna jangka pendek yang dimaksudkan untuk kasus-kasus saat beberapa pengguna berbagi satu perangkat khusus. Hal ini mencakup sesi pengguna publik di perangkat seperti kios check in perpustakaan atau perhotelan, serta sesi persisten di antara sekumpulan pengguna tetap di perangkat, misalnya, pekerja shift.
Pengguna efemeral harus dibuat di latar belakang. Pengguna dibuat sebagai pengguna sekunder di perangkat dan dihapus (beserta aplikasi dan data terkait) saat dihentikan, dialihkan, atau perangkat dimulai ulang. Untuk membuat pengguna singkat, pemilik perangkat dapat:
- Tetapkan flag
MAKE_USER_EPHEMERAL
saat memanggilDevicePolicyManager.createAndManageUser()
. - Panggil
DevicePolicyManager.startUserInBackground()
untuk memulai pengguna singkat di latar belakang.
Perhatikan bahwa aplikasi yang menargetkan Android 9 harus menangkap
UserManager.UserOperationException
saat memanggil
createAndManageUser()
. Panggil metode
getUserOperationResult()
pengecualian untuk mengetahui alasan
pengguna tidak dibuat.
Menerima notifikasi peristiwa
DeviceAdminReceiver
menerima notifikasi untuk
peristiwa berikut:
onUserStarted()
: Dipanggil saat pengguna memulai.onUserSwitched()
: Dipanggil saat pengalihan pengguna selesai.onUserStopped()
: Dipanggil bersama denganonUserRemoved()
saat pengguna berhenti atau logout.
Menampilkan pesan peristiwa kepada pengguna
Pemilik perangkat dapat mengonfigurasi pesan yang ditampilkan kepada pengguna saat mereka memulai dan mengakhiri sesi:
- Gunakan
DevicePolicyManager.setStartUserSessionMessage()
untuk menetapkan pesan yang ditampilkan kepada pengguna saat sesi pengguna dimulai. Untuk mengambil pesan, panggilDevicePolicyManager.getStartUserSessionMessage()
. - Gunakan
DevicePolicyManager.setEndUserSessionMessage()
untuk menetapkan pesan yang ditampilkan kepada pengguna saat sesi pengguna berakhir. Untuk mengambil pesan, panggilDevicePolicyManager.getEndUserSessionMessage()
.
Logout dan menghentikan pengguna
Pemilik perangkat dapat menggunakan
DevicePolicyManager.setLogoutEnabled()
untuk menentukan apakah
logout diaktifkan untuk pengguna sekunder. Untuk memeriksa apakah logout diaktifkan, panggil
DevicePolicyManager.isLogoutEnabled()
.
Pemilik profil pengguna sekunder dapat memanggil
DevicePolicyManager.logoutUser()
untuk menghentikan pengguna sekunder dan
beralih kembali ke pengguna utama.
Pemilik perangkat dapat menggunakan DevicePolicyManager.stopUser()
untuk menghentikan
pengguna sekunder yang ditentukan.
Penyimpanan paket dalam cache
Untuk menyederhanakan penyediaan pengguna di perangkat bersama dengan sekumpulan pengguna tetap, seperti perangkat untuk pekerja shift, Anda dapat meng-cache paket yang diperlukan untuk sesi multi-pengguna:
Panggil
DevicePolicyManager.setKeepUninstalledPackages()
untuk menentukan daftar paket yang akan disimpan sebagai APK. Untuk mengambil daftar paket ini, panggilDevicePolicyManager.getKeepUninstalledPackages()
.Panggil
DevicePolicyManager.installExistingPackage()
untuk menginstal paket yang telah disimpan setelah dihapus melaluisetKeepUninstalledPackages()
.
Metode dan konstanta tambahan
Android 9 juga menyertakan metode dan konstanta berikut untuk mendukung lebih lanjut sesi pengguna di perangkat bersama:
DevicePolicyManager.getSecondaryUsers()
mendapatkan daftar semua pengguna sekunder di perangkat.DISALLOW_USER_SWITCH
adalah pembatasan pengguna yang dapat Anda aktifkan dengan memanggilDevicePolicyManager.addUserRestriction()
untuk memblokir peralihan pengguna.LEAVE_ALL_SYSTEM_APPS_ENABLED
adalah flag yang tersedia untukDevicePolicyManager.createAndManageUser()
. Jika disetel, aplikasi sistem tidak akan dinonaktifkan selama penyediaan pengguna.UserManager.UserOperationException
ditampilkan olehDevicePolicyManager.createAndManageUser()
jika pengguna tidak dapat dibuat—pengecualian berisi alasan kegagalan.
Hapus data paket dan hapus akun
Pemilik perangkat dan pemilik profil dapat memanggil
clearApplicationUserData()
untuk menghapus data pengguna
untuk paket tertentu. Untuk menghapus akun dari
AccountManager
, pemilik perangkat dan profil dapat memanggil
removeAccount()
.
Pembatasan pengguna dan peningkatan kontrol atas setelan
Android 9 memperkenalkan serangkaian batasan pengguna untuk DPC, serta kemampuan untuk mengonfigurasi APNs, waktu dan zona waktu, serta setelan sistem di perangkat.
Mengonfigurasi APN
Pemilik perangkat dapat menggunakan metode berikut di class DevicePolicyManager
untuk mengonfigurasi APNs di perangkat:
addOverrideApn()
updateOverrideApn()
removeOverrideApn()
getOverrideApns()
setOverrideApnEnabled()
isOverrideApnEnabled()
Mengonfigurasi waktu dan zona waktu
Pemilik perangkat dapat menggunakan metode berikut di
class DevicePolicyManager
untuk menyetel waktu dan zona waktu
di perangkat:
Terapkan batasan pengguna pada setelan penting
Android 9 menambahkan pembatasan pengguna untuk menonaktifkan setelan dan fitur sistem. Untuk
menambahkan batasan, panggil
DevicePolicyManager.addUserRestriction()
dengan salah satu
konstanta UserManager
berikut:
DISALLOW_AIRPLANE_MODE
DISALLOW_AMBIENT_DISPLAY
DISALLOW_CONFIG_BRIGHTNESS
DISALLOW_CONFIG_DATE_TIME
DISALLOW_CONFIG_LOCATION
DISALLOW_CONFIG_SCREEN_TIMEOUT
DISALLOW_PRINTING
Jika DISALLOW_CONFIG_BRIGHTNESS
dan
DISALLOW_CONFIG_SCREEN_TIMEOUT
diterapkan
di perangkat, pemilik perangkat masih dapat menyetel setelan kecerahan
layar, mode
kecerahan layar, dan waktu tunggu layar
di perangkat menggunakan API
DevicePolicyManager.setSystemSetting()
.
Data berkuota
Pemilik perangkat dan pemilik profil dapat mencegah aplikasi menggunakan jaringan
data berbayar perangkat. Jaringan dianggap berbayar jika pengguna sensitif terhadap
penggunaan data yang berat karena biaya, batas data, atau masalah baterai dan
performa. Untuk mencegah aplikasi menggunakan jaringan berkuota, panggil
DevicePolicyManager.setMeteredDataDisabledPackages()
yang meneruskan daftar nama paket. Untuk mengambil aplikasi yang saat ini dibatasi, panggil
DevicePolicyManager.getMeteredDataDisabledPackages()
.
Untuk mempelajari lebih lanjut data berbayar di Android, baca Mengoptimalkan Penggunaan Data Jaringan.
Memigrasikan DPC
Pengontrol kebijakan perangkat (DPC) dapat mentransfer kepemilikan mereka atas perangkat atau profil kerja ke DPC lain. Anda dapat mentransfer kepemilikan untuk memindahkan beberapa fitur ke Android Management API, untuk memigrasikan perangkat dari DPC lama, atau membantu admin IT bermigrasi ke EMM. Karena Anda baru saja mengubah kepemilikan DPC, Anda tidak dapat menggunakan fitur ini untuk mengubah jenis pengelolaan, misalnya, bermigrasi dari perangkat terkelola ke profil kerja atau sebaliknya.
Anda dapat menggunakan resource XML kebijakan admin perangkat untuk
menunjukkan bahwa versi DPC ini mendukung migrasi. DPC target
menunjukkan bahwa ia dapat menerima kepemilikan dengan menyertakan elemen bernama
<support-transfer-ownership>
. Contoh di bawah menunjukkan cara melakukannya di
file XML admin perangkat 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>
DPC yang ingin memigrasikan kepemilikan ke aplikasi DPC baru dapat memeriksa apakah versi DPC
target mendukung migrasi dengan memanggil metode DeviceAdminInfo
supportsTransferOwnership()
. Sebelum mentransfer
kepemilikan, DPC sumber bertanggung jawab untuk memverifikasi DPC target dengan
membandingkan tanda tangan aplikasi. Class PackageManager
menyertakan
metode untuk menangani tanda tangan kode.
Android mempertahankan sistem DPC sumber dan kebijakan pengguna melalui transfer
kepemilikan—DPC tidak perlu memigrasikannya. DPC sumber dapat meneruskan data kustom ke
DPC target menggunakan key-value pair di PersistableBundle
. Setelah
transfer berhasil, DPC target dapat mengambil data ini dengan memanggil
DevicePolicyManager.getTransferOwnershipBundle()
.
Langkah-langkah untuk mentransfer kepemilikan perangkat terkelola atau profil kerja sama:
- DPC sumber memeriksa apakah versi DPC target mendukung migrasi dan mengonfirmasi bahwa tanda tangan aplikasi DPC target cocok dengan nilai yang diharapkan.
- DPC sumber memanggil
transferOwnership()
untuk memulai transfer. - Sistem menjadikan DPC target sebagai admin aktif dan menetapkannya sebagai pemilik perangkat terkelola atau profil kerja.
- DPC target menerima callback
onTransferOwnershipComplete()
dan dapat mengonfigurasi sendiri menggunakan nilai dari argumenbundle
. - Jika terjadi masalah dengan transfer, sistem akan mengembalikan kepemilikan ke
DPC sumber. Jika DPC sumber perlu mengonfirmasi bahwa transfer kepemilikan
berhasil, panggil
isAdminActive()
untuk memeriksa bahwa DPC sumber tidak lagi menjadi admin aktif.
Semua aplikasi yang berjalan di profil kerja menerima
siaran ACTION_PROFILE_OWNER_CHANGED
saat
pemilik profil berubah. Aplikasi yang berjalan di perangkat terkelola menerima siaran
ACTION_DEVICE_OWNER_CHANGED
saat
pemilik perangkat berubah.
Profil kerja di perangkat yang terkelola sepenuhnya
Mentransfer dua instance DPC yang berjalan sebagai pemilik perangkat dan pemilik profil terjadi dalam dua tahap. Jika profil pribadi dan profil kerja terafiliasi, selesaikan transfer dalam urutan berikut:
- Pertama, transfer kepemilikan profil kerja.
- Tunggu callback
DeviceAdminReceiver
onTransferAffiliatedProfileOwnershipComplete()
untuk mengonfirmasi bahwa profil kerja telah ditransfer ke DPC target. - Terakhir, transfer kepemilikan perangkat terkelola ke DPC target.
Menunda update over the air (OTA)
Pemilik perangkat dapat menunda update sistem OTA ke perangkat hingga 90 hari untuk membekukan versi OS yang berjalan di perangkat tersebut selama periode penting (seperti hari libur). Sistem akan menerapkan buffering wajib 60 hari setelah periode pembekuan yang ditentukan untuk mencegah pembekuan perangkat tanpa batas waktu.
Selama masa pembekuan:
- Perangkat tidak menerima notifikasi apa pun tentang update OTA yang tertunda.
- Perangkat tidak menginstal update OTA ke OS.
- Pengguna perangkat tidak dapat memeriksa update OTA secara manual di Settings.
Untuk menetapkan periode pembekuan, panggil
SystemUpdatePolicy.setFreezePeriods()
. Karena masa pembekuan
berulang setiap tahun, tanggal mulai dan akhir periode tersebut diwakili
dengan bilangan bulat yang menghitung jumlah hari sejak awal tahun. Hari mulai harus
dimulai setidaknya 60 hari setelah akhir periode pembekuan sebelumnya. Pemilik
perangkat dapat memanggil SystemUpdatePolicy.getFreezePeriods()
untuk
mendapatkan daftar periode pembekuan yang sebelumnya ditetapkan di objek kebijakan update sistem.
DevicePolicyManager.getSystemUpdatePolicy()
telah
diupdate untuk menampilkan periode pembekuan yang ditetapkan oleh pemilik perangkat.
Membatasi fitur berbagi di profil kerja
Pemilik profil dapat mencegah pengguna membagikan data pribadi ke profil kerja
di perangkat dengan menambahkan batasan pengguna
DISALLOW_SHARE_INTO_MANAGED_PROFILE
.
Pembatasan ini mencegah berbagi dan penanganan intent berikut:
- Aplikasi profil pribadi yang berbagi data dan file dengan aplikasi profil kerja.
- Aplikasi profil kerja yang memilih item dari profil pribadi—misalnya, gambar atau file.
Setelah menetapkan pembatasan ini, DPC masih dapat mengizinkan intent Aktivitas
lintas-profil dengan memanggil
addCrossProfileIntentFilter()
.
Sertifikat mesin dan kunci dengan pengamanan hardware
Android 9 menambahkan API untuk membantu Anda menggunakan kunci dan sertifikat yang dapat digabungkan untuk mengidentifikasi perangkat dengan aman. DPC yang berjalan dalam mode pemilik profil atau pemilik perangkat, atau penginstal sertifikat yang didelegasikan, dapat menyelesaikan tugas-tugas berikut:
- Buat kunci dan sertifikat di hardware aman (seperti trusted
execution environment (TEE) atau Secure Element (SE)) perangkat Android. Kunci
yang dihasilkan tidak pernah meninggalkan hardware aman dan dapat digunakan dari Android
KeyChain. Panggil
DevicePolicyManager.generateKeyPair()
yang memberikan algoritma (lihatKeyPairGenerator
) dan semua ID hardware yang ingin Anda buktikan, seperti nomor seri atau IMEI. Untuk mempelajari perubahan hardware yang aman lebih lanjut, lihat Peningkatan Keamanan Android 9. - Mengaitkan sertifikat dengan kunci yang dihasilkan perangkat yang ada. Panggil
DevicePolicyManager.setKeyPairCertificate()
dengan memberikan alias kunci yang ada dan rantai sertifikat—dimulai dengan leaf certificate dan menyertakan rantai kepercayaan secara berurutan. - Pastikan hardware aman melindungi kunci sebelum menggunakannya. Untuk memeriksa mekanisme mana yang melindungi kunci, ikuti langkah-langkah dalam Pengesahan Kunci.
- Pemilik perangkat dan penginstal sertifikat yang didelegasikan dapat menerima
pernyataan bertanda tangan dari ID hardware perangkat dengan versi sistem Android. Panggilan
DevicePolicyManager.generateKeyPair()
dengan meneruskan satu atau beberapaID_TYPE_BASE_INFO
,ID_TYPE_SERIAL
,ID_TYPE_IMEI
, atauID_TYPE_MEID
dalam argumenidAttestationFlags
. Sertifikat yang ditampilkan menyertakan ID hardware dalam data pengesahan. Jika Anda tidak ingin ID hardware disertakan, teruskan0
. Pemilik profil hanya dapat menerima informasi produsen (dengan meneruskanID_TYPE_BASE_INFO
). Untuk memeriksa apakah perangkat dapat mengesahkan ID, panggilisDeviceIdAttestationSupported()
. - Cegah pengguna perangkat menyalahgunakan kunci perusahaan (dalam tugas non-perusahaan)
dengan menjadikan sertifikat kunci tidak dapat dipilih. Sistem tidak menyertakan
sertifikat yang tidak dapat dipilih di panel pemilih. Dalam metode callback
DeviceAdminReceiver.onChoosePrivateKeyAlias()
, tampilkan alias ke kunci perusahaan Anda sehingga sistem secara otomatis memilih sertifikat atas nama pengguna. Agar kunci tidak dapat dipilih, panggil metodeDevicePolicyManager
berikut:setKeyPairCertificate()
dan teruskanfalse
untuk argumenisUserSelectable
.installKeyPair (ComponentName, PrivateKey, Certificate[], String, int)
dan hilangkanINSTALLKEY_SET_USER_SELECTABLE
dari argumenflags
.
Dengan menggabungkan API ini, perusahaan dapat dengan aman mengidentifikasi perangkat dan mengonfirmasi integritasnya sebelum memberikan akses:
- Perangkat Android membuat kunci pribadi baru di hardware aman. Karena kunci privat tidak pernah meninggalkan hardware aman, maka akan tetap rahasia.
- Perangkat menggunakan kunci tersebut untuk membuat dan mengirim permintaan penandatanganan sertifikat (CSR) ke server. CSR menyertakan data pengesahan yang berisi ID perangkat.
- Server memvalidasi rantai sertifikat (di-root ke sertifikat Google) dan mengekstrak metadata perangkat dari data pengesahan.
- Server mengonfirmasi bahwa hardware aman melindungi kunci pribadi dan bahwa ID perangkat cocok dengan data perusahaan. Server juga dapat memeriksa apakah sistem Android dan versi patch memenuhi persyaratan.
- Server menghasilkan sertifikat dari CSR dan mengirim sertifikat tersebut ke perangkat.
- Perangkat menyambungkan sertifikat dengan kunci pribadi (yang tetap berada di hardware aman) sehingga aplikasi dapat terhubung ke layanan perusahaan.
API keamanan, fitur, dan perubahan lainnya
ID untuk log keamanan dan log jaringan
Android 9 menyertakan ID dalam log keamanan dan aktivitas jaringan. ID numerik akan meningkat secara monoton untuk setiap peristiwa, sehingga memudahkan admin IT untuk menemukan kesenjangan dalam log mereka. Karena log keamanan dan log jaringan adalah koleksi terpisah, sistem mempertahankan nilai ID yang terpisah.
Panggil SecurityEvent.getId()
,
DnsEvent.getId()
, atau
ConnectEvent.getId()
untuk mendapatkan nilai ID. Sistem
mereset ID setiap kali DPC mengaktifkan logging atau saat perangkat dimulai ulang.
Log keamanan yang diambil dengan memanggil DevicePolicyManager.retrievePreRebootSecurityLogs()
tidak menyertakan ID ini.
Logging keamanan
Logging keamanan menetapkan level log untuk setiap SecurityEvent
. Untuk mendapatkan level log,
panggil getLogLevel()
. Metode ini menampilkan nilai level log yang
dapat berupa salah satu dari: LEVEL_INFO
, LEVEL_WARNING
, atau
LEVEL_ERROR
.
Android 9 mencatat peristiwa yang tercantum dalam tabel di bawah ini ke dalam log keamanan. Untuk memeriksa tag peristiwa, panggil getTag()
. Untuk
mengambil data peristiwa, panggil getData()
.
Tag | Deskripsi acara |
---|---|
TAG_CERT_AUTHORITY_INSTALLED |
Percobaan untuk menginstal root certificate baru ke dalam penyimpanan kredensial sistem. |
TAG_CERT_AUTHORITY_REMOVED |
Upaya untuk menghapus root certificate dari penyimpanan kredensial sistem. |
TAG_CERT_VALIDATION_FAILURE |
Pemeriksaan validasi sertifikat Wi-Fi gagal selama koneksi berlangsung. |
TAG_CRYPTO_SELF_TEST_COMPLETED |
Sistem telah menyelesaikan pengujian mandiri kriptografi. |
TAG_KEYGUARD_DISABLED_FEATURES_SET |
Aplikasi admin menonaktifkan fitur perangkat atau layar kunci profil kerja. |
TAG_KEY_DESTRUCTION |
Upaya untuk menghapus kunci kriptografis. |
TAG_KEY_GENERATED |
Upaya untuk membuat kunci kriptografis baru. |
TAG_KEY_IMPORT |
Upaya mengimpor kunci kriptografis baru. |
TAG_KEY_INTEGRITY_VIOLATION |
Android mendeteksi kunci autentikasi atau enkripsi yang rusak. |
TAG_LOGGING_STARTED |
Logging keamanan mulai merekam. |
TAG_LOGGING_STOPPED |
Logging keamanan berhenti merekam. |
TAG_LOG_BUFFER_SIZE_CRITICAL |
Buffering log keamanan telah mencapai 90% dari kapasitasnya. |
TAG_MAX_PASSWORD_ATTEMPTS_SET |
Aplikasi admin menetapkan jumlah upaya memasukkan sandi salah yang diizinkan. |
TAG_MAX_SCREEN_LOCK_TIMEOUT_SET |
Aplikasi admin menyetel waktu tunggu kunci layar maksimum. |
TAG_MEDIA_MOUNT |
Perangkat memasang media penyimpanan yang dapat dilepas. |
TAG_MEDIA_UNMOUNT |
Perangkat melepas media penyimpanan yang dapat dilepas. |
TAG_OS_SHUTDOWN |
Sistem Android dimatikan. |
TAG_OS_STARTUP |
Sistem Android dimulai. |
TAG_PASSWORD_COMPLEXITY_SET |
Aplikasi admin menetapkan persyaratan kompleksitas sandi. |
TAG_PASSWORD_EXPIRATION_SET |
Aplikasi admin menyetel durasi masa berlaku sandi. |
TAG_PASSWORD_HISTORY_LENGTH_SET |
Aplikasi admin menetapkan panjang histori sandi, sehingga mencegah pengguna menggunakan lagi sandi lama. |
TAG_REMOTE_LOCK |
Aplikasi admin mengunci perangkat atau profil kerja. |
TAG_USER_RESTRICTION_ADDED |
Aplikasi admin menetapkan batasan pengguna. |
TAG_USER_RESTRICTION_REMOVED |
Aplikasi admin menghapus pembatasan pengguna. |
TAG_WIPE_FAILURE |
Upaya menghapus total perangkat atau profil kerja gagal. |
Tantangan layar kunci profil kerja
Mulai Android 9, pemilik profil dapat mewajibkan pengguna menyetel tantangan layar kunci
terpisah untuk profil kerja mereka menggunakan pembatasan pengguna
DISALLOW_UNIFIED_PASSWORD
. Untuk
memeriksa apakah pengguna telah menetapkan tantangan layar kunci yang sama untuk perangkat dan
profil kerja mereka, panggil
DevicePolicyManager.isUsingUnifiedPassword()
.
Jika perangkat memiliki layar kunci profil kerja terpisah,
DevicePolicyManager.setMaximumTimeToLock()
hanya menetapkan
waktu tunggu layar kunci untuk profil kerja, bukan untuk seluruh perangkat.
Akses alat developer
Untuk membantu menyimpan data kerja dalam profil kerja, alat Android Debug Bridge (adb) tidak dapat mengakses direktori dan file di profil kerja.
Dukungan untuk opsi biometrik lainnya
Android 9 menambahkan kontrol mendetail atas autentikasi hardware biometrik di
layar kunci profil kerja. Panggil metode
DevicePolicyManager.setKeyguardDisabledFeatures()
yang ada dengan KEYGUARD_DISABLE_FACE
dan
KEYGUARD_DISABLE_IRIS
.
Untuk menonaktifkan semua metode autentikasi biometrik yang disediakan oleh perangkat, tambahkan KEYGUARD_DISABLE_BIOMETRICS
.
Penghentian kebijakan admin perangkat
Android 9 menandai kebijakan yang tercantum di bawah ini sebagai tidak digunakan lagi untuk DPC yang menggunakan admin perangkat. Kebijakan tersebut terus berfungsi di Android 9 seperti sebelumnya. Mulai rilis Android 10, kebijakan yang sama akan menampilkan SecurityException saat dipanggil oleh admin perangkat.
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
Beberapa aplikasi menggunakan administrator perangkat untuk administrasi perangkat konsumen. Misalnya, mengunci dan menghapus total perangkat yang hilang. Kebijakan berikut akan tetap tersedia untuk memungkinkan hal ini:
Untuk mengetahui informasi selengkapnya tentang perubahan ini, baca Penghentian admin perangkat.
Pendaftaran kode QR yang disederhanakan
Koleksi QR bawaan
Android 9 dilengkapi dengan library QR untuk menyederhanakan penyediaan perangkat kode QR. Admin IT tidak perlu lagi memasukkan detail Wi-Fi secara manual untuk menyiapkan perangkat. Sebagai gantinya, dengan Android 9, Anda dapat menyertakan detail Wi-Fi ini dalam kode QR. Saat admin IT memindai kode QR dengan perangkat milik perusahaan, perangkat tersebut akan otomatis terhubung ke Wi-Fi dan memasuki proses penyediaan tanpa input manual tambahan.
Metode penyediaan kode QR mendukung tambahan penyediaan berikut untuk menentukan detail 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
Menyetel tanggal dan zona waktu menggunakan tambahan penyediaan
Metode penyediaan kode QR mendukung tambahan penyediaan untuk menyetel waktu dan zona waktu di perangkat:
Opsi menghapus total data
Admin perangkat dapat menampilkan pesan yang dipersonalisasi kepada pengguna saat menghapus profil
kerja atau pengguna sekunder. Pesan ini membantu pengguna perangkat memahami bahwa
admin IT mereka telah menghapus profil kerja atau pengguna sekunder. Panggil
wipeData(int, CharSequence)
dan berikan
pesan penjelasan singkat. Saat dipanggil oleh pengguna utama atau pemilik perangkat, sistem
tidak akan menampilkan pesan dan memulai reset ke setelan pabrik.
Untuk menghapus data langganan dari SIM eUICC tersemat, panggil
wipeData()
dan sertakan WIPE_EUICC
dalam argumen
flags
.
Metode untuk pemilik profil terafiliasi
Metode berikut tersedia untuk pemilik profil terafiliasi:
DevicePolicyManager.setKeyguardDisabled()
DevicePolicyManager.setStatusBarDisabled()
PackageInstaller.createSession()