14

我在清单中添加了“android.permission.WRITE_SECURE_SETTINGS”。但我仍然收到一条错误消息 - 需要“WRITE_SECURE_SETTINGS”。

我已经看到很多关于此的讨论,并且第三方软件禁止使用此设置。

我可以添加我的应用程序的任何其他方式可以获得此权限吗?

我已经看到了这个 adb 命令,但我不太熟悉如何使用它来将我的应用程序添加到我的设备中,下面的命令是否需要 root 我的设备才能使用,因为它无法通过只读文件系统复制?

adb remount
adb push app.apk /system/app/
4

7 回答 7

17

首先,正如您之前所读到的,WRITE_SECURE_SETTINGS对应用程序不可用!因此,无论您是使用 root 版本还是生产版本,都不能使用此权限。

因此,如果您希望启用此设置,请创建您自己的固件来满足您的需求,并将该固件加载到您希望的任何设备上。或者,将您的更改贡献给现有的固件模块(例如,Cyanogen)。

其他一些应用程序使用诸如Reflection使用 Java 之类的技术来访问未通过 API 公开的函数,您可能可以尝试相同的方法。

其次,adb remount除非手机已root或固件默认启用它,否则不能像生产版本一样工作。

于 2012-10-24T08:53:42.353 回答
17

我想补充一点,可以通过 adb 授予 WRITE_SECURE_SETTINGS 权限,并且这种方法不需要 root。这是一个命令:

adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
于 2019-01-21T00:49:14.977 回答
14

我最近在这件事上苦苦挣扎。我的客户想要一个应用程序,它可以在设备充电(无线充电器)时关闭 NFC,然后在从充电器中取出时打开。我在我的 Nexus 7 上运行 KitKat,即使我WRITE_SECURE_SETTINGS在 Manifest 中有应用程序/system/app/,它也无法工作。

事实证明,在 4.4 中他们增加了额外的安全性。但是,在 4.3 中,如果满足以下三点,它就会起作用:

  1. 清单有WRITE_SECURE_SETTINGS
  2. 应用程序在/system/app/
  3. 包由密钥(任何密钥)签名

我使用来自http://www.wugfresh.com/nrt/的很棒的 Nexus Root Toolkit (NRT) 对设备进行了植根,然后从以下位置安装了 BusyBox 和系统应用程序移动器:

https://play.google.com/store/apps/details?id=stericson.busybox https://play.google.com/store/apps/details?id=de.j4velin.systemappmover

我安装了我的自定义签名 APK 并使用系统应用程序移动器将其移动到位,然后重新启动设备。它工作得很好。希望这可以帮助。

于 2013-12-08T03:58:03.577 回答
5

对于我使用的需要 WRITE_SECURE_SETTINGS 权限的 api,我必须将其包含在清单中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
coreApp="true"
android:sharedUserId="android.uid.system">

<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
...

参考:https ://github.com/android/platform_packages_apps_settings/blob/master/AndroidManifest.xml

我还必须将应用程序作为系统应用程序运行(在:/system/app 下)。这是一个如何: http: //www.addictivetips.com/mobile/how-to-install-any-app-as-system-app-on-android/

于 2014-05-23T08:23:30.610 回答
0

我也遇到了这种情况,然后我遵循以下规则: 1.在清单中添加 WRITE_SECURE_SETTINGS 2.制作我自己的固件 3.添加 LOCAL_CERTIRICATE := 平台

于 2017-05-26T08:02:35.050 回答
0

试试这个,

adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
于 2021-11-23T15:42:29.943 回答
-4

我能够通过启用通知访问来解决这个问题。

go to settings
click on sound and notification
scroll down
click on notification access
于 2016-03-13T09:45:31.807 回答