OpenHarmony ArkTS 框架下如何自定义权限

news2025/7/16 10:35:22

系统有很多权限,比如:多媒体权限

ohos.permission.READ_MEDIA

那么,当我们在做开发板定制hap 时需要我们自定义的特殊权限,该如何做呢,比如要做个ohos.permission.MY_TEST_PERMISSION自定义权限,我的思路就是,找到系统自带的权限声明的地方,然后追加自己的自定义权限,然后想办法让追加的内容生效

首先需要知道系统的权限声明的地方在哪里,系统这么多权限,至少应该是一个列表声明,然后需要申请权限的地方读取这个文件里相关权限的 名字 啊 权限描述什么的,所以,至少应该是一个单独的配置文件

在OpenHarmony ArkTs框架下,使用hdc_std shell 命令进入开发板,以下以rk3568开发板为例:

在我们没有任何资料的帮助下,该如何去找系统的权限配置单位置,首先我想到的是,如果系统文件命名规范,是不是至少应该有带有config 这样关键字的文件存在,所以使用find命令 搜寻整个开发板系统文件

find . –type f –name *.config  和find . –type f –name config

很遗憾,搜出来的两个文件使用hdc导出文件命令 发现不像

再次思索,ArkTs本就是Ts语言的变身,Ts本就是js的升级版,那么配置文件应该是json文件,所以使用搜索命令:

 find . -type f -name config.json

搜索结果:
./data/app/el1/bundle/public/ohos.global.systemres/ohos.global.systemres/config.json
./data/app/el1/bundle/public/ohos.backgroundtaskmgr.resources/ohos.backgroundtaskmgr.resources/config.json
./data/app/el1/bundle/public/com.ohos.mms/com.ohos.mms/config.json
./data/app/el1/bundle/public/com.ohos.settingsdata/com.ohos.settingsdata/config.json
./data/app/el1/bundle/public/com.ohos.telephonydataability/com.ohos.telephonydataability/config.json
./data/app/el1/bundle/public/ohos.sample.shopping/com.example.entry/config.json
./data/app/el1/bundle/public/com.ohos.download/com.ohos.download/config.json
./data/app/el1/bundle/public/ohos.telephony.resources/ohos.telephony.resources/config.json
./data/app/el1/bundle/public/com.ohos.contactsdataability/com.ohos.contactsdataability/config.json
./data/app/el1/bundle/public/ohos.samples.distributedmusicplayer/ohos.samples.distributedmusicplayer/config.json
./data/app/el1/bundle/public/ohos.samples.distributedcalc/ohos.samples.distributedcalc/config.json
./data/app/el1/bundle/public/ohos.samples.clock/ohos.samples.clock/config.json
./data/app/el1/bundle/public/com.ohos.contacts/com.ohos.contacts/config.json

 观察搜索结果:只有第一个比较符合,比如global 这种全局字眼,systemres系统资源文件字眼,这就看着很像了,所以退出开发板使用导出命令:

hdc_std file recv /data/app/el1/bundle/public/ohos.global.systemres/ohos.global.systemres/config.json D:\recv

然后打开导出的文件,可以看到

 观看文件内容,一大片系统的权限,然后对比 官网的权限列表:

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/permission-list.md

随便对了十几个,全都对的上号,包括normal /system_basic/system_core这种权限级别标识,以及申请权限是否会要弹框(那种有label属性的,就是要弹框显示的文字),那么这个文件八九不离十,就是我们需要修改的文件了

观看上面的文件,那个labelId 是一串数字,这东西哪来的,我们总不能随便写一个吧,玩过android的都知道,我们的资源文件索引,最终是在编译后的R文件里面,那些索引就是编译生成的一串数字,最终在加载资源的时候,就会用到这种索引,所以,这里面的这种数字应该不是手动写上去的,应该是由编译镜像生成的,那么这个文件,也应该是在编译系统镜像后生成的,所以,接下来的思路,就是找到这个文件所在的系统源文件位置,增加我们自己的权限,重新编译镜像,烧录进rk3568开发板

观看目录 该文件位置data/app/el1/bundle/public/ohos.global.systemres/ohos.global.systemres/config.json

ohos.global.systemres 这种很面熟,应该是在系统应用的目录里,直接进入开发板cd 

cd system/app   然后ls命令 目录

 果然是在这个目录下,那我们要修改这个hap,就得找到这个hap的源码,进入OpenHarmony的官网下载 这个应用源码:

utils_system_resources: Providing system resources such as fonts | 字体等系统资源下载下来后,发现这个并非用ets语言写的,就是说,不能用官方编译器生成最终的.hap包

先进入目录:

应用目录:systemres/main/config.json 把自己想要自定义的权限,依葫芦画瓢加上

观察了一下项目,这个项目得用linux随着源码一起编译进镜像,我们只要将 修改的这部分代码,放入镜像源文件位置即可,接下来就是编译系统镜像的过程了,这个就不做讲解,因为重点是:我也不会

但是公司同事会,最后编译好镜像,烧录进开发板,写个应用测试下权限,一把过,很nice

申请权限方式跟系统别的权限申请方式没什么区别,在这就不写了

以上就是摸索的过程,希望对你有所帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/362443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑马程序员-Linux网络编程-01

目录 课程链接 协议 分层模型 网络传输数据封装流程 以太网帧和ARP请求 IP协议 TCP协议 BS与CS模型对比 套接字 网络字节序 IP地址转换函数 sockaddr地址结构 socket模型创建流程 socket()和bind() listen()和accept()​ 课程链接 03-协议_哔哩哔哩_bilibili 协…

【python学习笔记】:2种用 Python 作为小程序后端的方式

微信的小程序是一个很不错的体验,简单,上手快,这几天也在学习使用小程序,总结了2种用 Python 作为小程序后端的方式,供你参考。 方法一、微信的云托管[1]。 优点:不需要购买服务器,不需要域名…

Go语言环境安装与试运行

下载参考Go语言中文网https://studygolang.com/Go语言中文网下载会快一些,与Go官网是同步的,按对应操作系统下载。Windows下安装这里只展示Windows下的安装场景下载后双击文件:本地环境路径(其实建议把环境都放在同一个指定目录下…

数据结构与算法:Map和Set的使用

1.搜索树 1.定义 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子…

5年测试在职经验之谈:3年手工测试、2年的自动化测试,从入门到不可自拔...

毕业3年了,学的是环境工程专业,毕业后零基础转行做软件测试。 已近从事测试行业8年了,自己也从事过3年的手工测试,从事期间越来越觉得如果一直在手工测试的道路上前进,并不会有很大的发展,所以通过自己的努…

【机器学习】为什么需要对数值型的特征做归一化(Normalization)?

目录:为什么需要对数值型的特征做归一化?一、概念定义二、标准化、归一化的原因、用途2.1 原因三、数据归一化的影响四、常用的3种归一化方法4.1 归一化公式4.1.1 线性归一化(Min-Max Scaling,即我们一般指的归一化)4.…

十二、Django表单

表单 在之前的案例中,每次我们需要提交表单数据的时候。我们都需要去手动编辑html表单,根据不同的字段,字段名,进行编码。做了很多重复的部分,所以django提供了一个专门用来处理表单的类,django.forms.For…

23年PMP真的值得考吗?分析+资料分享

我觉得,如过是真的想学习项目管理,或者工作要求考PMP,招聘要求又的确“PMP证书”优先,那考一个是划算的,毕竟在项目管理这一块,PMP是专业和知名度最高的证书了。 它是由美国项目管理协会(PMI)在全球范围内推…

Java 给视频添加背景音乐 | Java工具

目录 前言 Maven依赖 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐的java工具&#xff0c;一如既往的实用主义。 Maven依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1.1…

Towards Efficient Adversarial Training on Vision Transformers

视觉转换器(ViT)作为卷积神经网络(CNN)的有力替代方案&#xff0c;受到了广泛的关注。最近的研究表明&#xff0c;vit也容易受到cnn等对抗实例的攻击。为了构建健壮的vit&#xff0c;一种直观的方法是应用对抗性训练&#xff0c;因为它已被证明是实现健壮cnn的最有效方法之一。…

笔记本cpu温度多少正常?温度过高的4个常见原因

电脑CPU指的是中央处理器&#xff0c;它与电脑运行速度的快慢存在很大关系。如果电脑的处理器温度过高&#xff0c;就会影响我们电脑的运行速度&#xff0c;甚至出现蓝屏、卡顿的情况。 那么&#xff0c;对于电脑来说&#xff0c;笔记本cpu温度多少正常&#xff1f;有什么原因…

如何高效开发一个OA办公系统?

如何才能高效开发一个OA办公系统&#xff1f;这篇教你使用零代码工具从0-1搭建一个OA办公系统&#xff0c;无需代码基础&#xff0c;只要你懂业务&#xff0c;只需3步即可搭建&#xff01; 先来看看效果—— 系统模板>>https://www.jiandaoyun.com/ 整个系统包含物资管理…

2023年可穿戴智能设备三大应用领域的发展前景

科技化进程的不断推进&#xff0c;让可穿戴智能设备在智能设备市场占比逐渐增多&#xff0c;通过传感器和无线通信等技术的结合&#xff0c;为用户带来良好体验&#xff0c;为智能设备市场发展注入活力。消费类电子产品也朝着移动化、便携化、可穿戴化方向发展&#xff0c;可穿…

【蓝桥杯集训7】并查集专题(3 / 5)

目录 并查集模板 1249. 亲戚 - 并查集 837. 连通块中点的数量 - 并查集 240. 食物链 - 带权并查集 238. 银河英雄传说 - 并查集模板 活动 - AcWing int find(int x) //返回x的祖宗结点状态压缩 {if(p[x]!x) p[x]find(p[x]);return p[x]; }p[find(a)]find(b); //合并操作…

Jest使用

一、测试到底测什么 提到测试的时候&#xff0c;即使是最简单的一个代码块可能都让初学者不知所措。最常问的问题的是“我怎么知道要测试什么&#xff1f;”。如果你正在写一个 Web 应用&#xff0c;那么你每个页面每个页面的测试用户交互的方式&#xff0c;就是一个很好的开端…

技术干货!如何玩转Salesforce测试类 (Test Class)?

测试类主要用于评估其他代码片段&#xff0c;确保一切正常且可靠地运行。这可以作为一种早期预警系统&#xff0c;提醒开发人员出现了错误或问题。 不同类型的程序化测试 测试类可以分为多种不同的类型&#xff0c;这改变了我们编写测试的方式及其预期结果。对于Apex测试类&…

【机器学习】DBSCAN密度聚类算法(理论 + 图解)

文章目录一、前言二、DBSCAN聚类算法三、DBSCAN算法步骤四、算法的理解五、常用评估方法&#xff1a;轮廓系数一、前言 之前学聚类算法的时候&#xff0c;有层次聚类、系统聚类、K-means聚类、K中心聚类&#xff0c;最后呢&#xff0c;被DBSCAN聚类算法迷上了。 为什么呢&…

等保2.0丨5分钟速览:小白也能看懂的等保2.0介绍

等级保护2.0自2019年12月1日正式实施起&#xff0c;到现在已经有两个多月的时间&#xff0c;但是仍然有刚刚进入等保领域的“萌新”反馈&#xff0c;需要小编再做一个简单的介绍&#xff0c;那么今天的干货内容&#xff0c;我们就来一起了解什么是等保2.0&#xff0c;最新实施的…

数学(一)-- LeetCode[12][13] 整数转罗马数字

1 整数转罗马数字 1.1 题目描述 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符数值I1V5X10L50C100D500M1000例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1。12 写做 XII &…

消灭EMC的三大利器:电容器/电感/磁珠

滤波电容器、共模电感、磁珠在EMC设计电路中是常见的身影&#xff0c;也是消灭电磁干扰的三大利器。 对于这三者在电路中的作用&#xff0c;相信还有很多工程师搞不清楚&#xff0c;文章从设计中详细分析了消灭EMC三大利器的原理。 1 、滤波电容 尽管从滤除高频噪声的角度…