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

一、关键步骤

    主要是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"将无法使用该命令。 

    2012-7-13

        感谢网友分享(见评论),注意不要把adb shell 和 run-as作为一条命令一起执行,例如:adb shell run-as com.pack

三、参考文件
    android上使用手機跑adb存取data資料夾[blogspot]

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

本文转自博客园农民伯伯的博客,原文链接:[Android]利用run-as命令在不root情况下读取data下面的数据,如需转载请自行联系原博主。


上一篇:第二次随笔


下一篇:你需要的不是大数据——而是正确的数据