无法在已经root的Android手机上运行'adb root'命令

43

在对我的设备进行root之后,我需要运行adb root,然后运行adb shell才能访问我的应用程序数据库。当尝试运行adb root时,我一直收到“adbd不能在生产构建中以root身份运行”的错误信息。为什么?唯一的另一个选择是使用Android模拟器进行测试,但我们都知道模拟器有多糟糕(不是可行的开发解决方案)。


说到在/data/data中访问您的应用程序目录,即使在完全未修改且启动加载程序已锁定的设备上,只要您的应用程序在其清单中具有debuggable="true"属性,就可以使用adb shell中的“run-as <package>”命令来实现。 - Grishka
自我接受的答案并不能解决标题中的问题。请参见https://dev59.com/l18e5IYBdhLWcg3wssAV。 - Alex P.
1个回答

54

我终于找到了如何做到这一点的方法!基本上,您需要先运行adb shell,然后在 shell 中运行su,这将切换 shell 以 root 权限运行!

$: adb shell
$: su

我仍然遇到的一个问题是sqlite3没有安装,因此命令无法识别。


1
谢谢。这在我的已root设备上运行良好。 - Vishal
44
在运行adb shell后,我得到了以下输出:127:shell@android:/$。然而,su命令无法识别……请帮忙。 - aspiring
5
请确保你的设备已经取得了 root 权限(当我在我的设备上运行 su 命令时,我会在设备上收到一个 SuperSU 提示,需要按“授权”按钮);另外,这可能与此无关,但我也在我的设备上安装了 busybox 1.20.2(为了使 TotalCommander 插件正常工作),因此如果你的设备已经取得了 root 权限,但你仍然无法使用 su 命令,请尝试安装 BusyBox。 (否则,我的设备是全新的。) - BrainSlugs83
1
以上两个步骤都成功了。现在它显示 root@c5302:/ #,然后我输入了 adb root,但它说找不到设备。 - Srujan Barai
1
@aspiring 你需要一个已经root的设备,并且需要安装superSU。 - mchid
在输入su后,它返回以下内容:[-] 连接到ui超时。 - Red M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接