Ошибка разрешения WRITE_SECURE_SETTINGS даже при добавлении в манифест
Я добавил "android.permission.WRITE_SECURE_SETTINGS" в манифест. Но все равно я получаю сообщение об ошибке, в котором говорится: "WRITE_SECURE_SETTINGS".
Я видел много разговоров об этом, и что этот параметр запрещен для стороннего программного обеспечения.
Есть ли другой способ, которым я могу добавить свое приложение, чтобы получить это разрешение?
Я видел эту команду adb, но я не очень знаком, как использовать ее для добавления моего приложения на мое устройство. Ниже приведена команда Требуется ли root для моего устройства, прежде чем его можно будет использовать, поскольку его не удалось скопировать в файловой системе только для чтения?
adb remount
adb push app.apk /system/app/
7 ответов
Во-первых, как вы уже читали ранее, WRITE_SECURE_SETTINGS НЕ доступен приложениям! Таким образом, вы не можете использовать это разрешение независимо от того, находитесь ли вы на рутованных или производственных сборках.
Итак, если вы хотите включить этот параметр, создайте свою собственную прошивку, которая делает то, что вам нужно, и загрузите эту прошивку на любые устройства, которые вы хотите. Или внесите свои изменения в существующие моды прошивки (например, Cyanogen).
Некоторые другие приложения используют такие методы, как Reflection
используя Java для получения доступа к функциям, не предоставляемым через API, вы, вероятно, можете попробовать то же самое.
Во-вторых, adb remount
не работает с производственными сборками, если телефон не рутирован или встроенное ПО по умолчанию не включает его.
Я хотел бы добавить, что разрешение WRITE_SECURE_SETTINGS может быть предоставлено через adb, и этот подход НЕ требует root. Вот команда:
adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
Я недавно боролся с этой самой вещью. Мой клиент хотел приложение, которое выключало бы NFC, когда устройство заряжалось (беспроводное зарядное устройство), а затем включалось, когда оно извлекалось из зарядного устройства. Я запускал KitKat на своем Nexus 7, и хотя у меня было WRITE_SECURE_SETTINGS
в манифесте, а приложение в /system/app/
, это не будет работать.
Оказывается, что в 4.4 они добавили дополнительную безопасность. В 4.3, однако, это работает, если три вещи верны:
- Манифест имеет
WRITE_SECURE_SETTINGS
- Приложение находится в
/system/app/
- Пакет подписан ключом (любой ключ)
Я рутировал устройство, используя замечательный Nexus Root Toolkit (NRT) с http://www.wugfresh.com/nrt/ затем установил BusyBox и средство перемещения системных приложений из:
https://play.google.com/store/apps/details?id=stericson.busybox https://play.google.com/store/apps/details?id=de.j4velin.systemappmover
Я установил свой собственный подписанный APK и переместил его на место с помощью системного приложения-движка, который затем перезапустил устройство. Это сработало отлично. Надеюсь это поможет.
Для используемого API, который требовал привилегий WRITE_SECURE_SETTINGS, мне пришлось включить это в манифест:
<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/
Я тоже столкнулся с этой ситуацией, и затем я следую приведенным ниже правилам: 1.добавить WRITE_SECURE_SETTINGS в манифесте 2. сделать свою собственную прошивку 3.добавить LOCAL_CERTIRICATE:= платформа
Попробуй это,
adb shell pm grant your.package.name android.permission.WRITE_SECURE_SETTINGS
Я смог решить эту проблему, включив доступ к уведомлениям.
go to settings
click on sound and notification
scroll down
click on notification access