Nexus One/SでもshellでSQLiteが使いたい。

AndroidならみんなSQLiteがデフォルトで入っているのかと思ったらそうでもないらしい。

$ su
$ sqlite3
sqlite3: not found

でもちょっとがんばれば使えるようになった。のメモ

ご覧のとおり、rootは既にとってある。

手順

sqlite3を手に入れる

sqlite3を入れるんだからAndroid向けのsqlite3をまず手に入れなければならない。

何やらエミュレータの仮想デバイスには入ってるらしいのでそっから持ってくる。

$ android create avd --name Android22 --sdcard 512M
$ emulator @Android22 &
$ adb shell
# ls /system/xbin/sqlite3
/system/xbin/sqlite
# exit
$ pull /system/xbin/sqlite3 sqlite3

sqlite3を入れる

とりあえずエミュレータを落として実機を接続。

SDカードに入れる。

$ adb push sqlite3 /sdcard/

あとはこいつをxbinに移すだけ。

$ adb shell
# su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# mv /sdcard/sqlite3 /system/xbin/sqlite3
failed on '/sdcard/sqlite3' - Cross-device link

mvだとリンクを張り替えるだけなのでSDカードからできないのは当然だった。だから続きで、

# cat /sdcard/sqlite3 > /system/xbin/sqlite3
# sqlite3
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite > .quit
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
# exit

おわり。

Post a Comment

Your email is never shared.

引く

PageTop