其他
开发并内置具有系统权限(system)的App(Android10)
The following article is from 卓码空间 Author QDroid88888
一、前言
在Android系统中,平时我们开发安装的普通app由于权限限制,不能访问系统的一些资源和功能。比如你不能在普通app中去杀掉其他应用、开发飞行模式、设置屏幕超时、改变调试模式等等。在系统定制过程中,如果想要自己开发的app有更多的超能力,需要将自己的app提升到系统权限。拥有了系统权限后app就会和系统的app"设置"一样,拥有超能力做很多控制系统相关的事情。
二、开发具有系统权限的App
使用Android Studio创建工程,然后在AndroidManifest.xml文件中添加如下配置:
android:sharedUserId="android.uid.system"
如下是我个人的一个配置情况:
配置好之后就开发所需要的功能,打包成apk。然后内置到手机。内置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模式的系统
大佬们留个关注再走呗,后续精彩文章不断