开发并内置具有系统权限(system)的App(Android10)

一、前言

       在Android系统中,平时我们开发安装的普通app由于权限限制,不能访问系统的一些资源和功能。比如你不能在普通app中去杀掉其他应用、开发飞行模式、设置屏幕超时、改变调试模式等等。在系统定制过程中,如果想要自己开发的app有更多的超能力,需要将自己的app提升到系统权限。拥有了系统权限后app就会和系统的app"设置"一样,拥有超能力做很多控制系统相关的事情。

二、开发具有系统权限的App

使用Android Studio创建工程,然后在AndroidManifest.xml文件中添加如下配置:

android:sharedUserId="android.uid.system"

如下是我个人的一个配置情况:

图片

配置好之后就开发所需要的功能,打包成apk。然后内置到手机。内置apk到手机系统参考:

玩转Android10源码开发定制(八)内置Apk到系统

三、开发内置过程中的一些注意事项

1. app工程配置"android:sharedUserId="android.uid.system"”之后是不能直接安装到手机测试的,可以先注释掉再安装测试一下在配置打包apk。

2. 内置的时候Android.mk中需要配置LOCAL_CERTIFICATE签名方式为platform,不然内置之后app不是system权限运行的。以下是我的一个配置情况

# ///ADD START
# ///ADD END
# 设置当前工作路径
LOCAL_PATH:= $(call my-dir)

# 清除变量值
include $(CLEAR_VARS)
# 生成的模块名称
LOCAL_MODULE := SecurityManager

# 生成的模块类型
LOCAL_MODULE_CLASS := APPS
# 生成的模块后缀名,此处为apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
# 设置模块tag,tags取值可以为:user debug eng tests optional
# optional表示全平台编译
LOCAL_MODULE_TAGS := optional

LOCAL_BUILT_MODULE_STEM := package.apk

# 设置源文件
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
# 这个地方非常重要,需要配置为platform平台签名方式
LOCAL_CERTIFICATE := platform
# 此处表示预编译方式
include $(BUILD_PREBUILT)

上一篇玩转Android10源码开发定制(16)LineageOS中编译user模式的系统

大佬们留个关注再走呗,后续精彩文章不断图片

图片

猜你喜欢

转载自blog.csdn.net/u011426115/article/details/112855801
今日推荐