构建AOSP并添加具有运行时权限的系统应用 [英] Building AOSP and adding a system app with runtime permission

查看:111
本文介绍了构建AOSP并添加具有运行时权限的系统应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Android 6 AOSP.我能够将应用程序添加为系统应用程序 但现在我想默认在此系统应用上添加运行时权限.这样,该应用程序就可以启动,而无需要求用户验证权限.

I work on Android 6 AOSP. I am able to build add the application as a system app but now I want to add runtime permission by default on this system app. Like that the app can start without asking the user to validate the permission.

你知道我该怎么做吗?

感谢您的帮助.

推荐答案

如果您的应用具有特权,则在清单中要求时会授予所有运行时权限.

If your app is privileged, all Runtime permissions are granted if requested in manifest.

要让您的应用具有特权,请执行以下操作:
在Android.mk中

To make your app privileged:
in Android.mk

LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

如果这不能解决您的问题:
1.您可以在运行时中为您的应用授予运行时权限.应用必须具有android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS. Pm.java

If this does not solve your problem:
1. You can grant Runtime permissions to your app in Runtime. App must have android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS. Pm.java

IPackageManager pm = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
pm.grantRuntimePermission(pkgname, perm, UserHandle.USER_OWNER);
pm.updatePermissionFlags(perm, pkgname, PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT,
PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, UserHandle.USER_OWNER);

  1. 您可以通过修改手动授予权限 DefaultPermissionGrantPolicy.java .
  1. You can grant permissions manually by modifying DefaultPermissionGrantPolicy.java.

此外,如果应用程序与系统使用共享的用户ID.即使清单中没有要求,也会授予任何权限.

Additionally, if app use shared user id with system. Any permission is granted even though it is not requested in manifest.

android:sharedUserId="android.uid.system".

这篇关于构建AOSP并添加具有运行时权限的系统应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆