[Android]利用run-as命令在不root情况下读取data下面的数据

Posted 楠来风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Android]利用run-as命令在不root情况下读取data下面的数据相关的知识,希望对你有一定的参考价值。

正文

  一、关键步骤

  主要是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所使用的方式。

  2012-6-14

  如果签名了并且指定设置了android:debuggable="false"将无法使用该命令。 


  三、参考文件
  android上使用手機跑adb存取data資料夾[blogspot]
  Why do I get access denied to data folder when using adb?


  结束

  关于共享数据也可以研究一下/data/data/package/files,使用openFileOutput的第二个参数来指定访问权限。事物总有其多面性,本文有鼓励窥视apk之嫌,方法分享给你,至于你用来做什么我可以管不了了 :) 也算是一种黑客精神,提醒大家开发应用时切勿对重要的数据明文存放。

以上是关于[Android]利用run-as命令在不root情况下读取data下面的数据的主要内容,如果未能解决你的问题,请参考以下文章

.Net MAUI 'run-as' 命令失败,出现'run-as:无法设置功能:不允许操作

run-as 包 'a.b.c' 未知 - Galaxy S4 Jellybean 或 Android 4.3

Xamarin Android 错误 XA0136 部署错误

如何从android应用程序导出数据库?使用 ADB run-as 清空数据库结果

Android开发中查看未root真机的app数据库

解决run-as: Package '' is unknown