如何使用脚本来查询的android SQLite数据库 [英] How to use a script to query android sqlite database

查看:155
本文介绍了如何使用脚本来查询的android SQLite数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

安卓在一个数据库文件,该文件是 /data/data/com.android.providers.settings/databases/settings.db <保存的设置/ code>。

Android的使用 sqlite3的作为数据库。我们可以使用亚洲开发银行管理​​数据库文件。我想知道是否有一种方法能够运行在一个的Perl / Python的脚本来自动完成整个查询过程中的所有这些命令?

  $ ADB壳
$ sqlite3的/data/data/com.android.providers.settings/databases/settings.db
 

上面的命令将打开设置数据库。然后,你将进入sqlite3的命令行。

首先检查很多表是如何存在于数据库中。这里列出的结果。

 源码&GT; .tables

android_metadata书签gservices
bluetooth_devices收藏系统
 

(如volume_alarm)我想在系统表中的设置,一个使用.dump命令将列出表中的所有项目。

 源码&GT;使用.dump系统
BEGIN TRANSACTION;
CREATE TABLE系统(_id INTEGER PRIMARY KEY AUTOINCREMENT,名称文本独创On冲突替换值文本);
INSERT INTO系统VALUES(3,'volume_system','5');
INSERT INTO系统VALUES(4,volume_voice','4');
INSERT INTO系统VALUES(5,'volume_alarm','6');
.....
从系统中的名称='volume_alarm'$选择值;
选择值从系统中的名称='volume_alarm
6
$ .quit;
 

解决方案

要查询一个特定的值:

 亚行的shell sqlite3的/data/data/com.android.providers.settings/databases/settings.db,从系统选择值,其中name ='volume_alarm';
 

或者所有记录拉从一个表:

 亚行的shell sqlite3的/data/data/com.android.providers.settings/databases/settings.db中选择的名字,从系统的价值;
 

Android saved settings in a database file which is /data/data/com.android.providers.settings/databases/settings.db.

Android use sqlite3 as the database. We can use adb to manage the database file. I want to know if there is a way to run all these commands in a perl/python script to automate the whole query process?

$adb shell 
$sqlite3 /data/data/com.android.providers.settings/databases/settings.db 

The above command will open the settings database. Then you will enter into sqlite3 command line.

First check how many tables existed in the database. Here lists the result.

sqlite> .tables

android_metadata   bookmarks          gservices        
bluetooth_devices  favorites          system  

The settings (such as volume_alarm) I want to get are in "system" table, a .dump command will list all items in the table.

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;

解决方案

To query a specific value:

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select value from 'system' where name = 'volume_alarm';"

Or to pull all records from a table:

adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select name, value from 'system';"

这篇关于如何使用脚本来查询的android SQLite数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆