設定データ

設定データを閲覧・編集してみる。


Android は設定データを sqlite 管理しているらしい。

そこで、Ubuntu側にも sqlite3 をインストールして中身を見てみる。
$ sudo apt-get install sqlite3
以上で事前準備完了。

次は実機からPCにデータを転送する
$ adb pull /data/data/com.android.providers.settings/databases
$ ls
settings.db
$
の様にファイルが出来れば完了。その他のアプリケーションの設定データなども取れるかと思う。

PCで settings.db の中身を見てみる。
$ sqlite3 settings.db
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
次は、settings.db 内にあるデータベーステーブルを全て見てみる。
sqlite> .tables
android_metadata   bookmarks          system           
bluetooth_devices  secure
system テーブルを選択して全カラムを表示。
sqlite> select * from system;
1|volume_music|11
2|volume_ring|5
(省略)
135|screen_brightness|255
137|device_provisioned|1
142|next_alarm_formatted|
の様に出てくる。
sqlite3 の終了は、
sqlite> .quit
$
となる。

ここからが本題、sqlite3のプロンプトで SQL もどきを打っても良いのだが、
かなり面倒なので、一気にバックアップを取る。
$ echo ".dump" | sqlite3 settings.db > settings_db_backup.txt
以上で、テキストベースで一気にバックアップが取れる。

取得した、 settings_db_backup.txt を確認したり、編集したりする。
ほぼ、sqlite> のコマンドプロンプトから入力するSQL文でバックアップされているので、
編集も簡単だと思う。

一端 settings.db を削除して、編集結果を利用し一気に再構築する。
$ rm settings.db
$ sqlite3 settings.db < settings_db_backup.txt

テーブル単位で行いたい場合は、settings.db を削除せず、
settings_db_backup.txt をテキストファイルで開き、該当部分を抜き出し、
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE (省略)
(省略)
CREATE INDEX (省略)
COMMIT;
を、たとえば、edit.txt の様に保存する。

一端、該当テーブルをデータベースから削除する。
$ sqlite3 settings.db
sqlite> DROP TABLE system;
sqlite> VACUUM;
(sqlite>以降の項目を edit.txt に追加しても良いだろうと思う。)

settings.db に書き戻す。
$ sqlite3 settings.db < edit.txt

できあがった、settings.db を実機に push する。
設定次第では、実機が起動に失敗するかもしれないので注意する事。
$ adb push settings.db /data/data/com.android.providers.settings/databases/
一応、own,modを戻しておく。(コマンドをフルパス指定しているのは、busyboxをsbinに入れている事があるため)
$ adb shell /system/bin/chmod 660 /data/data/com.android.providers.settings/databases/settings.db
$ adb shell /system/bin/chown system.system /data/data/com.android.providers.settings/databases/settings.db

完了。

間違いなど有りましたらコメント頂けると幸いです。
名前:
コメント:














最終更新:2011年01月01日 13:43
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。