実機内のsqlite3の中身を確認する

androidの実機内には、sqlite3 のデータベースが存在する。

shell@android:/sdcard # ls -al /data/system/*db*                               
-rw-rw---- system   system      48128 2011-12-18 19:53 accounts.db
-rw------- system   system          0 2011-12-18 19:53 accounts.db-journal

パソコンでエミュレータを起動して、エミュレータ内のsqlite3のバイナリをパソコン上へ。

$ emulator @icecreamsandwich
$ adb shell
(ここからエミュレータ内)
$ adb push /system/xbin/sqlite3 ~/

パソコン上にsqllite3バイナリを抽出できたら、
それを実機内SDカードに置いたあと、実機内で所定の位置へ。

shell@android:/sdcard # mount -o remount,rw /system
shell@android:/sdcard # cp sqlite3 /system/xbin/                               
shell@android:/sdcard # chmod 777 /system/xbin/sqlite3

先ほどのデータベースファイルにsqlite3に接続する。

shell@android:/sdcard # sqlite3 /data/system/accounts.db                   
SQLite version 3.7.4
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
accounts          authtokens        grants          
android_metadata  extras            meta 
sqlite> select * from accounts;
1|***@gmail.com|com.google|1/暗号化してBase64エンコードしたパスワード
2|***|com.skype.contacts.sync|33456
3|***@gmail.com|com.endomondo.android.account|暗号化してBase64エンコードしたパスワード
4|***@gmail.com|com.google|1/暗号化してBase64エンコードしたパスワード
5|***@gmail.com|com.google|1/暗号化してBase64エンコードしたパスワード
6|***00@hotmail.co.jp|com.google|1/暗号化してBase64エンコードしたパスワード

OSレベルに設定する同期アカウントはここに登録されている。