一种内核模块中设备文件权限的设置方法及装置的制造方法

文档序号:8943291阅读:244来源:国知局
一种内核模块中设备文件权限的设置方法及装置的制造方法
【技术领域】
[0001]本发明涉及Linux内核编译技术领域,尤其涉及一种内核模块中设备文件权限的设置方法及装置。
【背景技术】
[0002]对于Linux内核的编译,我们有多种方式ob j-y (表示需要编译到内核中的目标文件名集合)生成.ο文件,此文件通过连接最终打包进内核镜像文件,然后开机自动加载注册驱动;obj-m(表示需要编译成模块的目标文件名集合)编译生成.ko文件,其作用可以避免开源内核代码时公布于众,给予研发者ko文件让其加载即可。如图图1所示的现有的文件目录结构示意图,目前我们都是将ko文件放置于手持设备的systenAlibVnodules目录下,通过insmod system\lib\modules\xxx.ko方式加载内核模块,此时会导致此模块的一些设备文件应用无访问权限的问题。

【发明内容】

[0003]本发明实施例提供一种内核模块中设备文件权限的设置方法及装置,以防止自动加载内核模块时应用无设备文件操作权限。
[0004]—方面,提供了一种内核模块中设备文件权限的设置方法,所述方法包括:
[0005]将编译产生的内核模块文件拷贝到根目录文件夹下;
[0006]设置所述内核模块文件的权限为具有可执行权限;
[0007]加载所述内核模块文件,创建至少一个设备文件;
[0008]设置所述至少一个设备文件的权限为应用所需的权限;
[0009]接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。
[0010]优选地,所述方法还包括:
[0011 ] 将内核模块的编译方式由ob j-y修改为ob j-m,将I inux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。
[0012]优选地,所述将编译产生的内核模块文件拷贝到根目录文件夹下之后,所述方法还包括:
[0013]将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。
[0014]优选地,所述设置所述内核模块文件的权限为具有可执行权限,包括:
[0015]对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限;
[0016]其中,所述内核模块文件具有至少一个权限值。
[0017]优选地,所述接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问之后,所述方法还包括:
[0018]对所述至少一个设备文件进行对应功能的操作。
[0019]另一方面,提供了一种内核模块中设备文件权限的设置装置,所述装置包括:
[0020]拷贝单元,用于将编译产生的内核模块文件拷贝到根目录文件夹下;
[0021]设置单元,用于设置所述内核模块文件的权限为具有可执行权限;
[0022]创建单元,用于加载所述内核模块文件,创建至少一个设备文件;
[0023]所述设置单元还用于设置所述至少一个设备文件的权限为应用所需的权限;
[0024]访问单元,用于接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。
[0025]优选地,所述装置还包括:
[0026]编译单元,用于将内核模块的编译方式由obj-y修改为obj_m,将Iinux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。
[0027]优选地,所述装置还包括:
[0028]烧录单元,用于将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。
[0029]优选地,所述设置单元具体用于:
[0030]对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限;
[0031 ] 其中,所述内核模块文件具有至少一个权限值。
[0032]优选地,所述装置还包括:
[0033]操作单元,用于对所述至少一个设备文件进行对应功能的操作。
[0034]实施本发明实施例提供的一种内核模块中设备文件权限的设置方法及装置,具有如下有益效果:
[0035]将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。
【附图说明】
[0036]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为现有的文件目录结构示意图;
[0038]图2为本发明实施例提供的一种内核模块中设备文件权限的设置方法的流程示意图;
[0039]图3对图2所示的本发明实施例提供的一种内核模块中设备文件权限的设置方法进一步细化的流程示意图;
[0040]图4为本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图;
[0041]图5为对图4所示的本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图。
【具体实施方式】
[0042]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]图2为本发明实施例提供的一种内核模块中设备文件权限的设置方法的流程示意图,该方法包括以下步骤:
[0044]S101、将编译产生的内核模块文件拷贝到根目录文件夹下。
[0045]本实施例应用于Android手持设备,例如手机、平板电脑等。
[0046]现有技术中,通过obj-m编译得到的ko文件放置于手持设备的system\lib\modules目录下,本实施例将通过obj-m编译得到的内核模块文件拷贝到根目录文件夹下,如图1所示,该根目录文件夹与system是并列的文件夹,内核模块文件xxx.ko对应/xxx.koo
[0047]S102、设置所述内核模块文件的权限为具有可执行权限。
[0048]将编译产生的内核模块文件拷贝到根目录文件夹下后,修改内核模块文件xxx.ko的权限(如chmod 777/xxx.ko),让其具备可执行权限。
[0049]S103、加载所述内核模块文件,创建至少一个设备文件。
[0050]通过insmod/xxx.ko加载内核模块会进行驱动注册创建一系列内核模块的设备文件供应用操作。
[0051]S104、设置所述至少一个设备文件的权限为应用所需的权限。
[0052]加载完毕内核模块xxx.ko后,需要修改设备文件的读写等访问权限为应用所需的权限。
[0053]S105、接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。
[0054]完成上述权限设置操作后,就可以访问设备文件了。
[0055]根据本发明实施例提供的一种内核模块中设备文件权限的设置方法,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。
[0056]图3对图2所示的本发明实施例提供的一种内核模块中设备文件权限的设置方法进一步细化的流程示意图,该方法包括以下步骤:
[0057]S201、将内核模块的编译方式由obj-y修改为obj_m,将Iinux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。
[0058]修改内核编译方式为生成内核模块文件xxx.ko,需要将Iinux的开源协议(GPL,相当于公有)修改为私有协议(proprietary),通过obj-m编译获得内核模块文件。
[0059]S202、将编译产生的内核模块文件拷贝到根目录文件夹下。
[0060]S203、将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。
[0061]将编译产生的内核模块文件xxx.ko拷贝到一个叫root的文件夹下,这个文件夹会打包成一个镜像文件,烧录进手持设备后对应根文件系统,内核模块文件xxx.ko对应/xxx.koo
[0062]S204、对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限。
[0063]将编译产生的内核模块文件挂载根文件系统后,对内核模块文件xxx.ko的权限(如chmod 777/xxx.ko)进行赋值,让其具备可执行权限。内核模块文件具有多种权限值,例如,4代表读权限,2写权限,I执行权限,7就代表读写执行权限,5就代表读执行权限,以此类推。
[0064]S205、加载所述内核模块文件,创建至少一个设备文件。
[0065]通过insmod/xxx.ko加载内核模块,加载成功后该模块,如距离传感器,显示屏等,会进行驱动注册创建一系列模块设备文件供应用操作。
[0066]S206、设置所述至少一个设备文件的权限为应用所需的权限。
[0067]加载完毕内核模块xxx.ko后,需要修改设备文件的读写等访问权限为应用所需的权限,如 chown system system/sys/class/motor/cameramotor/mdmode。
[0068]S207、接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。
[0069]S208、对所述至少一个设备文件进行对应功能的操作。
[0070]完成上述操作后,我们可以访问设备文件,如打电话时读取SyS/claSS/alS_pS/ps_raw,当值为I远离时亮屏,当值为O时接近(如靠近耳朵)熄灭屏幕。
[0071]根据本发明实施例提供的一种内核模块中设备文件权限的设置方法,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。
[0072]图4为本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图,该装置1000包括:
[0073]拷贝单元11,用于将编译产生的内核模块文件拷贝到根
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1