2015-03-04 4 views
2

Я хочу использовать разрешение android.permission.DEVICE_POWER, и это нужна система или подпись, я много искал и кажется, что apk in/system/priv-app может иметь разрешение, но я потерпел неудачу в своем Nexus 4 5.0.2.Как использовать системное разрешение на lollipop

Я поставил APK в/системы/собств-приложение, но LogCat показывает, что

Не предоставление разрешения android.permission.DEVICE_POWER для упаковки хххх

Есть ли что-то не так я сделал? Или есть другие способы получить разрешение?

ответ

0

Чтобы получить это разрешение, приложение должно быть подписано ключом, который использовался для подписи платформы. Это может быть разным для производителей. Таким образом, практически невозможно получить эти разрешения для пользовательского приложения.

Ниже приведены некоторые из разрешений, которые не могут быть предоставлены в пользовательское приложение:

android.permission.ACCESS_CHECKIN_PROPERTIES 
android.permission.ACCESS_SURFACE_FLINGER 
android.permission.ACCOUNT_MANAGER 
android.permission.BIND_APPWIDGET 
android.permission.BIND_DEVICE_ADMIN 
android.permission.BIND_INPUT_METHOD 
android.permission.BIND_WALLPAPER 
android.permission.BRICK 
android.permission.BROADCAST_PACKAGE_REMOVED 
android.permission.BROADCAST_SMS 
android.permission.BROADCAST_WAP_PUSH 
android.permission.CALL_PRIVILEGED 
android.permission.CHANGE_COMPONENT_ENABLED_STATE 
android.permission.CLEAR_APP_USER_DATA 
android.permission.CONTROL_LOCATION_UPDATES 
android.permission.DELETE_CACHE_FILES 
android.permission.DELETE_PACKAGES 
android.permission.DEVICE_POWER 
android.permission.DIAGNOSTIC 
android.permission.FACTORY_TEST 
android.permission.FORCE_BACK 
android.permission.GLOBAL_SEARCH 
android.permission.HARDWARE_TEST 
android.permission.INJECT_EVENTS 
android.permission.INSTALL_LOCATION_PROVIDER 
android.permission.INSTALL_PACKAGES 
android.permission.INTERNAL_SYSTEM_WINDOW 
android.permission.MANAGE_APP_TOKENS 
android.permission.MASTER_CLEAR 
android.permission.READ_FRAME_BUFFER 
android.permission.READ_INPUT_STATE 
android.permission.REBOOT 
android.permission.SET_ACTIVITY_WATCHER 
android.permission.SET_ORIENTATION 
android.permission.SET_PREFERRED_APPLICATIONS 
android.permission.SET_TIME 
android.permission.STATUS_BAR 
android.permission.UPDATE_DEVICE_STATS 
android.permission.WRITE_GSERVICES 
android.permission.WRITE_SECURE_SETTINGS 
+0

Это не совсем так. Разрешения с уровнем защиты 'signatureOrSystem' будут назначены при установке, если приложение включено в папку'/system/priv-app'. Только для разрешений с уровнем защиты подписи требуется подписка на приложение для предоставления. – CJBS

1

См. Документацию по адресу android:protectionLevel в documentation.

Только разрешения с уровнем защиты signatureOrSystem будут назначены после установки, если приложение включено в папку /system/priv-app. android.permission.DEVICE_POWER не является одним из них. См манифеста определение in the source:

Вот выдержка:

<!-- Allows low-level access to power management. 
    <p>Not for use by third-party applications. --> 
    <permission android:name="android.permission.DEVICE_POWER" 
     android:label="@string/permlab_devicePower" 
     android:description="@string/permdesc_devicePower" 
     android:protectionLevel="signature" /> 

Следовательно, приложение должно быть signed with the platform key из ROM/системы/AOSP-сборки для того, чтобы достичь этого разрешения.

Смежные вопросы