adb shell su 命令执行后终端无响应的问题解决指南

30次阅读
没有评论

问题描述

在使用 adb shell 执行命令后,输入更多 shell 命令时出现阻塞情况。当输入 adb shell su 后,返回符号 # 并未继续接收其他命令。经测试发现通过 device.executeShellCommand("su", receiver) 也遇到相同问题,并抛出异常 com.taobao.wireless.testlab.ddmlib.ShellCommandUnresponsiveException

解决方案

在执行修改前请确保已完成必要的准备工作和备份操作。

方案1:分步执行命令

操作步骤:

  1. 首先,通过普通用户权限发起 adb shell。
  2. 执行 su 命令以切换至超级用户权限执行其他命令。

建议:
当尝试在 adb shell su 后进行额外的 shell 调用时,请遵循上述分步操作。直接输入 adb shell su 仅运行该命令并返回,不会继续接收后续命令。因此需要先打开 adb shell 提示符,再执行 su。并且,你可能需要根据设备的固件/内核配置进行超级用户权限验证。

方案2:检查 Superuser 权限

操作步骤:

  1. 确认已安装 Android 应用程序 Superuser(SuperSU)。
  2. 重新启动 adb shell 并执行 su,系统会提示请求根访问权限。根据提示确认允许或拒绝。

建议:
如果在执行 adb shell su 后并未看到任何用户权限验证的提示,则可能是由于 Superuser 权限未被正确配置。请检查是否安装了 Superuser,以及它是否设置成授权 root 访问控制。

其他解决方案:

  • 更新 ADB 工具:确保你使用的 ADB 版本是最新的。
  • 重启设备和电脑:有时候简单地重启可能会解决由于未正确释放资源导致的问题。
  • 检查 ddmlib 配置:如通过代码调用 device.executeShellCommand("su", receiver) 时遇到异常,可能需要重新审视该函数的使用方法及配置设置。

以上两个方案可以依据具体情况选择适用的解决方案,希望对你解决问题有所帮助。如果仍存在问题,请进一步查询相关文档或寻求专业帮助。

正文完