Yang baru di Android 8.0

Halaman ini menyediakan ringkasan tentang API, fitur, dan perubahan perilaku baru yang diperkenalkan di Android 8.0 (API level 26) yang memengaruhi Android di lingkungan perusahaan.

API dan fitur baru

Kami telah membuat mode pengelolaan pemilik profil dan pemilik perangkat menjadi lebih canggih, produktif, dan lebih mudah disediakan daripada sebelumnya. Kami juga telah mengaktifkan skenario deployment yang benar-benar baru—profil kerja pada perangkat yang terkelola sepenuhnya. Fitur ini dan fitur lainnya dijelaskan di bagian berikut.

Profil kerja di perangkat yang terkelola sepenuhnya

Di Android 8.0, perangkat yang terkelola sepenuhnya juga dapat memiliki profil kerja. Hal ini memberi perusahaan kemampuan untuk memisahkan aplikasi dan kebijakan sekaligus mempertahankan kontrol dan visibilitas di kedua profil. Pemilik perangkat yang sudah ada, atau pengontrol kebijakan perangkat (DPC) lain, dapat membuat profil terkelola.

Dengan profil kerja di perangkat terkelola sepenuhnya, pemilik perangkat dapat:

Pemilik perangkat dan pemilik profil dapat saling berkomunikasi jika mereka berasal dari APK yang sama dan pemilik berafiliasi (lihat Afiliasi pengguna di bawah).

Untuk informasi yang lebih mendetail tentang mendukung skenario deployment baru ini, lihat halaman khusus untuk profil kerja pada perangkat yang terkelola sepenuhnya.

Afiliasi pengguna

Jika pemilik perangkat dan pemilik profil mewakili organisasi yang sama:

  • Pemilik perangkat dan profil dapat saling berkomunikasi dalam APK yang sama—mereka mungkin ingin berbagi kebijakan atau status (lihat Profil kerja di perangkat yang terkelola sepenuhnya di atas).

  • Fitur seluruh perangkat, seperti logging atau pemberian izin mode mengunci tugas, dapat berlaku untuk pengguna terafiliasi.

ID Afiliasi, yang dilampirkan ke profil atau pengguna, mengidentifikasi organisasi. Jika ID afiliasi cocok, pengguna akan berafiliasi. Pemilik perangkat dan pemilik profil menggunakan setAffiliationIds() untuk menetapkan ID afiliasi mereka. Merepresentasikan organisasi menggunakan ID string yang panjang dan sulit ditebak.

Akses baru bagi pengguna terafiliasi

Jika semua profil dan pengguna sekunder di perangkat berafiliasi dengan pemilik perangkat, fitur berikut akan tersedia:

Logging keamanan dan pelaporan bug sebelumnya hanya tersedia untuk perangkat satu pengguna, atau perangkat yang hanya memiliki satu profil dan satu pengguna.

Mode mengunci tugas tersedia untuk pengguna sekunder dan profil terkelola saat berafiliasi dengan pemilik perangkat melalui setLockTaskPackages(). Untuk informasi lebih mendetail tentang afiliasi pengguna, lihat Pengguna terafiliasi.

Pernyataan penyangkalan penyediaan yang disesuaikan

DPC kini dapat menampilkan pernyataan penyangkalannya sendiri kepada pengguna selama penyediaan. Gunakan EXTRA_PROVISIONING_DISCLAIMERS, EXTRA_PROVISIONING_DISCLAIMER_HEADER, dan EXTRA_PROVISIONING_DISCLAIMER_CONTENT untuk memberikan pernyataan penyangkalan teks bergaya. Penafian kustom DPC muncul di daftar Persyaratan yang dapat diciutkan.

Keamanan

Pemilik profil dan pemilik perangkat dapat menggunakan setRequiredStrongAuthTimeout() untuk mengonfigurasi periode waktu tunggu untuk membuka kunci perangkat atau profil dengan metode autentikasi sekunder, seperti sidik jari atau perangkat dipercaya. Setelah periode waktu tunggu berakhir, pengguna harus membuka kunci perangkat atau profil menggunakan metode autentikasi yang kuat, seperti sandi, PIN, atau pola.

Pemilik perangkat dan pemilik profil dapat mereset sandi perangkat dan profil kerja dengan aman menggunakan resetPasswordWithToken(). Untuk perangkat yang mendukung enkripsi berbasis file, API ini tersedia sebelum pengguna membuka kunci perangkat atau profil, asalkan DPC mendukung enkripsi.

Saat mengunci profil kerja di perangkat yang mendukung enkripsi berbasis file, lockNow(int) dapat secara opsional menghapus kunci enkripsi utama profil kerja menggunakan FLAG_EVICT_CREDENTIAL_ENCRYPTION_KEY. Kunci enkripsi juga akan dikeluarkan jika pengguna menonaktifkan profil kerjanya.

Selain itu, pemilik perangkat dapat menggunakan setNetworkLoggingEnabled() untuk mengaktifkan logging jaringan kueri DNS dan koneksi TCP yang dimulai dari perangkat milik perusahaan. Untuk informasi selengkapnya, lihat Logging Aktivitas Jaringan.

Pemilik profil dapat membatasi paket pengguna utama mana yang dapat mengamati notifikasi profil kerja. Panggil setPermittedCrossProfileNotificationListeners() untuk menetapkan paket yang diizinkan yang menerima peristiwa melalui NotificationListenerService. Menetapkan pemroses yang diizinkan ke null (default) akan menonaktifkan pemberian izin dan semua paket dapat memproses notifikasi. Untuk membatasi peristiwa ke paket sistem, teruskan Set kosong. Untuk melihat aplikasi yang tidak dapat mengakses notifikasi profil kerja, pengguna dapat mengetuk Setelan > Aplikasi & notifikasi > Akses aplikasi khusus > Akses notifikasi.

Terakhir, pemilik profil dan pemilik perangkat dapat mengambil informasi tentang update sistem tertunda yang tersedia di perangkat menggunakan getPendingSystemUpdate().

Delegasi API pengelolaan aplikasi

Delegasi API memungkinkan pemilik perangkat dan pemilik profil mengalihkan pengelolaan aplikasi sepenuhnya ke aplikasi lain. Class DevicePolicyManager menyediakan metode untuk mengelola cakupan delegasi yang dapat diberikan oleh pemilik perangkat dan profil ke sebuah paket:

Tabel berikut menunjukkan cara berbagai metode di DevicePolicyManager diatur ke dalam berbagai cakupan:

Tabel 1. Hubungan antara cakupan dan metode kebijakan perangkat

Grup Metode
DELEGATION_CERT_INSTALL
DELEGATION_APP_RESTRICTIONS
DELEGATION_BLOCK_UNINSTALL setUninstallBlocked()
DELEGATION_PERMISSION_GRANT
DELEGATION_PACKAGE_ACCESS
DELEGATION_ENABLE_SYSTEM_APP enableSystemApp()

Layanan latar belakang yang berjalan lama

Pemilik perangkat dan profil dapat membuat subclass DeviceAdminService untuk membuat layanan latar belakang. Sistem Android mencoba untuk menjaga layanan tetap berjalan saat pengguna sedang berjalan. Jika Anda ingin menjalankan tugas berkala, pertimbangkan untuk menggunakan JobScheduler sebelum membuat layanan latar belakang.

Mengontrol layanan pencadangan

Pemilik perangkat dapat mengalihkan Android Backup Service menggunakan metode baru di DevicePolicyManager. Mengaktifkan dan menonaktifkan layanan pencadangan menggunakan setBackupServiceEnabled(). Periksa status layanan pencadangan menggunakan isBackupServiceEnabled().

Konfigurasi proxy Wi-Fi

Pemilik perangkat dan pemilik profil dapat mengonfigurasi server proxy HTTP untuk jaringan Wi-Fi. Gunakan file PAC atau setelan manual guna mengonfigurasi server proxy untuk setiap jaringan Wi-Fi. Untuk menetapkan atau menghapus proxy untuk WifiConfiguration, panggil metode setHttpProxy()-nya. Untuk mendapatkan setelan proxy, panggil getHttpProxy().

Dialog penjelasan untuk fitur yang dinonaktifkan oleh admin

Aplikasi Anda harus menampilkan penjelasan yang berguna bagi pengguna yang mencoba menggunakan fitur yang dinonaktifkan oleh admin. Semua aplikasi kini dapat menggunakan createAdminSupportIntent() untuk membuat intent yang menampilkan dialog penjelasan saat diteruskan ke startActivity(Intent). Intent menyertakan penjelasan yang dilokalkan dan disesuaikan untuk kamera yang dinonaktifkan, screenshot yang dinonaktifkan, dan semua pembatasan UserManager.

Membatasi Bluetooth

Pemilik perangkat dapat menonaktifkan Bluetooth—memengaruhi semua pengguna dan profil di perangkat. Untuk menonaktifkan Bluetooth, tambahkan batasan pengguna DISALLOW_BLUETOOTH.

Pemilik perangkat dan pemilik profil dapat mencegah pengguna mengirim file melalui Bluetooth menggunakan DISALLOW_BLUETOOTH_SHARING. Penerimaan file tidak akan terpengaruh. Jika ditetapkan oleh pemilik perangkat, DISALLOW_BLUETOOTH_SHARING berlaku untuk semua pengguna di perangkat tersebut. Setelan ini merupakan default di Android 8.0 untuk profil baru dan profil yang sudah ada di perangkat yang diupgrade ke Android 8.0.

Perubahan perilaku

Jika membangun aplikasi untuk bisnis, termasuk DPC, Anda harus meninjau perubahan perilaku berikut di Android 8.0 dan memodifikasi aplikasi sebagaimana mestinya.

Menghapus pengguna

Pemilik perangkat dapat menghapus pengguna sekunder dan profil terkelola menggunakan removeUser(), meskipun DISALLOW_REMOVE_USER diaktifkan.

Keamanan

Autentikasi

Perubahan berikut telah diterapkan di class DevicePolicyManager:

  • Metode lockNow() hanya mengunci profil kerja jika verifikasi kerja terpisah aktif.
  • Metode resetPassword() tidak lagi tersedia untuk DPC yang bertindak sebagai pemilik perangkat atau pemilik profil dan menargetkan Android 8.0. Jika dipanggil, pengecualian keamanan akan ditampilkan. Sebagai gantinya, DPC harus menggunakan resetPasswordWithToken().

    Catatan: DPC yang menargetkan Android 7.1.1 (API level 25) atau yang lebih rendah, serta DPC dengan hak istimewa admin perangkat saja, tidak terpengaruh oleh perubahan ini.

  • Untuk perangkat yang mendukung enkripsi berbasis file, isActivePasswordSufficient() tidak tersedia sebelum pengguna membuka kunci perangkat untuk pertama kalinya setelah mulai ulang. Jika dipanggil sebelum pengguna membuka kunci perangkat, pengecualian akan ditampilkan.

Data dari profil kerja yang dikunci

Android 8.0 menyertakan perubahan antarmuka pengguna untuk memisahkan data dari profil kerja yang dikunci.

  • Notifikasi untuk aplikasi di profil kerja sekarang mungkin menyembunyikan kontennya. Sebelumnya, panel samping notifikasi menampilkan konten untuk aplikasi kerja dari profil kerja yang terkunci.
  • Layar Terbaru kini menampilkan panel biasa untuk menjalankan aplikasi dari profil kerja yang terkunci. Panel biasa berwarna berisi ikon dan nama aplikasi. Sebelumnya, aktivitas atau tugas dari profil kerja yang terkunci menampilkan pratinjau di layar Terbaru.

Integritas perangkat

  • Flag ENSURE_VERIFY_APPS sekarang menjadi pembatasan pengguna global. Jika ada pengguna di perangkat yang memiliki batasan ini, verifikasi aplikasi akan diterapkan pada semua pengguna di perangkat tersebut. Misalnya, jika pemilik profil menetapkan pembatasan pada profil kerja, verifikasi aplikasi akan diterapkan pada profil pribadi pengguna.
  • Metode onSystemUpdatePending() kini dipanggil untuk pemilik profil, selain pemilik perangkat.
  • Saat menggunakan class SystemUpdatePolicy, kebijakan penundaan tidak lagi berlaku untuk patch keamanan, sehingga patch keamanan tidak dapat ditunda. Namun, perilaku jenis kebijakan lainnya, seperti otomatis dan berjendela, tidak akan terpengaruh.
  • Pemilik perangkat dapat memicu reset ke setelan pabrik menggunakan wipeData(), meskipun DISALLOW_FACTORY_RESET diaktifkan.

VPN selalu aktif

Android 8.0 menyertakan perubahan antarmuka pengguna untuk membantu pengguna memahami status koneksi VPN yang selalu aktif:

  • Jika koneksi VPN selalu aktif terputus atau tidak dapat terhubung, pengguna akan melihat notifikasi yang tidak dapat ditutup. Mengetuk notifikasi akan menampilkan setelan konfigurasi VPN. Notifikasi akan menghilang saat VPN terhubung kembali atau pengguna menonaktifkan opsi VPN selalu aktif.
  • VPN yang selalu aktif memungkinkan pengguna perangkat memblokir koneksi jaringan apa pun yang tidak menggunakan VPN. Jika opsi ini diaktifkan, aplikasi Setelan akan memperingatkan pengguna bahwa mereka tidak akan memiliki koneksi internet sampai VPN terhubung. Setelan meminta pengguna untuk melanjutkan atau membatalkan.

VpnService aplikasi VPN kini harus memanggil metode startForeground() setelah peluncuran. Karena sistem Android memulai layanan aplikasi VPN secara langsung, melakukan transisi ke latar depan adalah tanggung jawab aplikasi. Android 8.0 menonaktifkan aplikasi VPN yang tidak mentransisikan layanan VPN ke latar depan.

Callback sandi

Callback perubahan sandi DeviceAdminReceiver kini menyertakan parameter user untuk mengidentifikasi pengguna atau profil yang memiliki sandi. Tanda tangan metode baru adalah:

Implementasi default dari setiap metode baru akan memanggil versi sebelumnya—melepaskan argumen pengguna. Android 8.0 menghentikan penggunaan metode sebelumnya.

Delegasi API pengelolaan aplikasi

Metode berikut dalam class DevicePolicyManager kini tidak digunakan lagi:

Selain itu, Anda kini dapat mendelegasikan satu cakupan ke beberapa paket. Dengan kata lain, pemilik perangkat dan pemilik profil dapat memberikan akses dua paket yang berbeda ke kumpulan API yang sama secara bersamaan.