• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 插件化白名单规则说明
2
3## 规则解释
4  白名单严格遵循JSON格式。
5
6  ### **init扩展插件检查**
7  **[白名单](whitelist.json)** 约束插件依赖。
8
9  - 规则要求
10  1. 约束除基础库外的动态库。
11  2. 插件不在白名单内。
12
13  - 白名单信息解释
14    ```
15    {
16        "base_library":[
17            "libc.so",
18            "libc++.so",
19            "libinit_module_engine.so"
20        ],
21        "private_library": {
22            "libudidmodule.z.so": {  // 插件模块动态库
23                "library_name" : "libudidmodule.z.so",
24                "deps" : [
25                    "libsec_shared.z.so",
26                    "libmbedtls.z.so"
27                ]
28            }
29        }
30    }
31    ```
32    1. base_library: 白名单基础库。
33    2. private_library: 插件依赖动态库。
34    3. library_name: 插件动态库。
35    4. deps: 插件依赖动态库。
36
37  - 解决方法
38  1. 排查插件安装目录: system/lib/initvendor/lib/initsys_prod/lib/initchip_prod/lib/init39  2. 排查插件是否在白名单中配置。
40  3. 排查插件依赖动态库是否找白名单中配置。base_library 之外的动态库,添加在private_library列表中。
41
42
43编译时会提示如下类型的告警:
44  ```
45  [NOT ALLOWED]: the dependent shared library libmbedtls.z.so of libudidmodule.z.so is not in whitelist
46  [NOT ALLOWED]: libinit_eng.z.so is not in whitelists
47```
48
49## 违规场景及处理方案建议
50  1. 根据 **[规则解释](README.md#规则解释)** 排查修改, 如果需要添加白名单,需要评审。
51