禁用 supersu 权限对话框

Posted

技术标签:

【中文标题】禁用 supersu 权限对话框【英文标题】:Disable supersu permission dialog 【发布时间】:2014-09-04 08:00:41 【问题描述】:

当我的应用需要执行需要 root 访问权限的任务时,是否可以禁用“授予/拒绝”弹出对话框?我完全控制了应用程序将在其上运行的设备(内部项目),该设备已植根并且它具有 supersu 2.x 应用程序。

This 告诉我需要为我的应用声明android.permission.ACCESS_SUPERUSER 权限以禁用弹出窗口,但它没有效果。

有没有简单的方法来解决这个问题(无需更改选项 i supersu 应用设置)?

【问题讨论】:

【参考方案1】:

删除 SuperSU APK(通常是 /system/app/Superuser.apk/data/app/eu.chainfire.supersu*.apk/system/app/SuperSU/SuperSU.apk)和 rm -rf /data/data/eu.chainfire.supersu 目录,su 命令将始终授予访问权限而不显示提示。

如果您要为项目制作自定义固件映像,只需排除 APK。

请注意,来自 adb shell 的 pm path eu.chainfire.supersu 将为您提供 APK 的确切路径。

【讨论】:

这取决于您要开发的应用程序,但如果您正在开发一些有用的东西(而不是试图伤害/抢劫等您的用户),那么这可能是您可以给出的最糟糕的建议! “我完全控制了应用程序将在其上运行的设备(内部项目)”【参考方案2】:

您无法决定在您的应用中禁用提示。这是任何应用程序都无法更改的安全措施。

如果您的设备已植根并且您拥有 supersu,您仍然可以摆脱该对话框。您必须更改 supersu 中的设置:Settings --> Access --> Default access --> Grant

【讨论】:

那么android.permission.ACCESS_SUPERUSER 有什么意义呢? @Misterer 它只是授予您请求 SU 访问权限的权限,实际上并没有授予它。想想看,如果任何应用程序都可以在没有用户特别确定的情况下获得 SU 访问权限,那将是一场安全噩梦。 在安装应用程序时向用户显示请求的权限列表。如果他们决定他们想要声明 su 要求的应用程序,这意味着他们接受并允许它。我没有看到这里的问题。 @Simon 完全正确。想想 any 应用程序能够在未经用户同意的情况下执行 anything。这不应该发生,Chainfire(SuperSu 的创建者)不会启用你想做的事情。【参考方案3】:

这是不可能的,您不能干扰另一个应用程序的逻辑,即在访问 su 时显示弹出窗口的应用程序(例如 Superuser)。

【讨论】:

以上是关于禁用 supersu 权限对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义推送通知的iOS权限对话框的弹出时间

如何调试/重置 Android 6.0 权限?

无法从 SuperSU 获得权限提示

第一篇Android Supersu 权限管理定制,隐藏过滤权限,指定APP最高权限

管理员权限怎么设置管理员权限怎么获得

在授予权限之前调用的请求权限方法