作者:苟晶晶
前言
在上一篇博客我们简单介绍了service生成工具如何安装和使用工具生成代码,以及如何集成到OpenHarmony 3.2 release上;由于OpenHarmony 4.1 release发生了很大变化,本篇将介绍如何如何将service工具生成的代码集成到OpenHarmony 4.1 release上。
使用说明
如何安装并使用service生成工具,请参考上一篇文章:
OpenHarmony系统之Service代码一键生成工具介绍
集成
将service生成工具生成的代码集成到OpenHarmony 4.1 release
修改编译文件
-
修改testservice/BUILD.gn文件,将utils/native 改为 commonlibrary/c_utils,将samgr_standard改为samgr,− 将hiviewdfx_hilog_native改为hilog,在ohos_shared_library(“testservice”)中include_dirs内新增"//base/startup/init/interfaces/innerkits/include/syspara",将ohos_shared_library(“testservice”)中的deps删除,并删除external_deps中的"startup_l2:syspara",同时在external_deps中新增"c_utils:utils", 将ohos_executable(“testclient”)中的deps删除,同时在external_deps中新增"c_utils:utils"。修改后的BUILD.gn文件内容如下所示:
-
修改testservice/bundle.json文件,将"name": “@ohos/testservice"修改为 “name”: “@ohos/testservice_part”;将"samgr_standard"改为"samgr”,“utils_base"修改为"c_utils”;将"hiviewdfx_hilog_native"修改为"hilog";− 将"deps":“components"下的"starup_l2"修改为"syspara_lite”。修改后的bundle.json文件内容如下所示:
-
步骤 1 修改testservice/sa_profile下的文件以及testservice/etc/test_service.cfg文件, 将testservice/sa_profile/9016.xml文件重命名为9016.json,并将内容修改为json格式,修改后的9016.json文件如下所示:
修改testservice/sa_profile/BUILD.gn文件:将sources = [ “9016.xml” ]修改为sources = [ “9016.json” ]
修改testservice/etc/test_service.cfg文件:将"path"内的testservice_sa.xml修改为testservice_sa.json
修改系统公共文件
基础配置
-
服务配置
在foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include/
system_ability_definition.h增加以下一行:
在base/hiviewdfx/hidumper/frameworks/native/dump_utils.cpp文件内的saNameMap中新增以下一行:
其中,TEST_SERVICE_ID宏值与用户定义的serviceID一致。
-
子系统配置
在build/subsystem_config.json中增加以下内容。
-
产品配置,如rk3568
在vendor/kaihong/rk3568/config.json中增加以下内容:
-
权限配置
在相应的产品目录的vendor/kaihong/rk3568/security_config/high_privilege_process_list.json中增加以下内容:
selinux权限配置
上述基础配置时关闭了selinux 权限配置,用户新增服务时需根据自身需求配置selinux 权限 。
若要配置selinux权限,首先应将vendor/hihope/rk3568/config.json中"build_selinux"属性改为true,然后修改以下文件:
-
testservice/etc/sample_service.cfg
-
base/security/selinux_adapter/sepolicy/base/public/service_contexts
-
base/security/selinux_adapter/sepolicy/base/public/service.te
-
base/security/selinux_adapter/sepolicy/ohos_policy/startup/init/system/init.te
-
base/security/selinux/sepolicy/base/public/type.te
-
/base/security/selinux/sepolicy/base/te目录下增加新service的te文件,新增文件名即为服务名,例如:testservice.te
运行
用户根据需求增加服务端客户端代码,编译镜像并烧录到开发板,查看服务是否正常启动,并运行客户端查看运行结果。具体如何增加示例代码以及查看最终结果,可查看上一篇文章:
OpenHarmony系统之Service代码一键生成工具介绍
本文作者: 深开鸿