我的应用程序为用户提供了授予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,但据我所知,对于有问题的代码没有任何改变......任何想法?
答案 0 :(得分:2)
我错过了什么吗?
您错过了WRITE_SECURE_SETTINGS
权限。
我要求WRITE_SECURE_SETTINGS权限,因此不可能。
AFAIK,直接与root权限无关。要保留WRITE_SECURE_SETTINGS
,您的应用必须使用签署固件或安装在系统分区上的相同签名证书进行签名。成为根不是那些东西。
答案 1 :(得分: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");