我使用adb和以下命令连接到我的活动设备:

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

我惊讶地发现,我的访问被拒绝了。为什么我不能像这样使用命令行浏览目录呢?

我如何获得我手机的根权限?


当前回答

没有根设备,您可以通过以下方式访问文件 cmd截图:

根据您的用户使用CMD从platform-tools文件夹启动adb cd C:\Users\ YourUserName \ AppData \本地Android \ \ sdk \平台工具 它可以在另一个文件夹中,这取决于您安装它的位置。 显示工作设备。 亚洲开发银行设备 对于命令的响应操作系统 所附设备清单 0123456789六边形abcdef设备 编写命令 adb -s 0123456789ABCDEF shell“su” 它会打开 root@theDeviceName: / #

4.访问文件,列出所有文件

ls

等等,将目录更改到其他任何位置,如数据文件夹

cd data/data

其他回答

你的电话应该是固定的。这是重要的一步! 转到adb文件位置,并以该位置的管理员身份启动命令提示符 执行以下命令:

adb shell
run-as com.domain.yourapp 

这将要求root访问你的手机,允许它。

您将能够使用根访问权限浏览文件。 谢谢!

$ adb shell

$ CD /data

$ ls

opendir失败,权限被拒绝


你应该这样做:

$ adb shell

$ cd /data

shell@android:/data $ run-as com.your.package 

shell@android:/data/data/com.your.package $ ls

OK!

在我们开始之前,你有手机吗?如果不是,我强烈建议你是时候跳槽了。99%的教程都要求你有一个root手机(我知道b/c我花了大约一个小时的时间来寻找一个没有root手机的方法。如果你仔细想想,你的iPhone也必须扎根才能完成同样的任务。所以这是完全合理的。更多关于在答案末尾进行根的内容。

从你的命令行输入:

adb shell

这将把你带到你的android shell命令行(你应该看到类似这样的东西:shell@android:/ $ now键入:

shell@android:/ $run-as com.domain.yourapp

这将直接带你到com.domain.yourapp的数据目录:

shell@android:/data/data/com.domain.yourapp $ 

如果它没有(即如果你得到一个错误),那么你可能没有根电话,或者你没有使用你的根用户特权。要使用您的根用户权限,在adb命令行上键入su,看看会发生什么,如果您得到一个错误,那么您的电话不是根用户。如果不是,请先将其根化,然后继续执行这些说明。

从那里你可以输入ls,你会看到所有的目录,包括dbs:

shell@android:/data/data/com.domain.yourapp $ ls

cache
databases
lib
shared_prefs   

之后,您可以使用sqlite3来浏览dbase..如果你没有安装它(你可以通过输入sqlite3找到它,如果你没有找到命令,那么你必须安装它。要安装sqlite,请遵循此处的说明。

关于根:如果你以前从未给你的手机根过根,你担心它会弄坏你的手机,我可以满怀信心地告诉你,没什么好担心的。有大量的快速和简单的手机根教程,几乎所有的新老型号在那里,你可以根你的手机,即使你有mac(我用我的mac根我的s3)。

如果你想浏览设备上的所有内容,有两件事需要记住。

你需要有一个具有root权限的手机,以便浏览Android手机上的数据文件夹。这意味着你要么有一个开发设备(ADP1或谷歌I/O的ION),要么你已经找到了一种方法来“根”你的手机。 你需要在根模式下运行ADB,执行:ADB root

当您处于该设备的shell目录时。你就跑

su - root

然后,您应该能够访问数据/文件夹。