Существует загадочное и недокументированное разрешение для Android под названием: WRITE_GSERVICES . Как обычно, собственная документация Googles даже более загадочна, чем любая плохая сказка:
android.permission.WRITE_GSERVICES Allows an application to modify the Google service map.
Однако Google (!) Для Google Service Map
ничего полезного не дает.
Что это контролирует и для чего оно используется?
stock-android
permissions
not2qubit
источник
источник
READ_GSERVICES
, что имеет смысл, поскольку обычные приложения не могут запрашивать доступ, запрашивающийWRITE_GSERVICES
указывает, что Google Maps требует разрешения READ_GSERVICES для корректной работы. - Также хочу добавить, что из 17 изменений в дубликате, который вы называете «моим», 14 из них были сделаны другими пользователями, кроме меня, добавив более 5000 символов.Ответы:
Обратите внимание, что это разрешение почти полностью не документировано, поэтому нам нужно ощутить его истинный смысл. Так что это ни в коем случае не «авторитетный ответ», а более или менее нечто среднее между «хорошим предположением» и «вычетом из других указателей».
Официальное описание для этого разрешения (как сказано, больше нет документации):
Так что теперь мы можем догадаться, что это должно означать. Давайте сделаем некоторый «реверс-инжиниринг», чтобы почувствовать наш путь в него. Райан уже дал несколько указаний в своем комментарии, ссылаясь на два SO вопроса:
READ_GSERVICES
)Чтение между строк: всякий раз, когда приложение хочет использовать (частично) Google Services Framework , оно должно декларировать
READ_GSERVICES
требуемое разрешение - что очень похоже на требование,GET_ACCOUNTS
если вы хотитеUSE_CREDENTIALS
: сначала приложение должно убедиться, что требуемый сервис доступен вообще, прежде чем получить к нему доступ.Это дает нам представление о том, какой должна быть Карта Сервиса Google : какой-то индекс для доступных (установленных) Сервисов Google.
Теперь, когда мы обнаружили это, мы можем догадаться, для чего
WRITE_GSERVICES
может быть предназначено разрешение - и почему оно защищеноsystem
уровнем защиты (то есть оно предоставляется только «системным приложениям», то есть тем, которые интегрированы в ПЗУ, устанавливается в/system
раздел): еслиREAD_GSERVICES
необходимо выяснить, какие сервисы Google доступны,WRITE_GSERVICES
должен быть его аналогом для обновления этой карты сервиса. Например, каждый раз, когда новая служба была установлена (или удалена), чтобы обновить «индекс служб Google, доступных на устройстве» - «Карту службы Google».В этом контексте мне интересно только одно: почему это разрешение принадлежит
ACCOUNTS
группе ...Смотрите также:
READ_GSERVICES
разрешение как «Разрешает API доступ к веб-службам Google » (цитирование сообщения изandroid-developers@googlegroups.com
списка рассылки)ACCOUNTS
группе, например, к аутентификации аккаунта Google ;)источник
ACCOUNTS
группе: многие службы Google требуют логин , который будет использоваться, так что могут быть некоторые перекрестные проверки (например , передачи учетной записи имя , чтобы проверить , если у вас есть «активный пользователь» для данного сервис, даже без входа в систему / передачи пароля / AUTH-токена).