【问题标题】:Root permission not granted to Android app for exceuting "su" command未授予 Android 应用程序执行“su”命令的 Root 权限
【发布时间】:2013-01-29 01:59:10
【问题描述】:

我想从应用程序中执行“su”命令..我已经将模拟器植根并安装了 Superuser.apk(superuser 2.3.6.1)

Process pr= Runtime.getRuntime().exec("su");
process.waitFor();
Log.d("Ex.Value",Integer.toString(process.exitValue()));

但我得到 255 作为退出值,这似乎是执行“su”时的一些错误。 我已经包含了 RootTools 库 (http://code.google.com/p/roottools/)。当检查方法 RootTools.isRootAvailable(), RootTools.isAccessGiven()...它发现模拟器有 SU,但我的应用程序没有被授予 Root 权限。会是真正的问题吗?? ..如果是这样你能告诉我如何授予我的应用程序Root权限吗?

【问题讨论】:

  • 您是否在超级用户应用程序中设置了您的应用程序可以作为 root 执行的权限?
  • @Yury 我不知道如何正确地做到这一点......请你帮忙......
  • AFAIK,你可以在这里阅读它们:getandroidstuff.com/…
  • 没有“root 权限”之类的东西 - 只有启动一个以 root 身份运行的辅助可执行文件,而您的应用程序自己的进程继续被限制(因为它总是必须如此)分配给它非 root 用户 ID。除此之外,您的返回值可能是运行官方 Android su 而不是被黑的,或者运行被黑的 Android 拒绝您的特定应用程序的结果。

标签: android shell su root roottools


【解决方案1】:

当您执行“su”时,您应该在该进程中拥有 root 访问权限。然后,应用程序应通过对话框自动向用户请求 root 权限。此对话框由 android 提供,但仅存在于已 root 的设备中。

这篇博文有一个可能对您有所帮助的示例:

http://www.stealthcopter.com/blog/2010/01/android-requesting-root-access-in-your-app/

最后的 cmets 也非常丰富。

【讨论】:

  • 感谢 Anup 的回复...但是在帖子中给出的代码中,最初有 exec("su")... p = Runtime.getRuntime().exec("su") ;在我的情况下,这是抛出退出值 255 ......有没有办法给应用程序 Root 权限。我正在使用一个模拟器,它是植根...
  • 在模拟器上生根始终是个问题。这就是为什么我更喜欢实际设备的原因。该主题可能对您有所帮助:stackoverflow.com/questions/5095234/…
  • 我试图以这种方式自己植根...当使用 RootTools.isRootAvailable() 方法检查时,它显示设备(模拟器)已植根...但应用程序缺少根权限
猜你喜欢
  • 2012-04-29
  • 2012-03-23
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2016-03-08
相关资源
最近更新 更多