# oh_napi_sa_example **Repository Path**: hhchinasoft/oh_napi_sa_example ## Basic Information - **Project Name**: oh_napi_sa_example - **Description**: oh napi and sa example project - **Primary Language**: C/C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-21 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # oh_napi_test #### 介绍 鸿蒙的SA和NAPI开发Demo。 #### 软件架构 软件架构说明 #### selinux_adapter仓修改内容 1. service_contexts文件修改 ``` base/security/selinux_adapter/sepolicy/base/public/service_contexts 7001 u:object_r:sa_subsys_ace_service:s0 7002 u:object_r:sa_ui_appearance:s0 8001 u:object_r:sa_ca_daemon_service:s0 # 添加下面的内容,9000要求升序排列 9000 u:object_r:sa_napitestservice_service:s0 ``` 2. service.te文件修改 ``` base/security/selinux_adapter/sepolicy/base/public/service.te type sa_ui_appearance, sa_service_attr; # 添加下面的内容 type sa_napitestservice_service, sa_service_attr; ``` 3. type.te文件修改 ``` base/security/selinux_adapter/sepolicy/base/public/type.te # 添加下面的内容 type napitestservice, sadomain, domain; ``` 4. selinux权限 ``` base/security/selinux_adapter/sepolicy/ohos_policy 在ohos_policy目录下面新建自己的目录,例如:napitest/system 添加一个te文件添加权限配置信息 ``` 你可以 [security_selinux_adapter](https://gitee.com/openharmony/security_selinux_adapter) 这个地址来了解selinux ``` # 快速验证使用下面的命令设置宽容模式 hdc shell "echo SELINUX=permissive > /etc/selinux/config" ``` #### startup仓修改内容 1. group文件修改 ``` base/startup/init/services/etc/group # 添加下面的内容,3290这个数值不要存在重复项 napitest:x:3290: ``` 2. passwd文件修改 ``` base/startup/init/services/etc/passwd # 添加下面的内容,3290这个数值不要和其它行存在重复项 napitest:x:3290:3290:::/bin/false ``` 上面的修改分别对应secon属性、uid和gid属性(使用root和system)可以不用修改startup仓。 ``` { "services" : [{ "name" : "napitestservice", "path" : ["/system/bin/sa_main", "/system/profile/napitestservice.json"], "uid" : "napitest", "gid" : ["napitest", "shell"], "secon": "u:r:napitestservice:s0", "permission" : [] } ] } ``` #### samgr仓修改内容 1. 修改头文件 ``` foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include/system_ability_definition.h CA_DAEMON_ID = 8001, ASSET_SERVICE_ID = 8100, # 添加下面的内容,9000要求升序排列 TEST_SERVICE_ID = 9000, ``` 对应的是sa的profile文件 ``` { "process":"napitestservice", "systemability":[ { "name":9000, "libpath":"libnapi_test_service.z.so", "run-on-create":false, "auto-restart":true, "distributed":false, "dump-level":1 } ] } ``` #### 日志打印 ``` base/hiviewdfx/hilog/services/hilogd/log_domains.cpp {0xD005D00, "XTS"}, {0xD00AD00, "ASystem"}, # 添加自己定义的log domain和target,也可以使用已有的domain定义自己的TAG。例如添加一个 {0xD00D200, "NAPI_TEST"}, }, __UINT32_MAX__, "Invalid"); ```