Apa yang dilakukan dengan Izin Android "WRITE_GSERVICES"?

8

Ada Izin Android yang misterius dan tidak berdokumen bernama: WRITE_GSERVICES . Seperti biasa, dokumentasi Google sendiri bahkan lebih misterius daripada dongeng buruk, menulis:

android.permission.WRITE_GSERVICES      Allows an application to modify the Google service map.

Namun Googling (!) Untuk Google Service Maphasil tidak ada yang berguna.

Untuk apa ia mengendalikan dan untuk apa ia digunakan?

not2qubit
sumber
@Ryan: Jika Anda benar-benar ingin melihat tautan yang Anda katakan telah diduplikasi, Anda akan melihat bahwa bukan itu masalahnya. Dan di mana Anda melihatnya terkait dengan data peta? Sumber tampaknya menceritakan kisah lain.
not2qubit
Yah itu tidak benar dan saya tidak melihat Anda bahkan mencoba untuk membuat cadangan pernyataan Anda dengan kode, bukti atau tautan yang relevan, bukan milik Anda. Tolong, tunjukkan saya kode yang menunjukkan itu bahkan terhubung jauh ke Google Maps. Seperti yang saya katakan, penyelidikan saya sendiri menunjukkan sesuatu yang lain.
not2qubit
1
Meskipun ini (dan ini ) adalah untuk READ_GSERVICES, yang masuk akal, karena aplikasi normal tidak dapat meminta akses WRITE_GSERVICES, penanya menunjukkan bahwa Google Maps memerlukan izin READ_GSERVICES untuk bekerja dengan benar. - Juga ingin menambahkan, dari 17 suntingan ke duplikat yang Anda sebut 'milikku', 14 di antaranya oleh pengguna lain selain saya, berkontribusi lebih dari 5000 karakter.
Ryan Conrad
1
Lihat: android.izzysoft.de/applists/perms#WRITE_GSERVICES :) "Mengizinkan aplikasi mengubah peta layanan Google." Jadi @RyanConrad Ini peta layanan , bukan "Layanan Google Maps". Apa sebenarnya yang dimaksud dengan ini adalah hal lain, sepengetahuan saya tidak ada dokumentasi nyata.
Izzy
2
Saya memilih untuk membuka kembali pertanyaan ini. Untuk alasannya, silakan lihat (dan bergabunglah dengan diskusi tentang) Meta: Haruskah kita benar-benar menutup pertanyaan tentang makna izin sebagai duplikat ke "daftar umum"?
Izzy

Jawaban:

8

Perhatikan bahwa izin ini hampir tidak berdokumen, oleh karena itu kita perlu merasakan jalan menuju makna sebenarnya. Jadi ini sama sekali bukan "jawaban resmi" - tetapi lebih atau kurang sesuatu antara "tebakan baik" dan "deduksi dari petunjuk lain".

Deskripsi resmi untuk izin ini (seperti yang disebutkan, tidak ada dokumentasi lebih lanjut) adalah:

Mengizinkan aplikasi mengubah peta layanan Google.

Jadi sekarang kita bisa menebak apa artinya itu. Mari kita lakukan beberapa "rekayasa terbalik" untuk merasakan jalan kita ke dalamnya. Ryan sudah memberikan beberapa petunjuk dalam komentarnya, menghubungkan ke dua pertanyaan SO:

Membaca yang tersirat: Setiap kali aplikasi ingin menggunakan (bagian dari) Kerangka Layanan Google , ia harus menyatakan READ_GSERVICESizin yang diperlukan - yang hampir mirip dengan yang dibutuhkan GET_ACCOUNTSjika Anda ingin USE_CREDENTIALS: aplikasi terlebih dahulu perlu memastikan layanan yang diperlukan tersedia sama sekali, sebelum mengaksesnya.

Ini memberi kami gambaran tentang apa yang harus menjadi Peta Layanan Google : semacam indeks untuk Layanan Google yang tersedia (diinstal).

Sekarang setelah kami menemukan itu, kami dapat menebak dengan baik untuk apa WRITE_GSERVICESizin itu dimaksudkan - dan mengapa dilindungi oleh systemtingkat perlindungan (artinya, itu hanya diberikan kepada "aplikasi sistem" - yaitu yang terintegrasi ke dalam ROM, yang merupakan sedang diinstal pada /systempartisi): Jika READ_GSERVICESdimaksudkan untuk mencari tahu layanan Google mana yang tersedia, WRITE_GSERVICESharus menjadi counter-part-nya untuk memperbarui peta layanan itu. Yaitu, setiap kali layanan baru dipasang (atau dihapus), untuk memperbarui "indeks Layanan Google yang tersedia di perangkat" - "Peta Layanan Google".

Satu hal yang saya ingin tahu dalam konteks ini adalah, mengapa izin ini milik ACCOUNTSgrup ...


Lihat juga:

Izzy
sumber
1
Poin lain mengapa izin ini mungkin ada dalam ACCOUNTSgrup: banyak layanan Google memerlukan login agar dapat digunakan, jadi mungkin ada beberapa pemeriksaan silang (mis. Mengirimkan nama akun Anda untuk memeriksa apakah Anda memiliki "pengguna aktif" untuk diberikan layanan, bahkan tanpa masuk Anda / mengirimkan kata sandi / AUTH-token).
Izzy