在adb shell中直接使用sqlite3命令操作数据库
2016-01-30 15:03
162 查看
在adb shell中直接使用sqlite3命令操作数据库
一般,手机在开发阶段都是会将sqlite3模块打入镜像。例如在安卓5.1中,路径为/system/xbin/sqlite3。(但对于普通手机,不一定能自带此模块,因此此文只针对于手机研发阶段调试)
首先查看手机中sqlite3文件是否存在,若存在才可在adb shell下直接使用sqlite3命令:
示例:更改系统设置数据库中的设置项:Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED
(这个设置项是安卓5.1系统新加入的是否对接入网络进行判断,判断网络连接的有效性)
~ 在framework源码中进行搜索可以得知base/core/java/android/provider/Settings.java中的定义CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
~ 进入settings的provider目录下:
cd /data/data/com.android.providers.settings/databases
数据库操作开始:
sqlite3 settings.db命令进入sqlite操作界面,使用.tables命令查看此数据库中的表:
select查看global表中的数据:
select * from global;
从上图中可以看到,没有显示字段名,假如我们并不知道其字段名,可以使用.header on开启显示字段名:
显示字段名之后,进行查询目标记录:
sqlite> select * from global where name='captive_portal_detection_enabled';
现在值为1,用update命令对其进行更改:
sqlite> update global set value='0' where name='captive_portal_detection_enabled';
可以看到已经更改。value字段的值已经更改为0。成功!
对于Framework调试,或许这样的修改方式可以帮助你在开发调试阶段、以不修改软件代码的前提下进行一些跟系统设置相关联的测试(对于无法在设置应用中进行设置的项)。
当然,对于所有provider应用、对db进行增删改查都可以使用sqlite3命令进行维护。
一般,手机在开发阶段都是会将sqlite3模块打入镜像。例如在安卓5.1中,路径为/system/xbin/sqlite3。(但对于普通手机,不一定能自带此模块,因此此文只针对于手机研发阶段调试)
首先查看手机中sqlite3文件是否存在,若存在才可在adb shell下直接使用sqlite3命令:
示例:更改系统设置数据库中的设置项:Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED
(这个设置项是安卓5.1系统新加入的是否对接入网络进行判断,判断网络连接的有效性)
~ 在framework源码中进行搜索可以得知base/core/java/android/provider/Settings.java中的定义CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
~ 进入settings的provider目录下:
cd /data/data/com.android.providers.settings/databases
数据库操作开始:
sqlite3 settings.db命令进入sqlite操作界面,使用.tables命令查看此数据库中的表:
select查看global表中的数据:
select * from global;
从上图中可以看到,没有显示字段名,假如我们并不知道其字段名,可以使用.header on开启显示字段名:
显示字段名之后,进行查询目标记录:
sqlite> select * from global where name='captive_portal_detection_enabled';
现在值为1,用update命令对其进行更改:
sqlite> update global set value='0' where name='captive_portal_detection_enabled';
可以看到已经更改。value字段的值已经更改为0。成功!
对于Framework调试,或许这样的修改方式可以帮助你在开发调试阶段、以不修改软件代码的前提下进行一些跟系统设置相关联的测试(对于无法在设置应用中进行设置的项)。
当然,对于所有provider应用、对db进行增删改查都可以使用sqlite3命令进行维护。
相关文章推荐
- 理解 bashrc 和 profile
- xshell 5连接linux服务器的技巧
- shell环境变量配置文件-L64
- 统计文件中单词的个数---Shell及python版
- Windows PowerShell
- shell变量中再包含变量的情况!
- Linux Shell编程进阶案例实战(三)
- Linux Shell零基础案例实战(二)
- linux shell编程零基础入门
- 企业Shell实战-MySQL分库分表备份脚本
- shell脚本(输出每个内存条的信息)
- 理论: 博弈2: 巴什博奕(Bash Game)
- Linux Bash 通配符
- 使用Shell 脚本防止SSH暴力破解
- Linux Bash 的基本功能 管道符
- Linux Bash的基本功能 输出重定向
- Linux 标准Shell Bash 的基本功能
- Linux 脚本执行方式 (Shell基础)
- SQL to mongo Shell to C++
- 【转载】MySQL被慢sql hang住了,用shell脚本快速清除不断增长的慢sql的办法