<p><code>Android</code>将设置保存在数据库文件中,即<code>/data/data/com.android.providers.settings/databases/settings.db</code>。</p>
<p>Android使用<code>sqlite3</code>作为数据库。我们可以使用<code>adb</code>来管理数据库文件。我想知道是否有办法在<code>perl/python</code>脚本中运行所有这些命令来自动化整个查询过程?</p>
<pre><code>$adb shell
$sqlite3 /data/data/com.android.providers.settings/databases/settings.db
</code></pre>
<p>以上命令将打开设置数据库。然后进入sqlite3命令行。</p>
<p>首先检查数据库中有多少表。这里列出了结果。</p>
<pre><code>sqlite> .tables
android_metadata bookmarks gservices
bluetooth_devices favorites system
</code></pre>
<p>我想得到的设置(如音量警报)在“系统”表中,一个.dump命令将列出表中的所有项。</p>
<pre><code>sqlite> .dump system
BEGIN TRANSACTION;
CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
INSERT INTO "system" VALUES(3,’volume_system’,’5′);
INSERT INTO "system" VALUES(4,’volume_voice’,’4′);
INSERT INTO "system" VALUES(5,’volume_alarm’,’6′);
.....
$ select value from system where name ='volume_alarm';
select value from system where name ='volume_alarm'
6
$.quit;
</code></pre>