[Android]利用run-as命令在不root情况下读取data下面的数据

  前言

  这一段时间都在做换肤功能,遇到很多问题,解决后又有新的问题,这里分享一则,想在不使用shareUserId来实现多APK共享资源,也建议谨慎使用shareUserId。

  正文

  一、关键步骤

  主要是run-as命令:

  over@over-ThinkPad-R52:~$ adb shell

  $ run-as com.package

  $ cd /data/data/com.package

  $ ls

  databases

  lib

  $ cd databases

  $ ls

  preferences.db

  $ cat preferences.db > /mnt/sdcard/preferences1.db

  代码说明:

  注意com.package换成自己的完整包名,关键是run-as命令,最后使用cat命令把数据库拷贝到sd卡下面。

  二、补充

  同事分享/data/data/package/lib这个目录是可以直接访问的,也就是说adb shell后虽然无法读取/data目录,但是可以直接访问这个目录下的文件,可以通过上面的run-as命令看得出其权限与其他目录的权限是不同的,为system权限,这为多apk共享so提供了便利,这也是Vitamio所使用的方式。

  2012-6-14

  如果签名了并且指定设置了android:debuggable="false"将无法使用该命令。

  三、参考文件

  android上使用手機跑adb存取data資料夾[blogspot]

  Why do I get access denied to data folder when using adb?

  结束

  关于共享数据也可以研究一下/data/data/package/files,使用openFileOutput的第二个参数来指定访问权限。事物总有其多面性,本文有鼓励窥视apk之嫌,方法分享给你,至于你用来做什么我可以管不了了 :) 也算是一种黑客精神,提醒大家开发应用时切勿对重要的数据明文存放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值