Обратите внимание, что это разрешение почти полностью не документировано, поэтому нам нужно ощутить его истинный смысл. Так что это ни в коем случае не «авторитетный ответ», а более или менее нечто среднее между «хорошим предположением» и «вычетом из других указателей».
Официальное описание для этого разрешения (как сказано, больше нет документации):
Позволяет приложению изменять карту сервиса Google.
Так что теперь мы можем догадаться, что это должно означать. Давайте сделаем некоторый «реверс-инжиниринг», чтобы почувствовать наш путь в него. Райан уже дал несколько указаний в своем комментарии, ссылаясь на два SO вопроса:
Чтение между строк: всякий раз, когда приложение хочет использовать (частично) Google Services Framework , оно должно декларировать READ_GSERVICES
требуемое разрешение - что очень похоже на требование, GET_ACCOUNTS
если вы хотите USE_CREDENTIALS
: сначала приложение должно убедиться, что требуемый сервис доступен вообще, прежде чем получить к нему доступ.
Это дает нам представление о том, какой должна быть Карта Сервиса Google : какой-то индекс для доступных (установленных) Сервисов Google.
Теперь, когда мы обнаружили это, мы можем догадаться, для чего WRITE_GSERVICES
может быть предназначено разрешение - и почему оно защищено system
уровнем защиты (то есть оно предоставляется только «системным приложениям», то есть тем, которые интегрированы в ПЗУ, устанавливается в /system
раздел): если READ_GSERVICES
необходимо выяснить, какие сервисы Google доступны, WRITE_GSERVICES
должен быть его аналогом для обновления этой карты сервиса. Например, каждый раз, когда новая служба была установлена (или удалена), чтобы обновить «индекс служб Google, доступных на устройстве» - «Карту службы Google».
В этом контексте мне интересно только одно: почему это разрешение принадлежит ACCOUNTS
группе ...
Смотрите также: