一、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. 如何让虚拟机识别插入的USB闪存驱动器

    首先,打开虚拟机,再就是工具栏 有一台虚拟机 -> 移动设备  -> usb ->欧克. 版权声明:本文博主原创文章,博客,未经同意不得转载.

  2. Linq入门演练---(2)lambda表达式

    今天大家一同学习下lambda表达式, lambda表达式使用起来更方便, lambda表达式其实是一个匿名函数,使用的运算符为=> 语法: (参数)=>表达式 如果只有一个参数,可以不使 ...

  3. 前端学习笔记(zepto或jquery)——对li标签的相关操作(五)

    对li标签的相关操作——has与find的差异性 demo代码: <ul> <li><p>1</p></li> <li>2< ...

  4. 前端学习笔记(zepto或jquery)——对li标签的相关操作(二)

    对li标签的相关操作——8种方式获取li标签的第一个元素的内容 1.alert($("ul>li").first().html());2.alert($('ul>li' ...

  5. BZOJ 3209 花神的数论题 数位DP+数论

    题目大意:令Sum(i)为i在二进制下1的个数 求∏(1<=i<=n)Sum(i) 一道非常easy的数位DP 首先我们打表打出组合数 然后利用数位DP统计出二进制下1的个数为x的数的数量 ...

  6. [Java] 一、对象的创建 & 销毁

    *1.考虑静态工厂方法(static factory method)代替构造器?!优势?不足? 服务提供者架构: 1.服务接口(Service Interface) -- 提供者实现的: 2.提供者注 ...

  7. 【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘

    原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为w ...

  8. Myeclipse重装后的必要配置

    一.JDK位置 每台机器同意多个jdk版本号存在,编译时选择须要使用的jdk就可以.MyEclipse->Properties->Java->Installed JRES选择jdk位 ...

  9. Oracle推断领域包括中国

    假设你要推断领域包括中国.有一个简单的方法. SQL> drop table test purge; SQL> create table test as select * from dba ...

  10. 菜鸟学Java(二十一)——怎样更好的进行单元測试——JUnit

    測试在软件生命周期中的重要性,不用我多说想必大家也都很清楚.软件測试有许多分类,从測试的方法上可分为:黑盒測试.白盒測试.静态測试.动态測试等:从软件开发的过程分为:单元測试.集成測试.确认測试.验收 ...