- 博客(190)
- 资源 (8)
- 收藏
- 关注
原创 OpenHarmony子系统开发 - 安全(十一)
为规范OpenHarmony SELinux策略配置,针对neverallow检查无法覆盖到的场景和人工审核容易遗漏的问题,OpenHarmony提供了一套SELinux策略检查工具。
2025-04-03 13:16:54
561
原创 OpenHarmony子系统开发 - 安全(九)
由init、chipset_init通过cfg文件孵化的Native进程,例如ueventd、installs。在本进程的cfg文件中,新增secon字段,建立进程与标签的映射关系。如果未配置secon字段,进程在SELinux使能状态会被拦截启动。在type.te中定义SELinux标签u:r:demo:s0中的SELinux类型demo,使u:r:demo:s0是合法的。
2025-04-02 10:32:02
608
原创 OpenHarmony子系统开发 - 安全(八)
通用策略文件,是指设备开发者进行SELinux策略配置时,涉及修改的文件。文件名文件说明*.teSELinux策略文件,用于定义类型、配置allow策略、配置neverallow策略。实体文件标签映射文件,体现实体文件路径与标签的映射关系。虚拟文件标签映射文件,体现虚拟文件路径与标签的映射关系。应用标签映射文件,体现应用关键信息与应用进程标签、应用数据目录标签的映射关系。参数标签映射文件,体现参数与标签的映射关系。SA服务标签映射文件,体现SA服务与标签的映射关系。
2025-04-02 10:27:10
717
原创 OpenHarmony子系统开发 - 安全(七)
预置应用是指随设备出厂预置的应用。OpenHarmony支持在不同设备上对预置应用进行差异化配置,设备厂商可根据需要对与预置应用进行配置。
2025-04-01 18:20:58
530
原创 OpenHarmony子系统开发 - 安全(六)
权限描述是否允许应用数据被删除。是否允许隐藏桌面图标。是否允许Ability配置查询优先级。是否允许Ability不在任务栈中显示。是否允许为其它应用提供应用间HSP能力。是否允许Ability在任务列表中配置不可移除。权限类型默认值描述removablebooltrue是否允许应用被卸载,仅预置应用生效。keepAliveboolfalse是否允许应用常驻。singletonboolfalse是否允许应用安装到单用户下(U0)。string[]
2025-04-01 09:25:40
667
原创 OpenHarmony子系统开发 - 安全(五)
HUKS Core作为向应用提供密钥库能力的基础,包括密钥管理及密钥的密码学操作等功能。如果想要使用自己的实现替换HUKS Core,需要实现以下接口。
2025-04-01 09:21:23
384
原创 OpenHarmony子系统开发 - 安全(四)
各子系统在处理、流转各类用户数据时,可以调用DSLM模块提供的接口,获取相关设备的安全等级信息。并结合其所处理数据的实际情况,决策数据的进一步处理。为方便开发者对于“凭据文件”的进一步理解,设备安全等级管理模块提供了凭据工具,该工具是一个python脚本,基于OPENSSL命令行的简单封装,可以便捷的提供凭据文件的签发和验证功能。其使用方法如下:凭据文件的生成:生成一个名为cred.txt的凭据文件,并指定设备型号为rk3568、设备版本号为3.0.0、设备安全等级为SL3等payload信息。
2025-03-31 09:24:33
725
原创 OpenHarmony子系统开发 - 安全(三)
系统服务通过IPC跨进程方式开放的接口,需要对接口调用者进行鉴权操作。在Samgr中注册的系统服务,可以通过进程间通信的方式暴露接口给其他进程访问,同时需要配置相应的访问策略,当其他进程访问这些接口时,将会触发IPC通信鉴权机制校验访问进程是否拥有权限访问该接口,若无权限,则访问会被拒绝。当开发一个系统服务时,如果需要对外开放某些接口,开发者可以通过IPC通信鉴权组件配置这些接口的访问策略。
2025-03-31 09:24:02
540
原创 OpenHarmony子系统开发 - 安全(二)
应用权限是软件用来访问系统资源和使用系统能力的一种通行方式。在涉及用户隐私相关功能和数据的场景,例如:访问个人设备的硬件特性,如摄像头、麦克风,以及读写媒体文件等,OpenHarmony通过应用权限管理组件来保护这些数据以及能力。在系统应用开发过程中,如果应用要使用敏感权限,开发者可以调用应用权限管理组件接口检查待访问权限是否被授权,如果未授权,操作不允许。
2025-03-29 10:50:45
1001
原创 OpenHarmony子系统开发 - 安全(一)
为了确保应用的完整性和来源可靠,OpenHarmony需要对应用进行签名和验签。应用开发阶段:开发者完成开发并生成安装包后,需要开发者对安装包进行签名,以证明安装包发布到设备的过程中没有被篡改。OpenHarmony的应用完整性校验模块提供了签名工具、签名证书生成规范,以及签名所需的公钥证书等完整的机制,支撑开发者对应用安装包签名。为了方便开源社区开发者,版本中预置了公钥证书和对应的私钥,为开源社区提供离线签名和校验能力;在OpenHarmony商用版本中应替换此公钥证书和对应的私钥。
2025-03-29 10:49:13
800
原创 OpenHarmony子系统开发 - 显示管理
OpenHarmony默认的亮度范围为0 ~ 255(0代表最小亮度,255代表最大亮度),是系统和所有应用窗口的亮度调节范围。部分显示设备受到其硬件约束,亮度调节范围无法达到0 ~ 255,即无法达到默认的亮度调节范围。为此OpenHarmony提供了系统亮度范围定制方式,在与不同显示设备适配时,产品定制开发者可根据显示设备自身硬件条件灵活调整系统亮度范围。
2025-03-28 09:17:14
820
原创 OpenHarmony子系统开发 - init启动引导组件(八)
ueventd负责监听内核设备驱动插拔的netlink事件,根据事件类型动态管理相应设备的dev节点。
2025-03-28 09:12:23
1092
原创 OpenHarmony子系统开发 - init启动引导组件(七)
产品可根据自身对安全性的要求,需要使能Seccomp机制来限制进程可使用的系统调用范围。按照下面的开发步骤,系统可使能Seccomp的基本功能与基本策略。其基本功能满足约束与限制中的特性限制,基本策略文件说明见策略文件说明。产品已使能Seccomp基本策略的情况下,某个init孵化的Native service进程可以根据实际需要使能自定义的个性化Seccomp策略,以适配进程自身所需的安全要求,此时其它Native service进程的Seccomop策略不变。
2025-03-27 09:23:49
1599
原创 OpenHarmony子系统开发 - init启动引导组件(六)
组件化启动主要是满足厂家、硬件平台通过模块化的组合快速实现产品开发。以下以rk3568产品为例介绍组件化启动。日志的基本功能就是记录init启动中的关键节点,以及定位故障问题。基于日志可以定位故障问题,可以查看各子系统启动时长,命令执行时长等。可以查看不同模块的日志tag,如param、uevent、module等。输出关键阶段日志,如第一阶段启动日志、required partition设备节点、uevent创建日志、服务启动日志等。
2025-03-27 09:19:57
915
原创 OpenHarmony子系统开发 - init启动引导组件(五)
begetctl介绍具体参考。bootchart 插件bootchart是一个用于linux启动过程性能分析的开源工具软件,在系统中自动收集CPU占用率、磁盘吞吐率、进程等信息,并以图形方式显示分析结果,可用作指导优化系统启动过程。。bootevent 插件bootevent是一个记录init进程及各个服务的启动关键事件的插件,记录内容包括事件名称,关联事件的服务的启动时间,事件发生时间。导出文件支持tracing解析,可用作指导优化系统启动过程。
2025-03-26 09:11:39
1156
原创 OpenHarmony子系统开发 - init启动引导组件(三)
每个子系统定义各自模块的系统参数,包括系统参数名称、默认值以及系统参数的权限访问信息。系统参数命名格式系统参数名称采用点分格式,由多段组成,每一段可以由字母、数字、下划线组成,总长度不超过96字节;系统参数名称分为两类:系统参数名称类别名称示例说明参数名称完整的系统参数名称,末尾不是"."。参数目录const.**.以"."结尾,标识相同前缀的所有系统参数集合。系统参数类型系统参数一共分为三大类:系统参数分类类别前缀说明常量const.常量参数,一旦赋值后续不会再变更;
2025-03-25 11:11:53
822
原创 OpenHarmony子系统开发 - init启动引导组件(二)
服务管理主要通过init解析服务进程配置文件来实现,服务进程配置文件(xxx.cfg)可以根据业务场景按需配置服务,当前支持的增值服务包括启动控制、按需启动、命令执行、定时启动、fd代持、沙盒。
2025-03-25 11:10:46
705
原创 OpenHarmony子系统开发 - init启动引导组件(一)
init进程启动时,首先完成系统初始化工作,然后开始解析配置文件。init.cfg默认配置文件,由init系统定义,优先解析。/system/etc/init/*.cfg各子系统定义的配置文件。/vendor/etc/init/*.cfg厂商定义的配置文件。当需要添加配置文件时,用户可以根据需要定义自己的配置文件,并拷贝到相应的目录下。
2025-03-24 09:32:42
1028
原创 OpenHarmony子系统整机启动流程
启动子系统上下文结构图启动子系统内部涉及以下组件:init启动引导组件:init启动引导组件对应的进程为init进程,是内核完成初始化后启动的第一个用户态进程。init进程启动之后,读取init.cfg配置文件,根据解析结果,执行相应命令(见)并依次启动各关键系统服务进程,在启动系统服务进程的同时设置其对应权限。ueventd启动引导组件:ueventd负责监听内核设备驱动插拔的netlink事件,根据事件类型动态管理相应设备的dev节点。
2025-03-24 09:08:42
867
原创 OpenHarmony子系统开发 - Sensor服务
Sensor服务子系统提供了轻量级传感器服务基础框架,您可以使用该框架接口实现传感器列表查询、传感器控制、传感器订阅去订阅等功能。Sensor服务框架图Sensor API:提供传感器的基础API,主要包含查询传感器的列表、订阅/取消传感器数据、执行控制命令等,简化应用开发。Sensor Framework:主要实现传感器的订阅管理、数据通道的创建、销毁等,实现与传感器服务层的通信。
2025-03-23 14:46:58
886
原创 OpenHarmony子系统开发 - 耗电统计定制开发指导
OpenHarmony默认提供了耗电统计的特性。由于不同产品的硬件规格是不同的,各个硬件的耗电基准也不同。产品希望根据产品的设计规格来定制耗电基准。OpenHarmony提供了耗电基准的定制方式,产品定制开发者可根据产品的设计规格来定制。
2025-03-22 09:43:24
1019
原创 OpenHarmony子系统开发 - 电源管理(二)
OpenHarmony提供了定制电源服务振动提示的能力,产品定制开发者可根据产品设计规格来定制。在该模式下可通过修改配置文件在手机关机出现弹窗的同时触发振动效果,且当前暂时仅支持在关机弹窗场景下使用。OpenHarmony支持系统睡眠时唤醒执行动作,如在睡眠中低电量情况下唤醒使系统关机。当设备进入睡眠状态后,可以根据用户配置的策略唤醒并执行对应动作。但不同产品可支持的场景可能不同,比如不支持低电量唤醒。为此,OpenHarmony提供唤醒后动作的定制方式,产品可以根据具体的设计规格来定制此特性。
2025-03-22 09:40:28
1236
原创 OpenHarmony子系统开发 - 电源管理(一)
当前OpenHarmony灭屏后会启动运行锁循环检测线程,然后默认进入休眠状态。不同设备的灭屏方式不相同,可能为合盖灭屏、超时灭屏、盖屏灭屏或是按电源键灭屏等;灭屏后的默认行为也不相同,可能为无动作、将屏幕下电,或是进入休眠状态等。为此,OpenHarmony提供电源默认休眠行为的定制方式,产品可以根据具体的设计规格来定制此特性。
2025-03-21 09:24:13
1128
原创 OpenHarmony子系统开发 - 电池管理(三)
OpenHarmony支持在不同设备上多种充电特性进行差异化配置,为此OpenHarmony提供了读写电池内核节点的通用框架:根据充电场景读取内核节点来获取特性详情,根据充电场景写入内核节点来开启或进入特性。系统开发者可根据产品的设计规格进行相应的配置,并通过系统API的进行管控。OpenHarmony默认电池管理系统可以接收uevent事件,系统根据事件,对设备进行相应的动作,产品定制开发者可根据产品设计规格来定制。
2025-03-21 09:20:46
928
原创 OpenHarmony子系统开发 - 电池管理(二)
OpenHarmony默认提供了充电类型的特性。在对终端设备进行充电时,可以使用不同的充电器类型,如有线快充、无线快充等。系统可以根据当前的充电类型展示相应的动画或处理相关业务,但是不同产品支持的充电类型不同,需要根据产品的设计规格来定制此特性。为此OpenHarmony提供了充电类型的定制方式,产品定制开发者可根据产品的设计规格来定制此特性。
2025-03-20 09:46:25
950
原创 OpenHarmony子系统开发 - 电池管理(一)
OpenHarmony默认提供了电池温度保护的特性。终端设备会在不同的温度环境中使用,当温度过高或过低时,都会影响到电池的安全性,因此需要进行一定的温度保护措施,如当温度过高或过低时,将设备关机。但是不同的电池设备支持的温度范围不同,需要根据产品的设计规格来定制此特性。为此OpenHarmony提供了电池温度保护的定制方式,产品定制开发者可根据产品的设计规格来定制此特性。OpenHarmony默认提供了电量等级,根据当前的电量来定义系统统一的电量等级,如满电量、高电量、低电量、极低电量等。
2025-03-19 09:16:54
996
原创 OpenHarmony子系统开发 - 电话服务
Modem厂商库初始化是指在厂商库里实现const HRilOps *RilInitOps(const struct HRilReport *reportOps)函数,在该函数里处理三个重要的功能:接收RIL Adapter事件回调的函数指针,当Modem有业务事件上报时,调用对应的函数指针,把事件上报给RIL Adapter。创建读取Modem设备节点的线程,在该线程里会循环地读取Modem上报的事件,并把接收的Modem信息解析为具体业务相关的事件进行上报。
2025-03-18 09:40:45
1017
原创 OpenHarmony子系统开发 - 媒体音视频
OpenHarmony音视频包括音视频播放和录制。OpenHarmony音视频播放模块支持音视频播放业务的开发,主要包括音视频文件和音视频流播放、音量和播放进度控制等。OpenHarmony录制模块支持音视频录制业务的开发,提供音视频录制相关的功能,包括设置录制视频画面尺寸、音视频编码码率、编码器类型、视频帧率、音频采样率、录制文件输出格式等。
2025-03-18 09:35:19
646
原创 OpenHarmony子系统开发 - 媒体相机
相机是OpenHarmony多媒体进程提供的服务之一,提供了相机的录像、预览、拍照功能,支持多用户并发取流。在进行应用的开发前,开发者应了解以下基本概念:视频帧视频流指的是将一系列图片数据按照固定时间间隔排列形成的数据流,每一张图片数据成为一帧,这样的一帧称为视频帧。帧速率(FPS,Frames Per Second)视频播放每秒钟刷新图片的速度,或是视频每秒的帧数,帧速率越高,视频的观感越流畅。分辨率每一帧的图片信息都是由像素点组成的,分辨率描述了一张图片中像素点的个数。
2025-03-17 09:39:42
855
原创 OpenHarmony窗口标题栏定制开发指导(ArkTs)
窗口标题栏是图形用户界面中的一个重要元素,它位于窗口的顶部,通常包含了窗口的标题以及一些控制按钮。标题栏的主要作用是提供关于窗口的基本信息,同时也为用户提供了一些控制选项。OpenHarmony有默认的窗口标题栏样式,本文基于ArkTs语言,提供窗口标题栏自定义方法。
2025-03-17 09:32:31
680
原创 OpenHarmony子系统开发 - ArkUI
OpenHarmony有一套默认的窗口标题UX样式,但是不同的厂商的不同设备对于窗口有不同的UX样式的诉求,所以为了满足厂商自定义的需求,提供窗口标题栏自定义机制。
2025-03-16 15:58:39
769
原创 OpenHarmony子系统开发 - ArkCompiler开发指导
ArkCompiler是一种统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。
2025-03-15 18:55:58
478
原创 OpenHarmony子系统开发 - Rust编译构建指导
本文用于指导 Rust 语言开发者编译构建 OpenHarmony OS Rust 应用程序。Rust 是一门静态强类型语言,具有更安全的内存管理、更好的运行性能、原生支持多线程开发等优势。本工具链基于开源 rust 与 llvm 增量开发,适配了 OpenHarmony OS target 二进制构建。可将 rust 源码编译成能在 OpenHarmony OS 设备上使用的目标二进制。rust三方库使用cargo编译,配置为Cargo.toml。
2025-03-15 18:52:54
896
原创 OpenHarmony子系统开发 - 关于deps、external_deps的使用
在添加一个模块的时候,需要在BUILD.gn中声明它的依赖,为了便于后续处理部件间依赖关系,我们将依赖分为两种——部件内依赖deps和部件间依赖external_deps。如上图所示,主要分为部件内依赖(图左)和部件间依赖(图右)。部件内依赖: 现有模块module1属于部件part1,要添加一个属于部件part1的模块module2,module2依赖于module1,这种情况就属于部件内依赖。
2025-03-14 09:45:48
835
原创 OpenHarmony子系统开发 - 系统能力配置规则
SysCap(SystemCapability,系统能力)是部件向开发者提供的接口的集合。
2025-03-13 11:40:37
233
原创 OpenHarmony子系统开发 - 特性配置规则
feature需给部件内多个模块使用时,建议把feature定义在部件的全局gni文件中,各个模块的BUILD.gn中import该gni文件。在部件的bundle.json文件中通过feature_list来声明部件的feature列表,每个feature都必须以"该值是此部件的默认值,产品可以在部件列表中重载该feature的值。下面介绍feature的声明、定义以及使用方法。feature的声明。feature的定义。feature的使用。
2025-03-13 11:38:51
397
原创 OpenHarmony子系统开发 -芯片解决方案配置规则
config.gni为开发板编译相关的配置,编译时会采用该配置文件中的参数编译所有OS部件,编译阶段系统全局可见。
2025-03-12 09:19:52
849
原创 OpenHarmony子系统开发 - 模块配置规则
编译子系统通过模块、部件和产品三层配置来实现编译和打包。模块就是编译子系统的一个目标,包括(动态库、静态库、配置文件、预编译模块等)。模块要定义属于哪个部件,一个模块只能归属于一个部件。OpenHarmony使用定制化的Gn模板来配置模块规则,Gn语法相关的基础知识请参考。ohos开头的模板与内建模板的差异主要在于:推荐使用ohos定制模板。
2025-03-12 09:09:24
1054
gcc-linaro-4.9-2014.11-x86-64-arm-linux-gnueabihf.tar.xz
2023-11-05
SQL Server Management Studio - V15.0.18424.0
2022-08-26
串口网络数据调试器V5.13.1
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人