我使用adb和以下命令连接到我的live设备:
C:\>adb -s HT829GZ52000 shell
$ ls
ls
sqlite_stmt_journals
cache
sdcard
etc
system
sys
sbin
proc
logo.rle
init.trout.rc
init.rc
init.goldfish.rc
init
default.prop
data
root
dev
$ cd data
cd data
$ ls
ls
opendir failed, Permission denied
Run Code Online (Sandbox Code Playgroud)
我惊讶地发现我有访问被拒绝.为什么我不能使用这样的命令行浏览目录?
如何在手机上获得root访问权限?
我目前正在开发适用于Android的WiFi应用程序.我在尝试访问设备上的数据库时遇到问题.模拟器中的调试对我不起作用,因为模拟器中没有WiFi支持.我尝试使用将数据库文件从设备中拉出来
adb pull data/data/package-name/databases/database-name
Run Code Online (Sandbox Code Playgroud)
但我收到错误"Permission denied.".在这个答案Android:数据库文件存储在哪里?,Commonsware建议通过在调试模式下运行来提取数据库文件.但它也不起作用.任何有关如何调试数据库而不需要设备生根的帮助将非常感激.
我试图从代码中获取应用程序的debuggable属性值:
packageInfo = context.getPackageManager().getPackageInfo(packageName, 0);
int flags = packageInfo.applicationInfo.flags;
isDebugMode = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
Run Code Online (Sandbox Code Playgroud)
我注意到,当清单中未指定debuggable属性时,此代码将其定义为true.文档说它默认是假的.
怎么了?
我可以在我的模拟器中使用adb shell命令访问我的sqlite数据库.但我的HTC Desire手机无法做到这一点.它抛出一些权限被拒绝的消息.有没有可能访问这些数据库用于调试目的.任何的想法?
提前致谢.