【问题标题】:Android: adbd cannot run as root in production buildsAndroid:adbd 无法在生产版本中以 root 身份运行
【发布时间】:2014-10-05 23:16:26
【问题描述】:

我有一部基于 Android 的手机 (2.3.6),具有解锁的 root 权限。 因为我想通过我的电脑访问我的手机,所以今天我安装了 QtAdb 和 Android SDK。 如果我打开命令提示符,我会这样做

adb shell su

我明白了

#

因此,我可以在手机上复制、删除、推送文件(在手机上,我使用“SuperSU”应用程序收到通知。)

但如果我在 Windows 7 下启动 QtAdb - 我会收到以下错误:“adbd 无法在生产版本中以 root 身份运行”。我想念什么? QtAdb 有问题吗?

【问题讨论】:

  • "adb shell su" 不会改变你可以推或拉的东西,所以如果你可以访问你需要的东西,那么显然你不需要 need root .
  • 我需要访问我手机的整个文件系统。如果我做“id”,显然我得到“uid = 0(root)gid = 0(root)”。我想知道为什么 QtAdb 告诉我“adbd 不能在生产构建中以 root 身份运行”。
  • 在另一个shell中的su下运行一个shell不会改变adbd执行push和pull操作的uid

标签: android adb root


【解决方案1】:

问题是,即使您的手机已root,手机上的“adbd”服务器也不使用root权限。您可以尝试绕过这些检查或在手机上安装不同的 adbd,或安装包含已修补 adbd 的自定义内核/发行版。

或者,一个更简单的解决方案是使用 chainfire 中的“adbd insecure”,它会即时修补您的 adbd。它不是永久性的,因此您必须在启动 adb 服务器之前运行它(或者将其设置为每次启动时运行)。您可以花几美元从 google play 商店获取该应用程序:

https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=en

或者你可以免费获得,作者在xda-developers上发布了免费版本:

http://forum.xda-developers.com/showthread.php?t=1687590

安装到你的设备上(复制到设备上,用文件管理器打开apk文件),在设备上运行adb insecure,最后kill掉你电脑上的adb服务器:

% adb kill-server

然后重启服务器,应该已经是root了。

【讨论】:

  • 启用补丁会禁用 Nexus 5X 上的 USB 调试。有什么选择吗?
  • 该应用从不请求许可,但说我需要给它许可。有任何想法吗? (安装了 adb)
  • “是说我需要给它许可”是什么意思?您的手机确实需要 root,并且您需要确保是否有任何限制 root 可用性的应用程序(例如 Greenify)允许该应用程序具有 root 权限。
【解决方案2】:

对于使用 Magisk 植根 Android 设备的用户,您可以从 https://github.com/evdenis/adb_root 安装 adb_root。那么adb root就可以顺利运行了。

【讨论】:

  • 这对我有用。我现在可以在我的电脑上运行adb root
  • 我在使用 Magisk 的 Pixel 4 (Android 11) 上进行了尝试,不幸的是,尽管成功安装了 abd_root 模块,但仍然出现相同的错误:“adbd cannot run as root in production builds”
  • @avelyne ADB Root 仅是 ARM64,也许这就是问题所在。
【解决方案3】:

您必须向 shell 应用程序 (com.anroid.shell) 授予 Superuser 权限。 就我而言,我使用Magisk 来根植我的手机 Nexsus 6P (Oreo 8.1)。所以我可以在Magisk Manager 应用程序中授予Superuser 权限,该应用程序位于左上方的选项菜单中。

【讨论】:

    猜你喜欢
    • 2017-10-10
    • 2016-01-25
    • 1970-01-01
    • 2011-10-03
    • 2013-06-29
    • 2014-04-29
    • 2019-05-08
    • 2012-05-03
    相关资源
    最近更新 更多