GKI 2.0 内核启动时加载模块报错 Permission Denied 的解决方案

GKI 2.0 内核启动时加载模块报错 Permission Denied 的解决方案

日暮清林
2025-02-19 / 0 评论 / 37 阅读 / 正在检测是否收录...

前言

android15-6.6 内核编译后,打包镜像、DTB、内核模块到 AOSP,刷入后开机报错。
查看日志发现 init 刚进入第一阶段,正在加载所有内核模块,结果第一个模块就报错,于是中止。
研究发现内核模块的加载是错误码-EACCESS,查看代码分析发现是内核模块 exports protected symbol。该符号是定义在 abi_gki_protected_exports_aarch64 文件中的。因此要解决问题可以采用三个方案:

  1. built-in 内核模块
  2. 修改该符号表
  3. 禁用检查

解决方案

​​‌‌​​​‌‌​‌​​‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​‌​​‌​​​‌​​​‌‌​‍​‌​‌‌​​​‌‌​​​​​‍​​‌​‌‌‌‌‌‌‌‌​​​‍​‌‌​​‌‌‌​‌‌​​‌‌‌‍​‌‌​​​‌‌‌​​​‌​‌‍​​‌‌‌‌‌‌‌‌​​‌‌‍‌​‌‌‌​​​‍‌​‌‌​‌​​‍‌​‌‌​‌‌​‍‌‌​‌‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​‌​​​‌‍‌‌​​‌‌‌‌‍‌‌​‌‌‌‌‌‍​‌​‌‌‌​​‌‌‌‌​‌​‍​​‌​‌‌‌‌‌​​​‌‌‌‍​‌​‌​‌‌‌‌​‌​​​​‍​‌​‌‌​‌​‌​‌​‌‌‌‍​​‌‌​‌​​​​​‌​​‌‍​‌​‌‌​‌​‌​‌‌‌‌‌‍​‌‌‌​​​​‌​​​​​‌​‍​​‌​‌​‌‌‌​‌‌‌‌​‍​‌​‌​​​‌​‌​‌​​​‍​​‌‌‌​‌​‌​‌‌​‌​‍​‌‌​‌​‌​‌‌‌​​‌‌​‍‌‌​‌‌‌‌‌‍‌​‌​‌‌‌‌‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌​​‌​​‌​‍‌​​‌​‌‌​‍‌​​​‌‌​​‍‌​​​‌‌​​‍‌​​‌​‌‌​‍‌​​‌​​​​‍‌​​‌​​​‌‍‌‌​‌‌‌‌‌‍‌​‌‌‌​‌‌‍‌​​‌‌​‌​‍‌​​‌​​​‌‍‌​​‌​‌‌​‍‌​​‌‌​‌​‍‌​​‌‌​‌‌‍‌‌​‌‌‌‌‌‍​​​‌​​‌​‌‌‌‌​‌‌‍​‌‌‌​‌‌​​​​‌‌‌​​‍​‌​‌‌‌​​‌​​‌‌​​‍​​‌‌​‌​​‌​​​‌‌​‍​​‌​‌‌‌‌​‌‌​‌‌‌‍​​‌‌‌‌‌‌‌‌​​‌​‍​​​​​​​​‌‌‌‌​​‌‌‍​​​‌​‌​‌‌​​‌‌‌​‍‌​‌‌​​‌‌‍‌​​‌‌​‌​‍‌​​​‌​​‌‍‌​​‌​‌‌​‍‌​‌​​​​​‍‌​‌‌​​‌​‍‌​​‌‌‌‌​‍‌​​​‌‌​‌‍‌​​​‌​​‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍​‌‌​​​‌​‌‌‌​​​‌‍‌‌​​‌‌​‌‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​​‌​‌​‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​​‌‌​‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌​‍‌‌​​​‌‌​‍​‌​‌‌​‌‌‌‌​​‌​​‍​‌‌​​​​‌​‌​​​‌‌‍​​​​​​​​‌‌‌‌​​‌‌‍​‌​‌‌​​​‌‌​​​​​‍​​‌‌​‌​​‌‌‌‌​​​‍​‌​‌​​​‌‌​​‌‌‌‌‍​‌​‌​​​‌​‌‌‌‌‌‌‍​​​​​​​​‌‌‌​​‌​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌‌‍‌​​​‌‌‌‌‍‌​​​‌‌​​‍‌‌​​​‌​‌‍‌​‌​​​‌‌‍‌​‌​​​‌‌‍‌​​‌​‌​​‍‌​​​​‌‌​‍‌​​‌​​‌‌‍‌​​‌​‌‌​‍‌​​‌​​​‌‍‌‌​‌​​​‌‍‌​​​‌‌​​‍‌​​​‌​‌​‍‌​‌​​​‌‌‍‌​​​‌​‌‌‍‌​​​‌​‌​‍‌​​​‌​‌‌‍‌​​‌​​​​‍‌​​​‌‌​‌‍‌​​‌​‌‌​‍‌​​‌‌‌‌​‍‌​​‌​​‌‌‍‌​​​‌‌​​‍‌​‌​​​‌‌‍‌​​‌‌​​‌‍‌​​‌​‌‌​‍‌​​​​‌‌‌‍‌‌​‌​​‌​‍‌​​​‌‌‌‌‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌​​‌​​‌​‍‌​​‌​‌‌​‍‌​​​‌‌​​‍‌​​​‌‌​​‍‌​​‌​‌‌​‍‌​​‌​​​​‍‌​​‌​​​‌‍‌‌​‌​​‌​‍‌​​‌‌​‌‌‍‌​​‌‌​‌​‍‌​​‌​​​‌‍‌​​‌​‌‌​‍‌​​‌‌​‌​‍‌​​‌‌​‌‌‍‌‌​‌​​‌​‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌​​​‌‌​‌‍‌​​‌​​​​‍‌​​​‌‌​‌‍‌‌​‌​​‌​‍‌​​‌​​​​‍‌​​‌​​​‌‍‌‌​‌​​‌​‍‌​​‌‌​​​‍‌​​‌​‌​​‍‌​​‌​‌‌​‍‌‌​‌​​‌​‍‌‌​​‌‌​‌‍‌‌​‌​​‌​‍‌‌​​‌‌‌‌‍‌‌​‌​​‌​‍‌​​‌​‌​​‍‌​​‌‌​‌​‍‌​​​‌‌​‌‍‌​​‌​​​‌‍‌​​‌‌​‌​‍‌​​‌​​‌‌‍‌‌​‌​​​‌‍‌​​‌​‌‌‌‍‌​​​‌​‌‌‍‌​​‌​​‌​‍‌​​‌​​‌‌

先尝试直接内置模块代码,不单独作为模块编译,结果其他模块都报错...估计是模块依赖的问题,要这样一个一个解决的话还不如把所有模块都内置了...于是果断选择方案三:禁用 CONFIG_MODULE_SIG_PROTECT

0

评论 (0)

取消