首页> 中国专利> 一种内核模块中设备文件权限的设置方法及装置

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

摘要

本发明实施例公开了一种内核模块中设备文件权限的设备方法及装置。其中的方法包括:将编译产生的内核模块文件拷贝到根目录文件夹下;设置所述内核模块文件的权限为具有可执行权限;加载所述内核模块文件,创建至少一个设备文件;设置所述至少一个设备文件的权限为应用所需的权限;接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。本发明实施例可以防止自动加载内核模块时应用无设备文件操作权限。

著录项

  • 公开/公告号CN105160211A

    专利类型发明专利

  • 公开/公告日2015-12-16

    原文格式PDF

  • 申请/专利权人 广东欧珀移动通信有限公司;

    申请/专利号CN201510627416.0

  • 发明设计人 田小华;

    申请日2015-09-25

  • 分类号G06F21/12(20130101);G06F9/45(20060101);

  • 代理机构44202 广州三环专利代理有限公司;

  • 代理人郝传鑫;熊永强

  • 地址 523860 广东省东莞市长安镇乌沙海滨路18号

  • 入库时间 2023-12-18 12:59:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-30

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F21/12 变更前: 变更后: 申请日:20150925

    专利权人的姓名或者名称、地址的变更

  • 2018-06-29

    授权

    授权

  • 2016-01-13

    实质审查的生效 IPC(主分类):G06F21/12 申请日:20150925

    实质审查的生效

  • 2015-12-16

    公开

    公开

说明书

技术领域

本发明涉及Linux内核编译技术领域,尤其涉及一种内核模块中设备文件权限的设置方法及装置。

背景技术

对于Linux内核的编译,我们有多种方式obj-y(表示需要编译到内核中的目标文件名集合)生成.o文件,此文件通过连接最终打包进内核镜像文件,然后开机自动加载注册驱动;obj-m(表示需要编译成模块的目标文件名集合)编译生成.ko文件,其作用可以避免开源内核代码时公布于众,给予研发者ko文件让其加载即可。如图图1所示的现有的文件目录结构示意图,目前我们都是将ko文件放置于手持设备的systemlibmodules目录下,通过insmodsystemlibmodulesxxx.ko方式加载内核模块,此时会导致此模块的一些设备文件应用无访问权限的问题。

发明内容

本发明实施例提供一种内核模块中设备文件权限的设置方法及装置,以防止自动加载内核模块时应用无设备文件操作权限。

一方面,提供了一种内核模块中设备文件权限的设置方法,所述方法包括:

将编译产生的内核模块文件拷贝到根目录文件夹下;

设置所述内核模块文件的权限为具有可执行权限;

加载所述内核模块文件,创建至少一个设备文件;

设置所述至少一个设备文件的权限为应用所需的权限;

接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

优选地,所述方法还包括:

将内核模块的编译方式由obj-y修改为obj-m,将linux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。

优选地,所述将编译产生的内核模块文件拷贝到根目录文件夹下之后,所述方法还包括:

将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。

优选地,所述设置所述内核模块文件的权限为具有可执行权限,包括:

对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限;

其中,所述内核模块文件具有至少一个权限值。

优选地,所述接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问之后,所述方法还包括:

对所述至少一个设备文件进行对应功能的操作。

另一方面,提供了一种内核模块中设备文件权限的设置装置,所述装置包括:

拷贝单元,用于将编译产生的内核模块文件拷贝到根目录文件夹下;

设置单元,用于设置所述内核模块文件的权限为具有可执行权限;

创建单元,用于加载所述内核模块文件,创建至少一个设备文件;

所述设置单元还用于设置所述至少一个设备文件的权限为应用所需的权限;

访问单元,用于接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

优选地,所述装置还包括:

编译单元,用于将内核模块的编译方式由obj-y修改为obj-m,将linux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。

优选地,所述装置还包括:

烧录单元,用于将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。

优选地,所述设置单元具体用于:

对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限;

其中,所述内核模块文件具有至少一个权限值。

优选地,所述装置还包括:

操作单元,用于对所述至少一个设备文件进行对应功能的操作。

实施本发明实施例提供的一种内核模块中设备文件权限的设置方法及装置,具有如下有益效果:

将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有的文件目录结构示意图;

图2为本发明实施例提供的一种内核模块中设备文件权限的设置方法的流程示意图;

图3对图2所示的本发明实施例提供的一种内核模块中设备文件权限的设置方法进一步细化的流程示意图;

图4为本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图;

图5为对图4所示的本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2为本发明实施例提供的一种内核模块中设备文件权限的设置方法的流程示意图,该方法包括以下步骤:

S101、将编译产生的内核模块文件拷贝到根目录文件夹下。

本实施例应用于Android手持设备,例如手机、平板电脑等。

现有技术中,通过obj-m编译得到的ko文件放置于手持设备的systemlibmodules目录下,本实施例将通过obj-m编译得到的内核模块文件拷贝到根目录文件夹下,如图1所示,该根目录文件夹与system是并列的文件夹,内核模块文件xxx.ko对应/xxx.ko。

S102、设置所述内核模块文件的权限为具有可执行权限。

将编译产生的内核模块文件拷贝到根目录文件夹下后,修改内核模块文件xxx.ko的权限(如chmod777/xxx.ko),让其具备可执行权限。

S103、加载所述内核模块文件,创建至少一个设备文件。

通过insmod/xxx.ko加载内核模块会进行驱动注册创建一系列内核模块的设备文件供应用操作。

S104、设置所述至少一个设备文件的权限为应用所需的权限。

加载完毕内核模块xxx.ko后,需要修改设备文件的读写等访问权限为应用所需的权限。

S105、接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

完成上述权限设置操作后,就可以访问设备文件了。

根据本发明实施例提供的一种内核模块中设备文件权限的设置方法,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。

图3对图2所示的本发明实施例提供的一种内核模块中设备文件权限的设置方法进一步细化的流程示意图,该方法包括以下步骤:

S201、将内核模块的编译方式由obj-y修改为obj-m,将linux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。

修改内核编译方式为生成内核模块文件xxx.ko,需要将linux的开源协议(GPL,相当于公有)修改为私有协议(proprietary),通过obj-m编译获得内核模块文件。

S202、将编译产生的内核模块文件拷贝到根目录文件夹下。

S203、将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。

将编译产生的内核模块文件xxx.ko拷贝到一个叫root的文件夹下,这个文件夹会打包成一个镜像文件,烧录进手持设备后对应根文件系统,内核模块文件xxx.ko对应/xxx.ko。

S204、对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限。

将编译产生的内核模块文件挂载根文件系统后,对内核模块文件xxx.ko的权限(如chmod777/xxx.ko)进行赋值,让其具备可执行权限。内核模块文件具有多种权限值,例如,4代表读权限,2写权限,1执行权限,7就代表读写执行权限,5就代表读执行权限,以此类推。

S205、加载所述内核模块文件,创建至少一个设备文件。

通过insmod/xxx.ko加载内核模块,加载成功后该模块,如距离传感器,显示屏等,会进行驱动注册创建一系列模块设备文件供应用操作。

S206、设置所述至少一个设备文件的权限为应用所需的权限。

加载完毕内核模块xxx.ko后,需要修改设备文件的读写等访问权限为应用所需的权限,如chownsystemsystem/sys/class/motor/cameramotor/mdmode。

S207、接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

S208、对所述至少一个设备文件进行对应功能的操作。

完成上述操作后,我们可以访问设备文件,如打电话时读取sys/class/als_ps/ps_raw,当值为1远离时亮屏,当值为0时接近(如靠近耳朵)熄灭屏幕。

根据本发明实施例提供的一种内核模块中设备文件权限的设置方法,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。

图4为本发明实施例提供的一种内核模块中设备文件权限的设置装置的结构示意图,该装置1000包括:

拷贝单元11,用于将编译产生的内核模块文件拷贝到根目录文件夹下。

本实施例应用于Android手持设备,例如手机、平板电脑等。

现有技术中,通过obj-m编译得到的ko文件放置于手持设备的systemlibmodules目录下,本实施例拷贝单元11将通过obj-m编译得到的内核模块文件拷贝到根目录文件夹下,如图1所示,该根目录文件夹与system是并列的文件夹,内核模块文件xxx.ko对应/xxx.ko。

设置单元12,用于设置所述内核模块文件的权限为具有可执行权限。

拷贝单元11将编译产生的内核模块文件拷贝到根目录文件夹下后,设置单元12修改内核模块文件xxx.ko的权限(如chmod777/xxx.ko),让其具备可执行权限。

创建单元13,用于加载所述内核模块文件,创建至少一个设备文件。

通过insmod/xxx.ko加载内核模块创建单元13会进行驱动注册创建一系列内核模块的设备文件供应用操作。

所述设置单元12还用于设置所述至少一个设备文件的权限为应用所需的权限。

加载完毕内核模块xxx.ko后,设置单元12需要修改设备文件的读写等访问权限为应用所需的权限。

访问单元14,用于接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

完成上述权限设置操作后,就可以访问设备文件了。

根据本发明实施例提供的一种内核模块中设备文件权限的设置装置,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。

图5对图4所示的本发明实施例提供的一种内核模块中设备文件权限的设置装置进一步细化的结构示意图,该装置2000包括:

编译单元21,用于将内核模块的编译方式由obj-y修改为obj-m,将linux的开源协议修改为私有协议,以及通过obj-m编译获得所述内核模块文件。

编译单元21修改内核编译方式为生成内核模块文件xxx.ko,需要将linux的开源协议(GPL,相当于公有)修改为私有协议(proprietary),通过obj-m编译获得内核模块文件。

拷贝单元22,用于将编译产生的内核模块文件拷贝到根目录文件夹下。

烧录单元23,用于将所述根目录文件夹打包成镜像文件,将所述镜像文件烧录进终端的根文件系统。

拷贝单元22将编译单元21编译产生的内核模块文件xxx.ko拷贝到一个叫root的文件夹下,这个文件夹会打包成一个镜像文件,烧录单元23烧录进手持设备后对应根文件系统,内核模块文件xxx.ko对应/xxx.ko。

设置单元24,用于对所述内核模块文件的权限进行赋值,使所述内核模块文件的权限为具有可执行权限。

将编译产生的内核模块文件挂载根文件系统后,设置单元24对内核模块文件xxx.ko的权限(如chmod777/xxx.ko)进行赋值,让其具备可执行权限。内核模块文件具有多种权限值,例如,4代表读权限,2写权限,1执行权限,7就代表读写执行权限,5就代表读执行权限,以此类推。

创建单元25,用于加载所述内核模块文件,创建至少一个设备文件。

通过insmod/xxx.ko加载内核模块,加载成功后该模块,如距离传感器,显示屏等,创建单元25会进行驱动注册创建一系列模块设备文件供应用操作。

所述设置单元24还用于设置所述至少一个设备文件的权限为应用所需的权限。

加载完毕内核模块xxx.ko后,需要修改设备文件的读写等访问权限为应用所需的权限,如chownsystemsystem/sys/class/motor/cameramotor/mdmode。

访问单元26,用于接收所述应用根据所述应用所需的权限对所述至少一个设备文件的访问。

操作单元27,用于对所述至少一个设备文件进行对应功能的操作。

完成上述操作后,我们可以访问设备文件,如打电话时读取sys/class/als_ps/ps_raw,当值为1远离时亮屏,当值为0时接近(如靠近耳朵)熄灭屏幕。

根据本发明实施例提供的一种内核模块中设备文件权限的设置装置,将编译产生的内核模块文件拷贝到根目录文件夹下,设置内核模块文件的权限为具有可执行权限,加载内核模块文件,创建多个设备文件,设置该多个设备文件的权限为应用所需的权限,从而可以接收应用对多个设备文件的访问,防止自动加载内核模块时应用无设备文件操作权限。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(RandomAccessMemory,RAM)、只读存储器(Read-OnlyMemory,ROM)、电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)、只读光盘(CompactDiscRead-OnlyMemory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DigitalSubscriberLine,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。

总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号