Android系统在没开root权限时读取Data目录的文件

使用条件
app是可调试状态
在没root手机的情况下读取Data目录下的文件

1.使用adb命令时的错误
如果直接使用adb命令会产生以下错误:

127|shell@android:/ $ cd /data
cd /data
shell@android:/data $ ls
ls
opendir failed, Permission denied      #你是没有权限的。

2.正确使用adb读取data目录下的文件方式

shell@android:/data $ run-as com.your.package
run-as com.your.package
shell@android:/data/data/com.your.package $ cd /data/data/com.your.package
cd /data/data/com.your.package
shell@android:/data/data/com.your.package $ ls
ls
cache
databases
lib
shared_prefs
shell@android:/data/data/com.your.package $ cd databases
cd databases
shell@android:/data/data/com.your.package/databases $ ls
yourpackagename.db
$ cat preferences.db > /mnt/sdcard/yourpackagename.db

将你要访问的package目录下的db文件拷贝到sdcard中,这样就可以正常访问了!

3.对于第三方apk
使用反编译工具反编译后在AndroidMainfest.xml加上可调试:
android:debuggable=”true”,再回编成apk,再安装进手机即可使用run-as。

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:debuggable="true">

发表评论

滚动至顶部