一、KEXT包的安全性说明

  1. KEXT 程序包及其包含的所有文件及文件夹必须属于 root 用户(用户 id 是 0)
  2. KEXT 程序包及其包含的所有文件及文件夹必须属于 wheel 组(组 id 是 0)
  3. KEXT 程序包及其包含的所有文件夹的权限掩码必须是 0755 (rwxr-xr-x)
  4. KEXT 程序包中的所有文件的权限掩码必须是 0644 (rw-r--r--)

使用 xcode 编译内核扩展时,会设置出了用户与组以外的所有要求,我们只要通过如下命令来设置用户与组即可:

sudo chown -R root:wheel xxx.kext

需要注意的是,不要在 xcode 生成的内核扩展上直接修改,这样会造成 xcode 无法删除内核扩展,最好拷贝出来修改。

二、命令行实用程序

  1. kextload:加载内核扩展, sudo kextload xxx.kext
  2. kextunload:卸载内核扩展, sudo kextunload xxx.kext
  3. kextutil:加载内核扩展,并提供诊断信息,便于分析加载失败的原因
  4. kextstat:显示所有已加载的内核扩展
  5. ioreg:show I/O Kit registry,"man ioreg"
  6. ioclasscount:内核对象的内存管理是基于引用计数,该工具可以用来打印所有已加载的内核对象的引用计数个数,便于调试内存泄露

三、查看调试输出

实用 Console 程序查看内核扩展中输出的 Log

四、IORegistryExplorer

用来查看系统系统上已经加载的驱动程序。是 xcode 的附属工具,需要单独下载:hardware_io_tools_for_xcode

五、The Wheel Group

There is a special group in BSD called the wheel group.

Membership in the wheel group confers on users the ability to become the root user by using the su utility on the command line.

Users who are not in the wheel group can’t become the root user,

even if they have the correct password.

六、

[笔记] OS X and iOS 内核开发的更多相关文章

  1. iOS学习笔记(一)——ios搭建开发环境

    好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC OS X 另加一部iP ...

  2. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

  3. WWDC 2014 Session笔记 - iOS界面开发的大一统

    本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What's New in Cocoa Touch Building Adaptive Apps with UIKit Wh ...

  4. 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区

    linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情. 下面主要总结一些和贡献代码相关的主要内容. 加入社区 编码风格 提 ...

  5. 009_【OS X和iOS系统学习笔记】 OS X架构

    1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件. 2.Darwin是操作系统的类UNIX核心,本身由内核.XNU和运行时组成. 3.uname指令:可以得到有关架构的详细信息以及 ...

  6. 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备

    在尝试内核开发之前,需要对内核有个整体的了解. 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通 ...

  7. iOS界面开发

    [转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ...

  8. ios 多线程开发(一)简介

    简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ...

  9. ios搭建开发环境

    ios搭建开发环境 好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC O ...

随机推荐

  1. WIN phone 8.1 SDK 坑遇到 Hyper-V

    先声明! 仅限WIN操作系统下   ! 事实上 Hyper-V 就是个虚拟机 ,是微软弄出来和 VM 争市场的.(所以Hyper-V中你随便安装什么系统都行,可是 Hyper-V必须 安装在WIN下) ...

  2. python_基础学习_03_正则替换文本(re.sub)

    python的正则表达式模块是re,替换相关的方法是sub. 例如我们要做如下的替换将所有的 替换为空格,可以通过下面代码实现: import re input = 'hello world' #第一 ...

  3. Arcgis For Android之GPS定位实现

    翻开曾经做的东西,看了看,非常多从逻辑上比較乱,对之做了改动,完毕后实现的效果为: MapActivity源码例如以下: package com.lzugis.map; import java.io. ...

  4. APMServ—我用过的最优秀的PHP集成环境工具

    原文:APMServ-我用过的最优秀的PHP集成环境工具 经常折腾wordpress和各种cms,免不了要在本地测试一些程序,所以选择一款好的php集成环境就至关重要啦. 1. 我用过的php集成环境 ...

  5. Content-Type boundary 问题

    我并不知道问题怎么描述清楚一些. 事情是这样的,使用  Microsoft Dynamics CRM Server 2016 做CRM系统的时候用到 使用 Web API 执行批处理操作(参见SDK或 ...

  6. Spark入门级小玩

    ·背景 随着周边吐槽hadoop的声音渐渐多起来之后,spark也逐渐进入了大家的视野.之前,笔者有粗略的写过一篇spark的安装和性能比较[http://www.cnblogs.com/zacard ...

  7. 多个Storyboard切换

    - (void)showStoryboard { // 实例化MainStoryboard UIStoryboard *storyboard = [UIStoryboard storyboardWit ...

  8. 2014阿里实习生面试题——mysql如何实现的索引

    这是2014北京站的两副面孔阿里实习生问题扯在一起: 在MySQL中.索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,比方MyISAM和InnoDB存储引擎. MyISAM索引实现: ...

  9. Oracle 11g sys,system 密码忘记设置解决办法

    原文:Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到: Ora ...

  10. WEB项目(B/S系统)打包安装(总结篇)

    原文:WEB项目(B/S系统)打包安装(总结篇) 打包安装程序的制作选择性还很多的,有installshield,wise installer,inno setup这几个做打包安装项目都是很强大的,要 ...