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

查看:29
本文介绍了构建 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. 您可以在 Runtime 中为您的应用授予 Runtime 权限.应用程序必须有 android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS.下午.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.

此外,如果应用程序使用与系统共享的用户 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天全站免登陆