- 127|shell@android:/ $ cd /data
- cd /data
- shell@android:/data $ ls
- ls
- opendir failed, Permission denied
你是没有权限的。
正确使用adb读取data目录下的文件方式
[plain] view plain copy
- 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中,这样就可以正常访问了!
参考资料
Read Android Data Folder Without Rooting
对文件进行增删
法1:
-
adb shell "run-as package.name chmod 666 /data/data/package.name/databases/file"
-
adb pull /data/data/package.name/databases/file .
-
adb shell "run-as package.name chmod 600 /data/data/package.name/databases/file"
UPDATE
the command for Android 5.0+ to save /data/data/package.name/databases/file would be:
adb exec-out run-as package.name cat databases/file > file
法2:
-
> adb shell
-
shell $ run-as com.example.package
-
shell $ chmod 666 databases/file
-
shell $ exit ## exit out of 'run-as'
-
shell $ cp /data/data/package.name/databases/file /sdcard/
-
shell $ run-as com.example.package
-
shell $ chmod 600 databases/file
-
> adb pull /sdcard/file .