在不root手机的情况下读取Data目录下的文件
2013-02-03 14:25
411 查看
如何把/dada/dada/cn.com.fetion/databases/xxx.db 变为可读可写的所有权限:
修改结果:
首先机子已Root,应用也获得Root权限,结果执行的时候还是报的 “ 打开数据库失败”。。。
答案:
复制出来再打开 用java的 Runtime.getRuntime().exec
执行以下代码
su -
cp /data/data/com.xxx.xxx/database/xxx.db /scard/ xxx.db
然后到scard打开xxx.db再打开。
另一种方法:修改/data/data/com.xxx.xxx/database的读取权限和xxx.db的权限。也是用以上的方法去执行
su -
chomd 777 /data/data/com.xxx.xxx/database
使用adb命令时的错误
如果直接使用adb命令会产生以下错误:[plain] view
plaincopy
127|shell@android:/ $ cd /data
cd /data
shell@android:/data $ ls
ls
opendir failed, Permission denied
你是没有权限的。
正确使用adb读取data目录下的文件方式
[plain] viewplaincopy
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如果不通过root权限可读取data/data目录下的文件
public void execMethod(){ String line =""; String args[] = new String[3]; args[0] = "chmod"; args[1] = "777"; args[2] ="/data/data/com.eoemobile/databases/webviewCache.db"; try { Process process = Runtime.getRuntime().exec(args); //get the err line InputStream stderr = process.getErrorStream(); InputStreamReader isrerr = new InputStreamReader(stderr); BufferedReader brerr = new BufferedReader(isrerr); //get the output line InputStream outs = process.getInputStream(); InputStreamReader isrout = new InputStreamReader(outs); BufferedReader brout = new BufferedReader(isrout); String errline = null; String result = ""; // get the whole error message string while ( (line = brerr.readLine()) != null) { result += line; result += "\n"; } if( result != "" ) { // put the result string on the screen } // get the whole standard output string while ( (line = brout.readLine()) != null) { result += line; result += "\n"; } if( result != "" ) { System.out.println(result); } }catch(Throwable t) { t.printStackTrace(); } }
相关文章推荐
- 在不root手机的情况下读取Data目录下的文件
- Android Studio ——在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 在不root手机的情况下读取Data目录下的文件
- 有没有方法在不root手机的情况下读取Data目录下的文件
- 已root手机在DDMS下无法读取data目录的解决办法
- [置顶] Android - 利用Android studio + Android Killer工具在手机未ROOT情况下,拿取data/data目录下的数据
- 读取文件权限出错,目录文件D:/wwwroot/data/module/modulescache.php不可写!
- 怎么在Android手机没root的情况下读取手机系统文件(比如数据库文件)
- 已root手机在DDMS下无法读取data目录的解决办法
- Android SQLIte 介绍 及 导入db文件到app的/data目录时手机需要root
- 刷新手机的外置内存,即重新读取手机指定目录,以便识别内存文件
- Android手机root后push一个文件到系统目录时报错adbd cannot run as root in production builds
- [Android]利用run-as命令在不root情况下读取data下面的数据
- 怎样向android手机/data/data/package_name/目录下拷贝文件