Android真机没有sqlite3数据库的解决办法

本文详细介绍如何在安卓真机上部署SQLite3数据库,包括获取root权限、使用adb命令进行系统分区挂载、推送SQLite3二进制文件至手机的过程及解决遇到的常见问题。
  • 在我们在安卓真机上做sqlite3的时候,会发现很多手机是不内置sqlite3的,这个时候我们需要自行下载传送到手机上

  • 默认读者的手机拥有root权限并有类似终端模拟器的交互窗口获取root权限

      uname -a//在终端中输入,寻找自己的系统版本号
    
  • 对应自己的版本号,可以在 https://github.com/tech128/sqlite3 寻找自己的对应的sqlite3数据库,一定要对应好否则将不能正常运行,若是此处找不到,可根据自己的uname在github上搜寻对应的sqlite3

  • 由于我们需要把sqlite3的二进制程序传送到/system/xbin内,所以应该将/system以可读写的方式重新挂载,默认是只读的

      在DOS中转到adb的目录下,我的是C:\Program Files (x86)\Android\android-sdk\platform-tools
      adb root //执行命令,让adb获取root权限,前提是手机开启了root权限并在开发者模式打开USB调试
      adb remount //(为系统文件/system, /vendor,/oem加上读写权限)
      有的会出现挂载设备忙的问题(busy)导致这一步失败
      解决方案:
      adb disable-verity
      adb reboot之后就能够remount成功,
    

但是adb disable-verity具体做了什么呢?
官方给出adb disable-verity的解释是这样的:disable dm-verity checking on USERDEBUG builds
大致意思就是不使用dm-verity验证userdebug版本.可以理解为userdebug版本有些system分区被verity标识.
所以会出现上述错误是因为某些分区被系统标识,必须要验证数据签名,我们只需要忽略验证就行了.
上面可以看到签名是否需要验证主要是由dm-verity决定的,那它又做了什么呢?
它的作用和工作流程可以移步 http://blog.youkuaiyun.com/u011280717/article/details/51867673

remount成功之后就可以把sqlite3传入手机了

remount的另一种方式执行mount | grep /system
看到下面这个/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel…
这个ro就是Read-Only只读的意思继续执行命令
mount -o remount,rw -t ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system
这种方式是在adb shell中执行,可以找到/system分区的具体挂载设备(有差异,根据情况变更)

adb push E:\sqlite3 /system/xbin
adb shell //进入shell确认sqlite3是否在qizhong
sqlite3 //试试运行是否成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moresweet猫甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值