【问题标题】:Application is working on rooted device but not working with SuperSU应用程序正在根设备上工作,但不能与 SuperSU 一起工作
【发布时间】:2019-08-27 15:15:21
【问题描述】:

我正在开发一个具有某些功能的应用程序只能在根设备中运行。

几乎完成了,应用程序也可以在有根设备中运行。但有些设备正在使用 SuperSU,在这种情况下应用程序无法正常工作。

我还与自定义 ROM 开发人员进行了研究和讨论,他们说您的应用没有要求 SuperSU 权限,但它应该。

我对同一主题进行了许多研究,但没有找到任何适当的方法来实现这一目标。

【问题讨论】:

  • 没有足够的信息在这里没有人能提供帮助。你的意思是它不能正常工作?它会崩溃吗?它只是不执行特定任务吗,您需要发布 logcat(尤其是在它崩溃时),并且很可能会发布一些代码来显示出了什么问题以及如何发生
  • @Boardy:不,它没有崩溃,但是应该在 Rooted 设备上运行的功能在具有 SuperSU 的设备上不起作用。此外,我的应用程序没有像this那样要求许可。我在应用程序中缺少什么吗?
  • 还有人投票支持关闭此问题。为什么?我认为这是一个平台,我可以从对查询有更多想法/知识的人那里获得帮助,他们实际上面临着这类问题并解决了它。我也问了,因为我在研究中没有得到任何有用的信息.
  • 我认为它被投票关闭,因为没有足够的信息可供任何人提供帮助。我还没有做过root应用,但据我所知,只要你在安装SuperSU需要root的功能之前调用su,它就会被触发。您确定 logcat 中没有任何内容可以提供有关问题可能是什么的任何线索
  • 是的,logcat 中没有与此相关的任何内容,这不是应用程序崩溃。但感谢您的帮助。我会尝试自己解决,如果我能找到任何解决方案,我会在这里发布。

标签: android root superuser custom-rom root-access


【解决方案1】:

我找到了解决方案。

SuperSU 应用程序中Settings Tab > Default Access 下有三个选项。

http://prntscr.com/oyzeq8

  1. 提示:表示应用会在需要时请求许可。
  2. Grant :这意味着 SuperSU 会在需要时自动授予应用程序的权限。
  3. 拒绝:这意味着 SuperSU 会在需要时自动拒绝应用程序的权限

所以有两种情况。

1。如果SuperSU 应用在Settings Tab > Default Access 中默认设置了“Grant”,则应用不会在应用程序中请求SuperSU 权限。

2。如果SuperSU 应用在Settings Tab > Default Access 中默认设置了“提示”,那么应用将在需要时请求SuperSU 权限。

为了在应用启动时询问SuperSU 许可,我使用 RootTools 检查 SuperSU 访问权限。

  1. https://github.com/Stericson/RootTools
  2. https://code.google.com/archive/p/roottools/wikis/Usage.wiki

所以,我只是使用 RootTools 通过一个简单的条件检查了 root 访问权限。

if (RootTools.isAccessGiven())
    Toast.makeText(this, "SU Permission Granted", Toast.LENGTH_SHORT).show();
else
    Toast.makeText(this, "SU Permission Denied", Toast.LENGTH_SHORT).show();

所以每当RootTools.isAccessGiven() 执行时,它会自动打开一个弹出窗口,要求应用程序获得 SuperSU 权限。稍后您也可以从 SuperSU 应用程序中更改它。

这是我发现并实现的。现在一切正常。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2018-01-29
    • 2016-08-14
    • 2017-11-14
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多