Potatotips 2015/05/13 @cattaka_net
SQLiteDatabaseを無理矢理覗く
〜開発中だからできる荒技〜
Takao Sumitomo
@cattaka_net
Potatotips 2015/05/13 @cattaka_net
自己紹介
● 住友 孝郎(Takao Sumitomo)
● Androidアプリ開発者
● その他
● 電子工作
● OpenCV
● ウォンテッドリー株式会社所属
Potatotips 2015/05/13 @cattaka_net
AndroidってSQLiteが使えるよね
Potatotips 2015/05/13 @cattaka_net
デバイス内のDBを
確認したいときあるよね
Potatotips 2015/05/13 @cattaka_net
手段
● DBが閲覧できるアプリを使う
● DBファイルをpullして使う
● adbでrun-as shellで入ってsqliteコマンドで開く
● IntelliJのプラグインを使う
Potatotips 2015/05/13 @cattaka_net
たまに使えないデバイスがある
$ run-as net.cattaka.mufwatch
run-as: Package 'net.cattaka.mufwatch' is unknown
存在しているパッケージなのに・・・
Potatotips 2015/05/13 @cattaka_net
そういうデバイスに限って
機種依存でバグる
Potatotips 2015/05/13 @cattaka_net
もう少しスマートにできないか・・・
Potatotips 2015/05/13 @cattaka_net
というわけで思いついた
Potatotips 2015/05/13 @cattaka_net
というわけで作ってみた
● 1つのJavaファイルで作られたサービス
● これをアプリの起動時に開始させる
● つまり開発用バックドア
アプリ
バックドア
Telnet
DB 覗く
Potatotips 2015/05/13 @cattaka_net
Telnetで繋いでSQLが叩ける
$ telnet localhost 12080
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
data.db
S
$
select * from checkListEntry
S1
+id,title,sort,starFlag
-1,携行品,1,
$
Potatotips 2015/05/13 @cattaka_net
使い難い・・・
Potatotips 2015/05/13 @cattaka_net
というわけでクライアントも作った
● 自作のSQLエディタ(RdbAssistant)を接続
● Pure Java
● 元々は仕事用の俺得ツール
Potatotips 2015/05/13 @cattaka_net
DEMO
https://youtu.be/QiGnZH0YOvs
Potatotips 2015/05/13 @cattaka_net
まとめ
● AndroidはServerSocketが使える
● バックドアが簡単に作れる
● 痒いところは自分でツールを作れる
● SQLiteDatabase
● GCM
● Bluetooth
Potatotips 2015/05/13 @cattaka_net
Qiita TelnetSqliteで検索
Potatotips 2015/05/13 @cattaka_net
ご清聴ありがとうございました
Takao Sumitomo
@cattaka_net

SQLiteDatabaseを無理矢理覗く