Files
developtools_integration_ve…/tools/startup_guard/rules/NO-Plug-In_Module-Init

插件化白名单规则说明

规则解释

白名单严格遵循JSON格式。

init扩展插件检查

白名单 约束插件依赖。

  • 规则要求
  1. 约束除基础库外的动态库。
  2. 插件不在白名单内。
  • 白名单信息解释

    {
        "base_library":[
            "libc.so",
            "libc++.so",
            "libinit_module_engine.so"
        ],
        "private_library": {
            "libudidmodule.z.so": {  // 插件模块动态库
                "library_name" : "libudidmodule.z.so",
                "deps" : [
                    "libsec_shared.z.so",
                    "libmbedtls.z.so"
                ]
            }
        }
    }
    
    1. base_library: 白名单基础库。
    2. private_library: 插件依赖动态库。
    3. library_name: 插件动态库。
    4. deps: 插件依赖动态库。
  • 解决方法

  1. 排查插件安装目录: system/lib/init、vendor/lib/init、sys_prod/lib/init、chip_prod/lib/init。
  2. 排查插件是否在白名单中配置。
  3. 排查插件依赖动态库是否找白名单中配置。base_library 之外的动态库,添加在private_library列表中。

编译时会提示如下类型的告警:

[NOT ALLOWED]: the dependent shared library libmbedtls.z.so of libudidmodule.z.so is not in whitelist
[NOT ALLOWED]: libinit_eng.z.so is not in whitelists

违规场景及处理方案建议

  1. 根据 规则解释 排查修改, 如果需要添加白名单,需要评审。