Что такое разрешение Android «WRITE_GSERVICES»?
Существует загадочное и недокументированное разрешение Android: WRITE_GSERVICES . Как обычно, документальная документация Googles еще более загадочна, чем любая плохая сказка, написав:
android.permission.WRITE_GSERVICES Allows an application to modify the Google service map.
Однако Googling (!) для Google Service Map
не дает ничего полезного.
Что он контролирует и для чего он используется?
1 ответ
Обратите внимание, что это разрешение почти полностью недокументировано, поэтому нам нужно почувствовать наш путь к его реальному значению. Таким образом, это никоим образом не является «авторитетным ответом» - но более или менее чем-то между «хорошим догадком» и «выводом из других указателей».
Официальное описание этого разрешения (как сказано, нет дополнительной документации):
Позволяет программе изменять карту сервиса Google.
Итак, теперь мы можем догадаться, что это значит. Давайте сделаем «обратную инженерию» для этого, чтобы почувствовать наш путь в нее. Райан уже дал некоторые указатели в своем комментарии , ссылаясь на два вопроса SO:
-
Android Google Maps API v2 - требуется разрешение, которое у него уже есть (в нашем контексте: API Карт требует
READ_GSERVICES
) литий> - Когда использовать разрешение READ_GSERVICES?
Чтение между строками: всякий раз, когда приложение хочет использовать (части) Google Services Framework , оно должно объявить READ_GSERVICES
требуется - что очень похоже на требование GET_ACCOUNTS
, если вы хотите USE_CREDENTIALS
: сначала приложение должно убедиться, что необходимая услуга доступна вообще, прежде чем обращаться к ней.
Это дает нам представление о том, что должна Карта Google Service : какой-то индекс для доступных (установленных) сервисов Google.
Теперь, когда мы обнаружили это, мы можем хорошо догадаться, для чего может быть предназначено разрешение WRITE_GSERVICES
- и почему оно защищено с помощью уровня защиты system
(это означает, что он предоставляется только «системным приложениям», т.е. тем, которые интегрированы в ПЗУ, который устанавливается на раздел /system
): Если READ_GSERVICES
предназначенный для определения того, какие службы Google доступны, WRITE_GSERVICES
должен быть его встречной частью update , что сервисная карта , Например, всякий раз, когда новая служба была установлена (или удалена), чтобы обновить «индекс сервисов Google, доступных на устройстве» - «Карта сервиса Google».
Только в этом контексте мне интересно, почему это разрешение принадлежит группе ACCOUNTS
...
См. также:
- Требования к сервисам Google Play (особенно в главе «Указание дополнительных разрешений»)
-
Maps API v2 и WRITE_EXTERNAL_STORAGE описывает разрешение
READ_GSERVICES
как «Позволяет API для доступа к веб-службам Google "(цитируя сообщение из[email protected]
список рассылки) -
Карта сервиса Google: карта Google-Netzwerks (немецкая статья, предшествующая Android) описывает «Карту Google Service» как «список всех доступных сервисов Google». Обратите внимание, что, хотя это похоже на то, что это может быть что-то другое, но это имеет смысл. Полный список здесь . И это может объяснить, почему это разрешение принадлежит группе
ACCOUNTS
, так как оно включает, например, Аутентификация учетной записи Google ;) - SO: Что такое разрешение для Android WRITE_GSERVICES точно для? (опять же это указывает на Веб-службы Google )