APK adalah package format yang digunakan Android untuk mendistribusikan dan memasang aplikasi pada banyak perangkat. Sebuah APK berisi code, resource, manifest, certificate signature, dan file lain yang dibutuhkan sistem. Saat instalasi, Android tidak sekadar menyalin satu file, tetapi memverifikasi package, permission, signature, compatibility, dan menyiapkan aplikasi dalam environment yang dikelola sistem.
Android juga memisahkan aplikasi berdasarkan package name yang menjadi identitas logis pada sistem. Package name berbeda dari nama tampilan aplikasi dan biasanya tetap konsisten antar versi. Saat troubleshooting atau memeriksa update, package name dan signing identity lebih berguna daripada hanya melihat ikon atau judul yang tampil di launcher.
APK Mengemas Code, Resource, Dan Manifest Aplikasi
Di dalam APK terdapat AndroidManifest.xml, resource, compiled code seperti DEX, native library bila diperlukan, asset, dan signature-related data. Manifest mendeklarasikan komponen aplikasi, permission, minimum requirement, intent filter, dan konfigurasi lain. Saat build, toolchain Android mengompilasi dan mengemas seluruh bagian tersebut menjadi package yang dapat diproses sistem.
Pada Android modern, distribusi di store dapat menggunakan Android App Bundle sehingga store menghasilkan APK yang dioptimalkan untuk konfigurasi perangkat. Pengguna tetap menerima satu atau beberapa APK yang dipasang oleh sistem. Karena itu, file .aab adalah format publishing dan bukan pengganti langsung APK untuk instalasi manual pada perangkat.
Resource di dalam APK dapat dioptimalkan untuk density layar, bahasa, dan konfigurasi perangkat. Build system Android juga dapat melakukan shrinking atau optimization agar code serta resource yang tidak diperlukan dapat dikurangi. Karena itu, ukuran package akhir dipengaruhi bukan hanya jumlah fitur, tetapi juga konfigurasi build dan target perangkat.
Android Memverifikasi Signature Sebelum Instalasi Dan Update
Setiap APK harus ditandatangani. Signature menghubungkan versi aplikasi dengan signing identity sehingga Android dapat memeriksa apakah update berasal dari publisher yang sama. Jika package baru memiliki signature yang tidak sesuai dengan aplikasi yang sudah terpasang, update normal biasanya ditolak. Mekanisme ini membantu mencegah pihak lain menggantikan aplikasi yang sudah ada dengan package berbeda.
APK Signature Scheme berkembang melalui beberapa versi untuk meningkatkan perlindungan terhadap manipulasi package dan mendukung fitur baru. Sistem memilih skema sesuai versi Android dan package. Bagi pengguna umum, prinsip terpentingnya adalah update aplikasi harus mempertahankan signing identity yang dipercaya sistem.
Pada proses update, Android tidak hanya membandingkan version number. Signing identity menjadi syarat penting agar package baru dianggap sebagai kelanjutan aplikasi yang sama. Jika developer kehilangan signing key pada skema tertentu, proses update dapat menjadi sangat sulit atau memerlukan mekanisme recovery yang memang disediakan platform.
Permission Dan Sandbox Membatasi Akses Aplikasi
Android memberi setiap aplikasi identity dan sandbox tersendiri. Permission tertentu diperlukan ketika aplikasi ingin mengakses kamera, lokasi, microphone, contact, atau capability sensitif lain. Sebagian permission diberikan saat instalasi atau runtime sesuai jenisnya. Sandbox membantu membatasi akses langsung antar aplikasi, tetapi pengguna tetap perlu memahami permission yang diminta karena aplikasi sah sekalipun dapat meminta akses yang luas.
Sandbox tidak berarti aplikasi sepenuhnya terisolasi dari data yang sengaja dibagikan pengguna. File picker, content provider, intent, clipboard, dan permission dapat menjadi mekanisme pertukaran data. Keamanan bergantung pada bagaimana aplikasi dan sistem menggunakan interface tersebut serta apakah permission diberikan secara proporsional.
Permission runtime memungkinkan pengguna memberikan atau menolak akses tertentu setelah aplikasi dipasang. Android juga dapat membatasi permission yang lama tidak digunakan atau memberi indikator ketika kamera dan mikrofon aktif. Fitur ini menambah kontrol, tetapi pengguna tetap perlu membaca alasan aplikasi meminta akses sensitif.
Sideloading Memerlukan Pemeriksaan Sumber Yang Lebih Hati-Hati
APK dapat dipasang dari luar app store jika perangkat mengizinkan sumber tersebut. Sideloading bukan otomatis berbahaya, tetapi pengguna kehilangan sebagian proses review dan distribution control dari store. File harus diperoleh dari publisher yang dapat diverifikasi, signature sebaiknya diperiksa bila memungkinkan, dan update selanjutnya perlu berasal dari identity signing yang sama. Hindari APK modifikasi yang tidak jelas sumber maupun perubahan code-nya.
Play Protect dan mekanisme keamanan perangkat dapat memindai aplikasi, tetapi tidak menghapus kebutuhan memeriksa sumber. Package yang tampak memiliki nama aplikasi populer dapat ditandatangani pihak berbeda. Nama ikon dan package display tidak cukup untuk membuktikan bahwa file berasal dari publisher asli.
Backup aplikasi juga perlu dibedakan dari backup data. Menyimpan APK hanya menyimpan package program, bukan selalu database, konfigurasi, atau file pengguna yang berada di sandbox atau cloud. Saat migrasi perangkat, data aplikasi perlu mengikuti mekanisme backup yang didukung aplikasi dan Android.





