我连接到使用亚行及以下命令我的直播设备:
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
我很惊讶地看到,我已经拒绝访问。 为什么我不能用周围像这样的命令行的目录浏览?
我如何得到我的手机root权限?
Answer 1:
有两件事情要记住,如果你想浏览您的设备上的所有内容。
- 你需要有root访问一个电话,以浏览在Android手机上的数据文件夹。 这意味着要么你有一个开发设备( ADP1或ION从谷歌I / O),或者你已经找到一种方法,以“根”您的手机一些其他的方式。
- 你需要运行在根模式ADB,通过执行此操作:
adb root
Answer 2:
从API级别8(安卓2.2)开始,在调试的应用程序(一个由Android Studio创建,除非所有的时候,被请求的发布版本),你可以使用shell run-as
命令来运行一个命令或可执行文件作为特定用户/应用程序或只需切换到您的应用程序的UID,所以你可以访问其数据目录。
yourapp的列出目录内容:
run-as com.yourapp ls -l /data/data/com.yourapp
切换到com.yourapp的UID和运行使用该uid所有进一步命令(直到调用exit
):
run-as com.yourapp
cd /data/data/com.yourapp
ls -l
exit
注1:有一个已知的问题与一些的HTC Desire手机。 因为非标准所有者/所述的权限/data/data
目录下, run-as
命令未能在这些手机上运行。
注2:由于@Avio在评论中指出: run-as
也有问题,在任何版本(从7到10.1)上运行的CyanogenMod三星Galaxy S手机,因为在这个平台上/data/data
是一个符号链接到/datadata
。 解决这个问题的方法之一是用实际目录(可惜这通常需要root访问权限)来代替符号链接。
Answer 3:
我们开始之前,你有一个根深蒂固的手机吗? 如果没有,我强烈建议,现在是时候让你跳。 可以帮助你做到这一点需要你有一个根深蒂固的手机教程的99%(我知道B / C我花了大约一个小时寻找一种方式来做到这一点,而无需一个根深蒂固的手机..找不到任何.. )此外,如果你仔细想想,你的iPhone也必须扎根做这个相同的任务。 所以,这是完全合理的。 更多关于在回答结束生根。
从您的命令行中键入:
adb shell
这需要您将Android外壳COMAND行(你应该看到这样的事情: shell@android:/ $
现在键入:
shell@android:/ $run-as com.domain.yourapp
这应该直接带您到的数据目录com.domain.yourapp
:
shell@android:/data/data/com.domain.yourapp $
如果没有(也就是说,如果你得到一个错误),那么你可能没有一个根深蒂固的电话,或者你没有使用你的root用户权限。 要使用你的root用户权限,型su
亚行命令行,看看会发生什么,如果你得到一个错误,那么你的手机是不是植根。 如果它不是,它根先再继续这些指令。
从那里,你可以输入ls
,你会看到所有的目录,包括DBS:
shell@android:/data/data/com.domain.yourapp $ ls
cache
databases
lib
shared_prefs
后,您可以使用sqlite3的浏览与dBASE ..如果你没有安装它(您可以通过键入找到它sqlite3
,如果你command not found
,那么你就必须安装它。要安装源码,遵循说明这里 。
约生根:如果你从来没有扎根您的手机,和你担心它拧你的电话,我可以告诉你有充分的信心,没有什么可担心的。 还有的几乎所有新老车型快捷方便的手机生根教程吨那里, 即使你有一个苹果 (我扎根我的S3与Mac), 你可以用root您的手机 。
Answer 4:
$亚行外壳
$ CD /数据
$ LS
执行opendir失败,权限被拒绝
你应该做这个:
$ adb shell
$ cd /data
shell@android:/data $ run-as com.your.package
shell@android:/data/data/com.your.package $ ls
好!
Answer 5:
我曾试图在扎根三星Galaxy S.运营从电脑外壳发出命令时,类似的问题
> adb root
失败,提示信息“不能运行作为根生产建立”。 下面是一个简单的方法,它允许要成为根。
而不是以前的,发出以下两个命令一前一后
> adb shell
$ su
第一个命令后,如果提示已经从“>”改为“$”如上图所示,这意味着你已经进入了亚行的shell环境。 如果随后的提示已发出第二个命令后改为“#”,这意味着,你现在根本。 现在,作为root,你可以做任何你想要与您的设备。
要切换回“安全”的外壳,问题
# exit
您将看到提示“$”再次出现,这意味着你是在亚行的shell作为一个用户,而不是作为根。
Answer 6:
我有很多的麻烦,这也。 我还是不完全了解的许可和根运行,但这个工作对我来说,从/数据/数据/ [包名称] /databases/my_db.db拷贝数据库文件(以前的答案部分之一)。 跑在外壳因某种原因没有工作 ,或 ,也没有复制的数据库文件(我可以导航到该目录,虽然),也没有 。
所以,这个工作! 在DOS命令提示符下:
C:\Program Files\Android\android-sdk\platform-tools>adb shell
1|shell@android:/ $ run-as de.vogella.android.locationapi.maps
run-as de.vogella.android.locationapi.maps
1|shell@android:/data/data/de.vogella.android.locationapi.maps $ cd /data
cd /data
shell@android:/data $ cd data
cd data
shell@android:/data/data $ cd de.vogella.android.locationapi.maps
cd de.vogella.android.locationapi.maps
shell@android:/data/data/de.vogella.android.locationapi.maps $ cd databases
cd databases
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ ls
ls
bus_timetable_lines.db
bus_timetable_lines.db-journal
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $ cat bus
_timetable_lines.db > /sdcard/db_copy.db
bus_timetable_lines.db > /sdcard/db_copy.db <
shell@android:/data/data/de.vogella.android.locationapi.maps/databases $exit ^
exit
shell@android:/ $ exit
exit
C:\Program Files\Android\android-sdk\platform-tools>
现在去SD卡目录,让你的文件db_copy.db。 即使是被隐藏,但我设法通过电子邮件发送。 早在Windows中,我能打开数据库文件的SQLite数据库浏览器。 :)
Answer 7:
以下是两个步骤来获得root权限:
- Android设备必须植根。
- 在ADB壳,类型su和机器人设备将提示Y / N? 您可以选择允许。
Answer 8:
产品构建不能进入/ data / app中
drwxrwx--- system cache 1970-01-01 08:00 cache
drwxrwxr-x root system 1970-01-01 08:00 mnt
drwxrwx--x system system 1970-01-01 08:15 data
可能需要改变权利人进行操作。
Answer 9:
这个问题可能是,我们需要特意给在最新的CMS中的发展与开拓选项ADB root访问权限。这里是我做的。
ABC @ ABC-L655:〜$ sudo的ADB杀服务器
ABC @ ABC-L655:〜$ sudo的根亚行启动服务器*守护程序没有运行。 从现在开始它在端口5037 * *守护进程启动成功* root访问权限是由系统设置禁用 - 启用设置 - >开发选项
改变开发选项后...
abc@abc-L655:~$ sudo adb kill-server
abc@abc-L655:~$ sudo adb root start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
restarting adbd as root
abc@abc-L655:~$ adb shell
root@android:/ # ls /data/ .... good to go..
Answer 10:
如果您知道应用程序包,你可以cd
直接到该文件夹..
例如cd data/data/com.yourapp
这将下降到你是一个目录read/writable
,以便您可以根据需要更改的文件。 由于该文件夹是在同一个emulator
,你可以用它来获取的文件夹路径。
Answer 11:
如果你只是想看看你的数据库和表则esiest方法是使用Stetho
。 对于谁使用每一个Android开发者非常酷的工具SQLite
BUIT通过Facobook developed
。
Steps to use the tool
- 下面添加dependeccy在application`s gradle这个文件(模块:APP)
“编译 'com.facebook.stetho:stetho:1.4.2'
- 下面添加在您的活动的onCreate代码行()方法
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
现在,构建应用程序和在应用程序运行时,您可以浏览您的应用程序的数据库,通过在URL打开浏览器:
chrome://inspect/#devices
同样的屏幕截图是作为below_
ChromeInspact
您的DB
希望这将有助于给大家! :)
Answer 12:
没有生根的设备,您可以通过下面的屏幕截图CMD访问文件:
使用CMD从平台工具文件夹根据您的用户开始ADB
cd C:\Users\YourUserName\AppData\Local\Android\sdk\platform-tools
它可以在另一个文件夹取决于您安装它。
显示工作装置。
adb devices
为说,响应OS的命令
List of devices attached 0123456789ABCDEF device
写命令
adb -s 0123456789ABCDEF shell "su"
它会打开
root@theDeviceName:/ #
4.Accessing文件,列出所有的文件
ls
所以,在昌目录到任何其他地方像数据文件夹
cd data/data
Answer 13:
当你在该设备的外壳目录。 赶紧跑
su - root
然后,你应该能够访问数据/文件夹。
文章来源: Why do I get access denied to data folder when using adb?