Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Init Lite
提交
52d3410c
S
Startup Init Lite
项目概览
OpenHarmony
/
Startup Init Lite
大约 1 年 前同步成功
通知
3
Star
37
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Init Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
52d3410c
编写于
6月 29, 2022
作者:
M
Mupceet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug for module install
Signed-off-by:
N
Mupceet
<
laiguizhong@huawei.com
>
上级
a15da3dd
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
46 addition
and
40 deletion
+46
-40
interfaces/innerkits/modulemgr/modulemgr.c
interfaces/innerkits/modulemgr/modulemgr.c
+10
-4
services/begetctl/modulectl.c
services/begetctl/modulectl.c
+24
-12
services/init/standard/init_control_fd_service.c
services/init/standard/init_control_fd_service.c
+1
-16
test/unittest/innerkits/modulemgr_unittest.cpp
test/unittest/innerkits/modulemgr_unittest.cpp
+4
-4
test/unittest/param/param_stub.cpp
test/unittest/param/param_stub.cpp
+7
-4
未找到文件。
interfaces/innerkits/modulemgr/modulemgr.c
浏览文件 @
52d3410c
...
...
@@ -129,7 +129,7 @@ int ModuleMgrInstall(MODULE_MGR *moduleMgr, const char *moduleName,
int
argc
,
const
char
*
argv
[])
{
MODULE_ITEM
*
module
;
BEGET_LOGV
(
"ModuleMgrInstall moduleName %s"
,
moduleName
);
// Get module manager
BEGET_CHECK
(
!
(
moduleMgr
==
NULL
||
moduleName
==
NULL
),
return
-
1
);
// Create module item
...
...
@@ -148,6 +148,7 @@ int ModuleMgrInstall(MODULE_MGR *moduleMgr, const char *moduleName,
// Install
module
->
handle
=
moduleInstall
(
module
,
argc
,
argv
);
if
(
module
->
handle
==
NULL
)
{
BEGET_LOGE
(
"Failed to install module %s"
,
moduleName
);
moduleDestroy
((
ListNode
*
)
module
);
return
-
1
;
}
...
...
@@ -201,8 +202,13 @@ static void scanModules(MODULE_MGR *moduleMgr, const char *path)
}
file
->
d_name
[
end
]
=
'\0'
;
BEGET_LOGV
(
"scanModules module %s"
,
file
->
d_name
);
if
(
strncmp
(
file
->
d_name
,
"lib"
,
strlen
(
"lib"
))
==
0
)
{
ret
=
ModuleMgrInstall
(
moduleMgr
,
file
->
d_name
+
strlen
(
"lib"
),
0
,
NULL
);
}
else
{
ret
=
ModuleMgrInstall
(
moduleMgr
,
file
->
d_name
,
0
,
NULL
);
}
}
closedir
(
dir
);
}
...
...
@@ -249,10 +255,10 @@ void ModuleMgrUninstall(MODULE_MGR *moduleMgr, const char *name)
ListRemoveAll
(
&
(
moduleMgr
->
modules
),
moduleDestroy
);
return
;
}
BEGET_LOGV
(
"ModuleMgrUninstall moduleName %s"
,
name
);
// Find module by name
module
=
(
MODULE_ITEM
*
)
ListFind
(
&
(
moduleMgr
->
modules
),
(
void
*
)
name
,
moduleCompare
);
BEGET_
CHECK
(
module
!=
NULL
,
return
);
BEGET_
ERROR_CHECK
(
module
!=
NULL
,
return
,
"Can not find module %s"
,
name
);
// Remove from the list
ListRemove
((
ListNode
*
)
module
);
...
...
services/begetctl/modulectl.c
浏览文件 @
52d3410c
...
...
@@ -19,33 +19,45 @@
#include "begetctl.h"
#include "control_fd.h"
#include "init_utils.h"
#include "init_param.h"
#include "securec.h"
#include "shell_utils.h"
#define MODULE_CTL_CMD_ARGS 2
static
int
main_cmd
(
BShellHandle
shell
,
int
argc
,
char
**
argv
)
static
int
32_t
ModuleInstallCmd
(
BShellHandle
shell
,
int32_t
argc
,
char
*
argv
[]
)
{
if
(
argc
!=
MODULE_CTL_CMD_ARGS
)
{
BShellCmdHelp
(
shell
,
argc
,
argv
);
return
0
;
}
BSH_LOGV
(
"ModuleInstallCmd %s %s
\n
"
,
argv
[
0
],
argv
[
1
]);
char
combinedArgs
[
MAX_BUFFER_LEN
];
int
ret
=
sprintf_s
(
combinedArgs
,
sizeof
(
combinedArgs
),
"ohos.servicectrl.%s"
,
argv
[
0
]);
BSH_CHECK
(
ret
>
0
,
return
-
1
,
"Invalid buffer"
);
combinedArgs
[
ret
]
=
'\0'
;
SystemSetParameter
(
combinedArgs
,
argv
[
1
]);
return
0
;
}
if
(
argc
<
MODULE_CTL_CMD_ARGS
)
{
static
int
ModuleDisplayCmd
(
BShellHandle
shell
,
int
argc
,
char
**
argv
)
{
if
(
argc
<
1
)
{
BShellCmdHelp
(
shell
,
argc
,
argv
);
return
0
;
}
if
(
argc
>
MODULE_CTL_CMD_ARGS
)
{
(
void
)
snprintf_s
(
combinedArgs
,
sizeof
(
combinedArgs
),
sizeof
(
combinedArgs
)
-
1
,
"%s:%s"
,
argv
[
1
],
argv
[
2
]);
CmdClientInit
(
INIT_CONTROL_FD_SOCKET_PATH
,
ACTION_MODULEMGR
,
combinedArgs
,
"FIFO"
);
}
else
{
CmdClientInit
(
INIT_CONTROL_FD_SOCKET_PATH
,
ACTION_MODULEMGR
,
argv
[
1
],
"FIFO"
);
}
CmdClientInit
(
INIT_CONTROL_FD_SOCKET_PATH
,
ACTION_MODULEMGR
,
argv
[
0
],
"FIFO"
);
return
0
;
}
MODULE_CONSTRUCTOR
(
void
)
{
const
CmdInfo
infos
[]
=
{
{
"modulectl"
,
main_cmd
,
"dump all modules installed"
,
"modulectl list"
,
NULL
},
{
"modulectl"
,
main_cmd
,
"install or uninstall specified module"
,
"modulectl install|uninstall moduleName"
,
NULL
},
{
"modulectl"
,
ModuleDisplayCmd
,
"dump all modules installed"
,
"modulectl list"
,
"modulectl list"
},
{
"modulectl"
,
ModuleInstallCmd
,
"install specified module"
,
"modulectl install moduleName"
,
"modulectl install"
},
{
"modulectl"
,
ModuleInstallCmd
,
"uninstall specified module"
,
"modulectl uninstall moduleName"
,
"modulectl uninstall"
},
};
for
(
size_t
i
=
0
;
i
<
sizeof
(
infos
)
/
sizeof
(
infos
[
0
]);
i
++
)
{
BShellEnvRegitsterCmd
(
GetShellHandle
(),
&
infos
[
i
]);
...
...
services/init/standard/init_control_fd_service.c
浏览文件 @
52d3410c
...
...
@@ -57,29 +57,14 @@ static void ProcessDumpServiceControlFd(uint16_t type, const char *serviceCmd)
static
void
ProcessModuleMgrControlFd
(
uint16_t
type
,
const
char
*
serviceCmd
)
{
#define MODULE_INSTALL_PREFIX "install:"
#define MODULE_UNINSTALL_PREFIX "uninstall:"
int
cmdLen
;
if
((
type
!=
ACTION_MODULEMGR
)
||
(
serviceCmd
==
NULL
))
{
return
;
}
INIT_LOGE
(
"ProcessModuleMgrControlFd argc [%s]
\n
"
,
serviceCmd
);
if
(
strcmp
(
serviceCmd
,
"list"
)
==
0
)
{
InitModuleMgrDump
();
return
;
}
cmdLen
=
strlen
(
MODULE_INSTALL_PREFIX
);
if
(
strncmp
(
serviceCmd
,
MODULE_INSTALL_PREFIX
,
cmdLen
)
==
0
)
{
INIT_LOGI
(
"Install %s now ...
\n
"
,
serviceCmd
+
cmdLen
);
InitModuleMgrInstall
(
serviceCmd
+
cmdLen
);
return
;
}
cmdLen
=
strlen
(
MODULE_UNINSTALL_PREFIX
);
if
(
strncmp
(
serviceCmd
,
MODULE_UNINSTALL_PREFIX
,
cmdLen
)
==
0
)
{
INIT_LOGI
(
"Uninstall %s now ...
\n
"
,
serviceCmd
+
cmdLen
);
InitModuleMgrUnInstall
(
serviceCmd
+
cmdLen
);
return
;
}
}
static
void
ProcessParamShellControlFd
(
uint16_t
type
,
const
char
*
serviceCmd
)
...
...
test/unittest/innerkits/modulemgr_unittest.cpp
浏览文件 @
52d3410c
...
...
@@ -92,18 +92,18 @@ HWTEST_F(ModuleMgrUnitTest, ModuleInstallTest, TestSize.Level1)
ASSERT_EQ
(
cnt
,
0
);
// Install one module
ret
=
ModuleMgrInstall
(
moduleMgr
,
"
lib
bootchart"
,
0
,
NULL
);
ret
=
ModuleMgrInstall
(
moduleMgr
,
"bootchart"
,
0
,
NULL
);
ASSERT_EQ
(
ret
,
0
);
cnt
=
ModuleMgrGetCnt
(
moduleMgr
);
ASSERT_EQ
(
cnt
,
1
);
// Uninstall the module
ModuleMgrUninstall
(
moduleMgr
,
"
lib
bootchart"
);
ModuleMgrUninstall
(
moduleMgr
,
"bootchart"
);
cnt
=
ModuleMgrGetCnt
(
moduleMgr
);
ASSERT_EQ
(
cnt
,
0
);
// Install two module
ret
=
ModuleMgrInstall
(
moduleMgr
,
"
lib
bootchart"
,
0
,
NULL
);
ret
=
ModuleMgrInstall
(
moduleMgr
,
"bootchart"
,
0
,
NULL
);
ASSERT_EQ
(
ret
,
0
);
cnt
=
ModuleMgrGetCnt
(
moduleMgr
);
ASSERT_EQ
(
cnt
,
1
);
...
...
@@ -113,7 +113,7 @@ HWTEST_F(ModuleMgrUnitTest, ModuleInstallTest, TestSize.Level1)
ASSERT_EQ
(
cnt
,
1
);
// Uninstall the module
ModuleMgrUninstall
(
moduleMgr
,
"
lib
bootchart"
);
ModuleMgrUninstall
(
moduleMgr
,
"bootchart"
);
cnt
=
ModuleMgrGetCnt
(
moduleMgr
);
ASSERT_EQ
(
cnt
,
0
);
ModuleMgrUninstall
(
moduleMgr
,
"notexist"
);
...
...
test/unittest/param/param_stub.cpp
浏览文件 @
52d3410c
...
...
@@ -366,10 +366,8 @@ void PrepareInitUnitTestEnv(void)
PrepareInnerKitsCfg
();
PrepareModCfg
();
PrepareGroupTestCfg
();
EnableInitLog
(
INIT_DEBUG
);
#if !(defined __LITEOS_A__ || defined __LITEOS_M__)
PrepareCmdLineHasSn
();
// for dac
std
::
string
dacData
=
"ohos.servicectrl. = system:servicectrl:0775
\n
"
;
dacData
+=
"test.permission. = root:root:0770
\n
"
;
...
...
@@ -377,12 +375,16 @@ void PrepareInitUnitTestEnv(void)
dacData
+=
"test.permission.write.= root:root:0772
\n
"
;
dacData
+=
"test.permission.watcher. = root:root:0771
\n
"
;
CreateTestFile
(
STARTUP_INIT_UT_PATH
"/system/etc/param/ohos.para.dac"
,
dacData
.
c_str
());
CreateTestFile
(
STARTUP_INIT_UT_PATH
"/trigger_test.cfg"
,
g_triggerData
);
TestSetSelinuxOps
();
#endif
InitParamService
();
#if !(defined __LITEOS_A__ || defined __LITEOS_M__)
PrepareCmdLineHasSn
();
TestSetSelinuxOps
();
LoadSpecialParam
();
#endif
// read system parameters
LoadDefaultParams
(
"/system/etc/param/ohos_const"
,
LOAD_PARAM_NORMAL
);
LoadDefaultParams
(
"/vendor/etc/param"
,
LOAD_PARAM_NORMAL
);
...
...
@@ -408,6 +410,7 @@ int TestFreeLocalSecurityLabel(ParamSecurityLabel *srcLabel)
static
__attribute__
((
constructor
(
101
)))
void
ParamTestStubInit
(
void
)
{
EnableInitLog
(
INIT_DEBUG
);
PARAM_LOGI
(
"ParamTestStubInit"
);
PrepareInitUnitTestEnv
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录