Есть два случая, которые вы должны рассмотреть:
- Авторизация на стороне сервера
- Android Account Manager (на стороне устройства) Авторизация
Вариант 1. Аннулирование учетных записей Google на стороне сервера можно выполнить по адресу: https://accounts.google.com/IssuedAuthSubTokens
Вам просто нужно войти в систему с соответствующей учетной записью Google и выбрать отзыв приложения / веб-сайта.
Случай 2: Если на вашем устройстве Android отображается экран, на котором говорится что-то вроде: «Приложение хочет получить доступ к вашей учетной записи Google… Разрешить/Запретить?», то это авторизация типа менеджера учетной записи, где вам необходимо изменить sqlite3 базу данных на вашем телефоне, чтобы отозвать приложение (не так тривиально, как в случае 1, и для этого требуется root-доступ к вашему телефону):
я. Сначала скопируйте базу данных и файл журнала (accounts.db и account.db-journal) в другое место (например, на SD-карту или на компьютер). Файлы базы данных можно найти в этом каталоге на вашем устройстве Android:
/data/system/users/0/accounts.db
/data/system/users/0/accounts.db-journal
II. Теперь вам нужен редактор sqlite3. Я использовал отладчик Sqlite из магазина Google Play. В качестве альтернативы вы можете использовать двоичные файлы sqlite3 из http://www.sqlite.org/download.html. и сделать это на компьютере.
III. Вы знаете, что вам нужно использовать редактор для удаления определенных записей в таблице «extras» базы данных account.db. Возможно, вы захотите пройти краткое руководство по командам sqlite, но вот несколько примеров, и «Sqlite Debugger» упрощает изучение:
Сначала откройте файл account.db в редакторе.
Чтобы перечислить все строки в таблице «дополнительно», вы можете использовать следующую команду:
SELECT * from extras
Лучшей идеей было бы перечислить в таблице «дополнительно» только те строки, которые соответствуют заявке, которую вы хотите отозвать. Например, если «com.someapp» — это имя вашего приложения, вы можете использовать следующую команду:
SELECT * from extras WHERE key like '%com.someapp%'
Вы должны получить примерно такой вывод:
id|accountsid|key|value
10|1|perm.xxxxxxxxxxxxxxxxxxxxxxxxxxx.oauth2:https://google.com/|1
11|1|EXP:xxxxxxxxxxxxxxxxxxxxxxxxxxxx.oauth2:https://google.com/|xxxxxxx
Запишите номера идентификаторов, которые вы хотите удалить из приведенного выше вывода (т. е. строки, соответствующие приложению, которое вы хотите отозвать), а затем используйте следующие команды для удаления этих строк:
DELETE from extras where _id = 10
DELETE from extras where _id = 11
Скопируйте базу данных и файл журнала в исходное расположение. Убедитесь, что вы установили разрешения и права собственности на исходные. чтение/запись только для владельца и группы, а владельцы владельца и группы являются «системными». Для этой операции потребуется root-доступ!
Перезагрузите устройство, и вы должны были отозвать разрешение для приложения. Вы можете проверить это, попросив приложение снова запросить авторизацию. Если вы видите экран с просьбой авторизовать приложение («Приложение хочет получить доступ к вашей учетной записи Google… Разрешить/запретить?»), то вы успешно отозвали приложение.
Ссылки:
- https://groups.google.com/forum/#!topic/android-developers/3lQb83jeyE8
- https://github.com/jberkel/sms-backup-plus/issues/369
person
moo
schedule
28.01.2014