android 终端命令root权限不够,解决Android Studio上安卓模拟器root权限和使用adb shell时无法使用su命令的问题(/system/bin/sh: su: not fo... |
您所在的位置:网站首页 › 安卓模拟器需要root吗 › android 终端命令root权限不够,解决Android Studio上安卓模拟器root权限和使用adb shell时无法使用su命令的问题(/system/bin/sh: su: not fo... |
起初只是想根据相关自学教程尝试一下使用LitePal。 在添加数据后想进入自带的sqlite3数据库中查看数据时, 需要打开adb shell进入/data/data/[包名]/databases目录, 却发现在使用cd命令进入[包名]目录是,出现找不到目录的提示, 在data目录下使用ls命令时提示permission denied,权限被拒绝,得知是由于权限不足的原因导致的。 在查询相关资料后,才得知如果进入adb shell时,前缀是类似: @generic_x86:/ $ 最后是一个美元符号$,则表示不是以root身份运行。如果前缀是类似: root@generic_x86:/ # 最后是一个井号#,则表示是以root身份运行。 如果没有root,要使用root权限,则需要执行su命令,但执行后出现提示: /system/bin/sh: su: not found 找不到su命令 其实并不是找不到,只是因为没有root权限,也执行不了su命令 那么也就是说,在没有root权限的情况下要切换到root状态也需要root权限,这进入了权限许可逻辑的死循环。 于是,我们要跳出解决权限问题的思维! 解决方法: 我一开是采用的Android Studio安卓模拟器的版本是根据所学习的教程推荐的Android 7.0。 但是,Android 7.0的模拟器是没有root权限的! 所以只需要重新安装一个非Android 7.0版本的模拟器,如Android 6.0,或者连接一台获得了root权限的安卓设备 运行后会发现,当进入adb shell后,命令提示符里前缀就已经变成了: root@generic_x86:/ # 带有root权限的adb shell 那也就不需要su命令了,可以直接访问所有的文件,问题就解决了。 其他问题: 在使用adb的时候,有时候会遇到在命令提示符打不开adb shell的情况,提示: adb sever is out of date.killing 则有可能是你打开了两个adb,Android Studio在运行安卓模拟器时,会自行初始化并打开adb。如果此时你再手动打开adb shell,会出现两个adb抢占5037端口,导致两个都不能使用的问题。 那么我的解决方法比较简单粗暴: 重启电脑再打开Android Studio,并且只用AS里自带的Terminal命令控制符打开adb shell,尚可解决 欢迎交流讨论 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |