Ditulis oleh Edward Cunningham. Product Manager, Android Security

Pengguna Android O yang sangat jeli akan melihat hilangnya setting 'Allow unknown sources', yang telah ada sejak awal kemunculan Android untuk memfasilitasi penginstalan aplikasi dari luar Google Play dan preloaded stores lainnya. Dalam postingan ini, kami akan membicarakan tentang izin Install unknown apps yang baru dan manfaat keamanan yang dibawanya untuk pengguna dan developer Android.

Awal tahun ini kami memperkenalkan Google Play Protect - layanan keamanan komprehensif yang selalu bekerja untuk melindungi perangkat Anda dari bahaya. Google Play tetap menjadi salah satu tempat teraman bagi pengguna Android untuk mendownload aplikasi, dengan mayoritas Potentially Harmful Apps (PHA) berasal dari sumber pihak ketiga.

Strategi yang biasa digunakan oleh pembuat PHA adalah mengirimkan aplikasinya melalui downloader yang berbahaya. Misalnya, aplikasi game mungkin tidak berisi kode berbahaya namun mungkin memberi notifikasi kepada pengguna untuk menginstal PHA yang menyamar sebagai update keamanan penting. (Anda bisa membaca selengkapnya tentang downloader berbahaya di Android Security 2016 Year in Review). Pengguna yang mengaktifkan penginstalan aplikasi dari sumber tak dikenal menjadikan diri mereka rentan terhadap perilaku yang menipu ini.
Kiri (sebelum Android O): Layar penginstalan PHA yang menyamar sebagai pembaruan sistem.
Kanan (Android O): Sebelum PHA diinstal, pengguna harus terlebih dahulu memberikan izin ke aplikasi yang memicu penginstalan.

Pada Android O, izin Install unknown apps akan memperaman saat memasang aplikasi dari sumber tak dikenal. Izin ini terkait dengan aplikasi yang memicu penginstalan— sama seperti izin waktu proses yang lain—dan memastikan bahwa pengguna memberikan izin untuk menggunakan sumber instal sebelum ia memicu pengguna untuk menginstal aplikasi. Bila digunakan pada perangkat yang menjalankan Android O dan yang lebih tinggi, downloader berbahaya tidak akan bisa mengelabui pengguna agar menginstal aplikasi tanpa terlebih dahulu diberikan lampu hijau.

Izin baru ini memberi pengguna transparansi, kontrol, dan proses yang efisien untuk mengizinkan penginstalan dari sumber tepercaya. Aplikasi Settings menampilkan daftar aplikasi yang telah disetujui pengguna untuk menginstal aplikasi tak dikenal. Pengguna bisa membatalkan izin untuk aplikasi tertentu setiap saat.
Setiap saat, pengguna bisa meninjau aplikasi yang diizinkan menginstal aplikasi tak dikenal. Agar proses pemberian izin lebih mudah, developer aplikasi bisa memilih untuk mengarahkan pengguna ke layar izin sebagai bagian dari alur persiapan.

Perubahan developer


Untuk memanfaatkan perilaku baru ini, developer aplikasi yang memerlukan kemampuan untuk mendownload dan menginstal aplikasi lain melalui Package Installer mungkin perlu melakukan beberapa perubahan. Jika sebuah aplikasi menggunakan targetSdkLevel 26 atau lebih tinggi dan meminta pengguna untuk menginstal aplikasi lain, file manifes harus menyertakan izin REQUEST_INSTALL_PACKAGES:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

Aplikasi yang tidak mendeklarasikan izin ini tidak bisa menginstal aplikasi lain, sebuah perlindungan keamanan praktis untuk aplikasi yang memang tidak berniat melakukannya. Anda bisa memilih untuk secara langsung mengarahkan pengguna ke layar izin Install unknown apps menggunakan aksi Intent ACTION_MANAGE_UNKNOWN_APP_SOURCES. Anda juga bisa melakukan kueri status izin ini menggunakan PackageManager canRequestPackageInstalls() API.

Ingatlah bahwa kebijakan Play tetap berlaku untuk aplikasi yang didistribusikan pada Google Play bila aplikasi tersebut bisa menginstal dan mengupdate aplikasi lainnya. Pada kebanyakan kasus, perilaku semacam itu tidak tepat; Anda sebaiknya memberikan deep link sebagai gantinya ke dalam daftar aplikasi di Play Store.

Pastikan untuk membaca panduan penerbitan terbaru yang memberikan lebih banyak informasi tentang penginstalan aplikasi tak dikenal, dan nantikan lebih banyak postingan yang lain tentang peningkatan keamanan di Android O.