考慮しなければならない2つのケースがあります。
- サーバー側認証
- Androidアカウントマネージャー(デバイス側)認証
ケース1:Googleアカウントのサーバー側の失効は、 https://accounts.google.com/IssuedAuthSubTokensで実行できます。
対応するGoogleアカウントでログインし、アプリ/ウェブサイトを取り消すことを選択する必要があります
ケース2:Androidデバイスで、「アプリケーションがGoogleアカウントにアクセスしようとしています...許可/拒否しますか?」のような画面が表示された場合、これはsqlite3を変更する必要があるアカウントマネージャータイプの認証です。アプリケーションを取り消すための携帯電話のデータベース(ケース1ほど簡単ではなく、これには携帯電話へのルートアクセスが必要です):
私。まず、データベースとジャーナルファイル(accounts.dbとaccounts.db-journal)を別の場所(SDカードまたはコンピューターなど)にコピーします。データベースファイルは、Androidデバイスの次のディレクトリにあります。
/data/system/users/0/accounts.db
/data/system/users/0/accounts.db-journal
ii。ここで、sqlite3エディターが必要です。GooglePlayストアのSqliteDebuggerを使用しました。または、 http: //www.sqlite.org/download.htmlのsqlite3バイナリを使用して、コンピューターでこれを実行することもできます。
iii。あなたは、accounts.dbデータベースの「extras」テーブルの特定のエントリを削除するためにエディタを使用する必要があることを知っています。sqliteコマンドの簡単なチュートリアルを受講することをお勧めしますが、ここにいくつかの例があり、「SqliteDebugger」を使用すると簡単に学ぶことができます。
まず、エディターでaccounts.dbファイルを開きます
テーブル「extras」のすべての行を一覧表示するには、次のコマンドを使用できます。
SELECT * from extras
取り消すアプリケーションに対応するテーブル「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
上記の出力から削除するID番号(つまり、取り消すアプリに対応する行)をメモしてから、次のコマンドを使用してそれらの行を削除します。
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