本文共 1033 字,大约阅读时间需要 3 分钟。
前言
正文
一、关键步骤
主要是run-as命令:(使用run-as命令有一个前提,就是这个package要在编译时设置为debuggable,所以它并不能代替root...)代码说明:
注意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
三、参考文件
结束
关于共享数据也可以研究一下/data/data/package/files,使用openFileOutput的第二个参数来指定访问权限。事物总有其多面性,本文有鼓励窥视apk之嫌,方法分享给你,至于你用来做什么我可以管不了了 :) 也算是一种黑客精神,提醒大家开发应用时切勿对重要的数据明文存放。