不Root,有办法通过adb工具读写手机/data免root查看根目录data吗

2013年10月 移动开发大版内专家分月排行榜第三
2013年10月 移动开发大版内专家分月排行榜第三
2012年12月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。14855人阅读
Android(71)
使用adb命令时的错误
如果直接使用adb命令会产生以下错误:
127|shell@android:/ $ cd /data
shell@android:/data $ ls
opendir failed, Permission denied你是没有权限的。
正确使用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
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中,这样就可以正常访问了!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:423645次
积分:5826
积分:5826
排名:第3514名
原创:192篇
评论:165条
(1)(1)(1)(4)(1)(1)(1)(1)(1)(1)(1)(2)(1)(1)(2)(1)(1)(2)(2)(1)(2)(5)(1)(1)(1)(4)(4)(2)(4)(2)(4)(6)(15)(10)(28)(4)(9)(14)(7)(6)(11)(5)(7)(16)(5)在不root手机的情况下读取Data目录下的文件
我的图书馆
在不root手机的情况下读取Data目录下的文件
使用adb命令时的错误
如果直接使用adb命令会产生以下错误:
127|shell@android:/&$&cd&/data&&cd&/data&&shell@android:/data&$&ls&&ls&&opendir&failed,&Permission&denied&&你是没有权限的。
正确使用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中,这样就可以正常访问了!
发表评论:
TA的最新馆藏  一、关键步骤
    主要是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所使用的方式。
& & & & &如果签名了并且指定设置了android:debuggable="false"将无法使用该命令。&
& & & & &感谢网友分享(见评论),注意不要把adb shell 和 run-as作为一条命令一起执行,例如:adb shell run-as com.pack
  三、参考文件     [blogspot]     
关于共享数据也可以研究一下/data/data/package/files,使用openFileOutput的第二个参数来指定访问权限。事物总有其多面性,本文有鼓励窥视apk之嫌,方法分享给你,至于你用来做什么我可以管不了了 :) 也算是一种黑客精神,提醒大家开发应用时切勿对重要的数据明文存放。
阅读(...) 评论()2495人阅读
Android(15)
如果直接使用adb命令会产生以下错误:
你是没有权限的。
正确使用adb读取data目录下的文件方式
将你要访问的package目录下的db文件拷贝到sdcard中,这样就可以正常访问了!
对文件进行增删
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&
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
& 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 .
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:111050次
积分:2131
积分:2131
排名:第14780名
原创:59篇
转载:267篇
(1)(3)(6)(5)(27)(13)(8)(7)(17)(1)(1)(3)(3)(1)(1)(4)(1)(7)(10)(16)(41)(14)(18)(9)(8)(8)(23)(37)(29)(6)}

我要回帖

更多关于 adb挂载读写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信