Kode Android 3.2+ (Tidak Sengaja?) Mencegah Akses Tulis ke Penyimpanan Eksternal

click fraud protection

Tampaknya Google memiliki bug dalam kode AOSP mereka yang diperkenalkan sekitar Android 3.2, yang memengaruhi cara OS menangani Penyimpanan USB dan dapat mencegah akses tulis ke kartu SD dan stik USB. Pengembang yang Diakui XDA Elite, Moderator Senior, dan Penulis Beritaapi unggun merangkum masalahnya dalam bukunya postingan blog:

Sebelumnya, aplikasi akan meminta "TULIS_EXTERNAL_STORAGE" izin, yang akan memberikan akses tulis ke semua penyimpanan eksternal (pengguna/grup "sdcard_rw"). Tampaknya ini telah diubah menjadi hanya memberikan akses tulis ke utama penyimpanan luar. Izin kedua telah diperkenalkan yang disebut "TULIS_MEDIA_STORAGE", yang akan memberikan akses ke penyimpanan eksternal lainnya (pengguna/grup "media_rw").

Masalahnya adalah, pihak ketiga sebenarnya tidak akan diberikan izin ini, hanya aplikasi sistem dan aplikasi yang disediakan oleh produsen perangkat yang biasanya akan diberikan izin ini. Ada pengecualian, tampaknya pada beberapa perangkat, aplikasi pihak ketiga akan diberikan izin ini, namun menurut sumber AOSP, izin tersebut tentu saja tidak seharusnya diberikan.

Saat Chainfire menyelidiki masalah ini, dia menemukan kode di /system/vold/Volume.cpp yang secara eksplisit menyatakan:

 if (Penyimpanan utama) {

// Kasus khusus itu kartu SD utama.

// Untuk ini kami memberikan akses tulis ke grup SDCARD_RW.

gid = AID_SDCARD_RW;

} kalau tidak {

// Untuk penyimpanan eksternal sekunder, kami menjaga semuanya tetap terkunci.

gid = AID_MEDIA_RW;

}

Di banyak perangkat, flash internal dianggap sebagai "kartu SD utama". Itu nyata Kartu SD kemudian menjadi penyimpanan eksternal sekunder, dan dikunci dan dilindungi oleh hal-hal yang tidak dapat dicapai.TULIS_MEDIA_STORAGE" izin.

Chainfire mengajukan pertanyaannya ke Jam Kerja Pengembang Android tim, dan mereka akhirnya mendiskusikannya di tim mereka tempat nongkrong langsung pada tanggal 11 April. Sayangnya, teknisi Google yang hadir di hangout tersebut tidak dapat memberikan jawaban yang sebenarnya, karena ini adalah masalah yang rumit dan pertanyaan tersebut hanya diajukan satu jam sebelum acara ditayangkan. Namun mereka berjanji untuk menyelesaikan masalah ini, dan kembali ke Chainfire (dan kami) di lain waktu.

Juga menurut Chainfire, masalahnya sebenarnya juga ada pada ICS yang dibuat untuk SGS2, meskipun Samsung "mengatasinya menggunakan peretasan izin yang sangat jelek":

Apa yang Anda lihat di sini adalah Samsung membonceng izin WRITE_MEDIA_STORAGE ke izin WRITE_EXTERNAL_STORAGE, sehingga aplikasi tidak mengalami masalah yang dijelaskan.

Apakah Google bermaksud agar Kartu SD dan stik USB yang terhubung dibatasi menjadi hanya baca untuk aplikasi pihak ketiga masih harus dilihat. Namun hal ini melahirkan pemikiran yang meresahkan: Bagaimana jika kode dan catatan yang menyertainya adalah yang pertama dari Google tahap penerapan semacam perlindungan penulisan untuk penyimpanan eksternal, dan dengan demikian semakin membatasi ponsel kita kebebasan? Kami hanya bisa berharap ini benar-benar bug, karena kebebasan adalah salah satu alasan mengapa kita semua menghindarinya Sisi gelap.

[Terima kasih banyak kepada Chainfire atas perhatian dan bantuannya!]