枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述Android Studio模拟器的root权限相关的知识,希望能为你提供帮助。
前言一个安卓练习中用自带的sqlite3数据库查看数据的时候,需要通过adb shell进入/data/data/[包名]/databases/目录中,通过查看创建的数据库来查看相应的数据或者表。起初是打算在实机上进行测试的,在这里提一句,如果在实机上测试,则手机必须具有root最高权限。但是由于自己用的是华为手机,如果需要root的话,必须需要到官网上去申请解锁码才能利用一键root工具来root,总之非常麻烦,而且刷机也不能保证一定成功,所以考虑再三决定使用android Studio中的模拟器进行测试。但是发现仍然出现了和实机一样的错误"
permission denied"
,虽然搜索了相关教程,提示说可以把su
通过adb pull
传到模拟器内部;而且无法进入adb root
模式.....但是操作实在复杂,好在笔者找到一个方法,当然可能只是个例,但是如果有人也遇到这个问题并且网上方法都试过的话,不妨试一试我的办法。
分析问题我们通过adb shell直接进入的时候显示的是这样的:
@generic_x86:/ $
【Android Studio模拟器的root权限】但是这恰恰表示不是root身份,如果显示的为:
[email
protected]_x86:/ #
就说明你已经是以root身份运行的了,不用再继续看这篇文章了。
问题提示:
/system/bin/sh: su: not found
这并不是找不到su命令,而是因为没有root权限,也执行不了su命令,这是一个错误的循环:想要进入root,但是必须使用只有root权限的命令进入root。
解决方法查看一下你的模拟器内核版本是不是Android7.0或者以上的,如果是,那是因为Android 7.0的模拟器是没有root权限的,所以只需要重新安装一个非Android 7.0版本的模拟器,比如6.0就行了。安装好模拟器后,通过
adb root
进入root模式,然后正常操作就好了。文章图片
文章图片
推荐阅读
- idea报Unmapped Spring configuration files found.
- Android手机卸载第三方应用
- Android Studio3.0 配置ButterKnife出错的解决
- Spring 梳理-webApplicationContext 与servletContext
- Appium 测试微信小程序 Webview
- Happy Necklace (矩阵快速幂 + 递推 + 取模)
- Android StudioCould not GET gradle-3.2.0.pom (安卓包配置相关问题)
- 7中置一元赋值结合apply和updateunapply提取器
- Eclipse+ADT+Android SDK 搭建安卓开发环境