2

我的应用程序为用户提供了授予 root 访问权限以允许访问某些系统功能 (NFC) 的选项。默认情况下,它从不要求 root。

因此,在授予权限后,我认为它应该可以工作,但我仍然感到害怕:

08-10 22:06:49.320: W/System.err(9421): Caused by: java.lang.SecurityException: WRITE_SECURE_SETTINGS permission required: Neither user 10174 nor current process has android.permission.WRITE_SECURE_SETTINGS.

错误。我错过了什么吗?我正在请求WRITE_SECURE_SETTINGS许可,所以不能这样。

有趣的是我有 NFC 启用/禁用工作,但是在我安装了一个新的 Rom 之后,我一直收到这个错误。它从 4.0.3 更新到 4.0.4,但据我所知,有问题的代码没有任何变化……有什么想法吗?

4

2 回答 2

2

我错过了什么吗?

您缺少WRITE_SECURE_SETTINGS权限。

我要求获得 WRITE_SECURE_SETTINGS 权限,所以这不可能。

AFAIK,作为 root 与权限无关,直接。要持有WRITE_SECURE_SETTINGS,您的应用程序必须使用与固件签名相同的签名证书进行签名,或者安装在系统分区上。作为根不是这些东西。

于 2012-08-10T23:01:26.537 回答
0

您可以让您的应用程序以 root 身份运行。例如,我在WRITE_SECURE_SETTINGS permission required运行时遇到错误:

String output = ProcessUtils.runProcess(MainService.this, "wm", "overscan", "0,0,10,10");

但我通过以下方式解决了这个问题(在有根设备上):

String output = ProcessUtils.runProcess(MainService.this, "su", "0", "sh", "-c", "wm overscan 0,0,10,10");
于 2018-09-30T00:06:10.913 回答