手动给内核模块签名

筅森魡賤 提交于 2020-02-05 05:21:15

 

一、insmod 遇到签名问题:

Required key not available

key文件路径:out/target/product/msm8953_64/obj/kernel/msm-3.18

sign-file路径:kernel/msm-3.18/scripts

模块路径:out/target/product/msm8953_64/obj/kernel/msm-3.18/driver

举例如下:

perl /kernel/msm-3.18/scripts/sign-file sha512 signing_key.priv signing_key.x509 ~/asix.ko

二、开机自动加载模块

diff --git a/qcom/msm8953_64/init.target.rc b/qcom/msm8953_64/init.target.rc
index c6caf93..0f14ef9 100755
--- a/qcom/msm8953_64/init.target.rc
+++ b/qcom/msm8953_64/init.target.rc
@@ -164,6 +164,8 @@ on boot
     insmod /system/lib/modules/adsprpc.ko
 # access permission for secure touch
     chmod 0777 /system/bin/uartd
+    chmod 0777 /system/lib/modules/asix.ko
+    insmod /system/lib/modules/asix.ko

三、增加selinux权限

type=1400 audit(15.489:5): avc: denied { module_load } for pid=1 comm="init" path="/system/lib/modules/asix.ko" dev="mmcblk0p24" ino=2289 scontext=u:r:init:s0         tcontext=u:object_r:system_file:s0 tclass=system permissive=0

开机过程需要增加selinux权限

allow secontext tcontext:class 许可 ;

secontext指的是scontext=u:r:init:s0的init,tcontext 指的是 tcontext=u:object_r:system_file:s0 中的system_file, class指的是“tclass=system”中的system,许可指的是“denied { module_load }”中的module_load,

diff --git a/qcom/sepolicy/common/init.te b/qcom/sepolicy/common/init.te
index 7e82a94..7c17d97 100644
--- a/qcom/sepolicy/common/init.te
+++ b/qcom/sepolicy/common/init.te
@@ -37,4 +37,4 @@ allow init uartd_exec:file getattr;
 #dontaudit non configfs usb denials
 dontaudit init sysfs:dir write;
 +allow init system_file:system module_load;

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!