Memahami Penyimpanan Tercakup Android: Apa yang Berubah dan Mengapa Itu Penting

A smartphone beside small storage drawers with one locked, illustrating Android scoped storage

Jika Anda pernah mencoba mengelola file di perangkat Android, Anda mungkin memperhatikan bahwa segala sesuatunya bekerja secara berbeda tergantung pada versi Android yang Anda jalankan. Dimulai dengan Android 10, Google memperkenalkan perubahan mendasar dalam cara aplikasi berinteraksi dengan sistem file. Perubahan ini, yang dikenal sebagai Penyimpanan Tercakup, mendefinisikan ulang aturan seputar membaca dan menulis file di penyimpanan bersama. Bagi pengguna yang melakukan sideload aplikasi, mengelola file OBB, atau bekerja dengan pengelola file, memahami penyimpanan terbatas sangatlah penting.

Dalam artikel ini, kita akan mempelajari apa itu penyimpanan terbatas, alasan Google menerapkannya, pengaruhnya terhadap pengguna dan pengembang sehari-hari, dan apa pengaruhnya bagi siapa pun yang memasang file APK atau XAPK di luar Play Store.

Masalah dengan Model Penyimpanan Lama

Sebelum Android 10, aplikasi apa pun yang meminta izin READ_EXTERNAL_STORAGE atau WRITE_EXTERNAL_STORAGE dapat mengakses hampir semua file di penyimpanan bersama perangkat. Ini termasuk foto, dokumen, unduhan, dan bahkan file yang dibuat oleh aplikasi lain. Meskipun hal ini membuat pengelolaan file menjadi nyaman, hal ini menimbulkan masalah privasi dan keamanan yang serius.

Pertimbangkan aplikasi senter sederhana. Di bawah model lama, jika Anda memberinya izin penyimpanan, ia dapat membaca foto Anda secara diam-diam, memindai dokumen yang Anda unduh, atau bahkan memodifikasi file milik aplikasi lain. Tidak ada kontrol granular. Anda memberi aplikasi akses penuh ke seluruh penyimpanan Anda atau menolaknya sepenuhnya.

Akses yang luas ini menimbulkan permasalahan di dunia nyata. Beberapa aplikasi mengambil data pengguna dengan memindai penyimpanan untuk mencari file sensitif. Yang lain meninggalkan file yatim piatu yang mengacaukan perangkat lama setelah aplikasi dihapus instalasinya. Google memerlukan solusi yang menyeimbangkan kegunaan dan privasi, dan penyimpanan terbatas adalah jawabannya.

Apa Fungsi Scoped Storage Sebenarnya

Penyimpanan terbatas secara mendasar mengubah hubungan antara aplikasi dan sistem file. Dalam model ini, setiap aplikasi mendapatkan kotak pasir pribadinya sendiri di penyimpanan eksternal, biasanya terletak di /Android/data/[package.name]/. Aplikasi dapat dengan bebas membaca dan menulis di dalam kotak pasirnya sendiri tanpa memerlukan izin apa pun.

Namun, mengakses file di luar kotak pasir ini memerlukan API yang dikontrol. Berikut cara kerja model baru:

Penyimpanan Khusus Aplikasi

Setiap aplikasi memiliki direktori khusus yang hanya dapat diakses oleh aplikasi tersebut. Saat aplikasi dicopot pemasangannya, direktori ini secara otomatis dibersihkan. Tidak ada aplikasi lain yang dapat membaca atau menulis ke lokasi ini tanpa akses root. Hal ini menghilangkan masalah file yatim piatu dan mencegah pengintaian data lintas aplikasi.

Koleksi Media

Untuk media bersama seperti foto, video, dan file audio, Android menyediakan MediaStore API. Aplikasi dapat menyumbangkan media ke koleksi bersama dan membaca media yang dibuat oleh aplikasi lain, namun hanya melalui antarmuka terstruktur ini. Suatu aplikasi dapat melihat medianya sendiri tanpa izin apa pun, tetapi mengakses media aplikasi lain memerlukan izin READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, atau READ_MEDIA_AUDIO yang diperkenalkan di Android 13.

Kerangka Akses Penyimpanan

Untuk dokumen dan file non-media lainnya, aplikasi harus menggunakan Storage Access Framework (SAF). Ini menyajikan pemilih file sistem kepada pengguna, yang secara eksplisit memilih file atau direktori mana yang dapat diakses aplikasi. Aplikasi tidak pernah mendapatkan akses menyeluruh ke seluruh sistem file.

Izin MANAGE_EXTERNAL_STORAGE

Untuk aplikasi yang benar-benar membutuhkan akses file luas, seperti pengelola file, alat pencadangan, dan perangkat lunak antivirus, Android memberikan izin MANAGE_EXTERNAL_STORAGE. Namun, izin ini memerlukan persetujuan khusus dari Google untuk aplikasi yang didistribusikan melalui Play Store, dan pengguna harus memberikannya secara manual melalui pengaturan sistem, bukan melalui dialog sederhana.

Garis Waktu Peluncuran

Google tidak menerapkan penyimpanan terbatas dalam semalam. Transisi terjadi secara bertahap:

  • Penyimpanan terbatas Android 10 (API 29): diperkenalkan tetapi aplikasi dapat memilih untuk tidak menggunakan requestLegacyExternalStorage="true" dalam manifesnya. Hal ini memberikan waktu bagi pengembang untuk beradaptasi.
  • Android 11 (API 30): Tanda lama diabaikan untuk aplikasi yang menargetkan API 30 atau lebih tinggi. Penyimpanan terbatas menjadi wajib untuk aplikasi baru dan yang diperbarui di Play Store.
  • Android 12 dan seterusnya: Penyempurnaan lebih lanjut dilakukan, termasuk izin media granular dan peningkatan kinerja SAF.
  • Android 13 (API 33): Izin luas READ_EXTERNAL_STORAGE tidak digunakan lagi dan digantikan dengan izin media tertentu.
  • Android 14 (API 34): Akses sebagian foto dan video diperkenalkan, memungkinkan pengguna untuk memberikan akses ke file tertentu daripada seluruh perpustakaan media.

Bagaimana Scoped Storage Mempengaruhi Sideloading

Bagi pengguna yang menginstal aplikasi dari luar Play Store, penyimpanan terbatas menghadirkan beberapa tantangan praktis yang perlu dipahami.

Mengunduh dan Mengakses File APK

Saat Anda mengunduh file APK melalui browser, biasanya file tersebut masuk ke folder Unduhan. Dalam penyimpanan terbatas, aplikasi browser memiliki file tersebut. Jika Anda ingin menginstalnya menggunakan aplikasi lain, seperti pengelola file, pengelola file tersebut memerlukan akses yang sesuai. Kebanyakan pengelola file modern menangani ini dengan benar melalui SAF, tetapi pengelola file lama mungkin kesulitan.

Pemasang paket sistem masih dapat mengakses file yang Anda pilih secara eksplisit melalui pemilih file, sehingga alur dasar pengunduhan dan pemasangan APK tetap berfungsi. Namun, alur kerja instalasi otomatis yang mengandalkan akses jalur file langsung mungkin rusak.

File OBB dan Data Game

Di sinilah penyimpanan terbatas menciptakan gesekan paling besar bagi sideloader. Banyak game besar menggunakan file OBB (Opaque Binary Blob) yang disimpan di /Android/obb/[package.name]/. Di bawah model lama, Anda cukup menyalin file OBB ke direktori yang benar menggunakan pengelola file apa pun.

Dengan penyimpanan terbatas, direktori /Android/obb/ dibatasi. Di Android 11 dan yang lebih baru, aplikasi biasa tidak dapat menulis ke direktori OBB aplikasi lain. Artinya jika Anda mendownload file XAPK yang berisi data OBB, maka installernya memerlukan penanganan khusus agar file tersebut dapat ditempatkan dengan benar.

Alat seperti Ekstraktor OBB kami dapat membantu Anda mengekstrak file OBB dari paket XAPK, namun menempatkannya di direktori yang benar pada versi Android yang lebih baru mungkin memerlukan penggunaan pengelola file dengan izin MANAGE_EXTERNAL_STORAGE atau menggunakan perintah ADB dari komputer.

Pertimbangan Instalasi XAPK

File XAPK menggabungkan APK dengan data OBB dan terkadang membagi konfigurasi APK. Menginstalnya di perangkat yang menjalankan Android 11 atau lebih baru memerlukan penginstal yang memahami batasan penyimpanan terbatas. Pemasang harus memiliki izin MANAGE_EXTERNAL_STORAGE atau menggunakan API yang tepat untuk menempatkan file OBB di lokasi yang benar.

Inilah salah satu alasan mengapa mengonversi file XAPK ke format APK standar bisa bermanfaat. APK mandiri tidak memerlukan penempatan file OBB, sehingga menyederhanakan proses instalasi pada versi Android yang lebih baru. Anda dapat menggunakan Konverter XAPKS ke APK kami untuk mengekstrak APK dasar dari paket XAPK.

Yang Perlu Diketahui Pengembang

Jika Anda mengembangkan aplikasi Android, penyimpanan terbatas memerlukan pemikiran ulang tentang cara Anda menangani file:

  • Gunakan direktori khusus aplikasi untuk file apa pun yang hanya dibutuhkan aplikasi Anda. Ini tidak memerlukan izin dan secara otomatis dibersihkan saat uninstall.
  • Gunakan MediaStore untuk foto, video, dan audio yang dapat dilihat oleh aplikasi lain dan selamat dari instalasi.
  • Gunakan SAF saat aplikasi Anda perlu bekerja dengan dokumen atau direktori yang dipilih pengguna.
  • Hindari jalur file yang di-hardcode. Jalur seperti /sdcard/MyApp/ tidak lagi dapat diandalkan. Gunakan Context.getExternalFilesDir() sebagai gantinya.
  • Perilaku Uji pada beberapa level API. berbeda secara signifikan antara Android 10, 11, 13, dan 14.

Strategi Migrasi

Jika aplikasi Anda sebelumnya menyimpan file di penyimpanan bersama, Anda memerlukan rencana migrasi. Pendekatan yang disarankan adalah menyalin file yang ada ke penyimpanan khusus aplikasi pada peluncuran pertama setelah pembaruan, lalu menghapus salinan lama. Gunakan Environment.getExternalStorageDirectory() dengan tanda lama selama masa transisi untuk membaca file lama, lalu pindahkan ke lokasi baru.

Kesalahpahaman Umum

"Penyimpanan terbatas berarti aplikasi tidak dapat mengakses file apa pun"

Ini salah. Aplikasi masih dapat mengakses file mereka sendiri dengan bebas, berkontribusi pada koleksi media bersama, dan meminta akses ke file tertentu melalui pemilih sistem. Yang berubah adalah aplikasi tidak lagi dapat menelusuri seluruh sistem file secara diam-diam.

"Manajer file rusak pada versi Android baru"

Pengelola file yang meminta izin MANAGE_EXTERNAL_STORAGE masih tetap berfungsi. Pengguna hanya perlu memberikan izin khusus ini melalui pengaturan. Kebanyakan pengelola file populer telah beradaptasi dengan persyaratan ini.

"Penyimpanan terbatas hanya memengaruhi kartu SD"

Penyimpanan terbatas berlaku untuk semua penyimpanan bersama, termasuk penyimpanan bersama internal. Istilah "penyimpanan eksternal" di Android mengacu pada penyimpanan bersama yang dapat diakses oleh banyak aplikasi, tidak harus berupa kartu SD fisik.

Tips Praktis untuk Pengguna

Jika Anda rutin melakukan sideload aplikasi atau mengelola file di perangkat Android, berikut beberapa rekomendasi praktis:

  1. Gunakan pengelola file modern yang mendukung MANAGE_EXTERNAL_STORAGE. Aplikasi seperti Solid Explorer, MiXplorer, dan Total Commander telah beradaptasi dengan baik pada penyimpanan terbatas.
  2. Berikan izin dengan hati-hati. Saat pengelola file meminta "Akses semua file", pahami bahwa ini adalah izin MANAGE_EXTERNAL_STORAGE dan diperlukan untuk fungsionalitas penuh.
  3. Gunakan ADB untuk operasi file yang membandel. Jika Anda tidak dapat menempatkan file OBB melalui pengelola file, menghubungkan perangkat Anda ke komputer dan menggunakan adb push sepenuhnya mengabaikan batasan penyimpanan terbatas.
  4. Konversikan paket kompleks ke format yang lebih sederhana. Jika file XAPK menimbulkan masalah pada perangkat yang lebih baru, mengekstraksi komponen APK saja mungkin merupakan cara yang paling sedikit hambatannya.
  5. Selalu perbarui aplikasi penginstal Anda. Penginstal XAPK versi lama mungkin tidak menangani penyimpanan terbatas dengan benar.

Masa Depan Penyimpanan Android

Google terus menyempurnakan model penyimpanan pada setiap rilis Android. Android 14 memperkenalkan akses media parsial, memungkinkan pengguna berbagi foto tertentu dengan aplikasi, bukan seluruh perpustakaan mereka. Android 15 diharapkan membawa peningkatan lebih lanjut pada performa dan kegunaan Storage Access Framework.

Trennya jelas: Android bergerak menuju model di mana pengguna memiliki kendali penuh atas apa yang dapat dilihat dan dimodifikasi oleh setiap aplikasi. Meskipun hal ini menimbulkan beberapa gesekan bagi power user dan sideloader, hal ini secara signifikan meningkatkan privasi dan keamanan untuk basis pengguna yang lebih luas.

Bekerja Dengan Penyimpanan Tercakup Tanpa Merusak Data Aplikasi

Penyimpanan terbatas mewakili salah satu perubahan paling signifikan pada arsitektur Android dalam beberapa tahun terakhir. Dengan membatasi aplikasi di kotak pasirnya sendiri dan mewajibkan izin pengguna secara eksplisit untuk akses yang lebih luas, Google telah meningkatkan postur privasi platform secara signifikan. Bagi pengguna yang melakukan sideload aplikasi dan mengelola file secara manual, memahami batasan ini membantu Anda mengatasi titik kendala yang kadang terjadi. Dan bagi pengembang, beradaptasi dengan penyimpanan terbatas bukanlah suatu pilihan, melainkan persyaratan mendasar untuk pengembangan Android modern.

Menginstal APK, menempatkan file OBB, dan mengelola penyimpanan sehari-hari semuanya dijalankan dalam sistem yang sama: penyimpanan terbatas. Setelah Anda memahami cara kerjanya, Andalah yang mengendalikan perangkat Anda, bukannya bergantung pada aplikasi yang mungkin menyalahgunakan akses file yang luas.

Direkayasa & Didokumentasikan oleh Mst Shaefale Pengembang Utama & Arsitek Paket Android • Terverifikasi di Android 12–15

Mst Shaefale mengelola penggabungan XAPK/APKS sisi klien, parser manifes biner, dan alat penandatanganan APK v1+v2 di xapktoapk.com. Temukan perintah yang ketinggalan jaman atau perubahan OS? Kirimkan catatan editorial.