美文网首页
iOS 启动链详解~

iOS 启动链详解~

作者: 飞奔的羊 | 来源:发表于2019-07-27 18:08 被阅读0次

Step 1、按下电源

额,这个就不谈了。

Step 2、Boot ROM

所有iOS设备在处理器内都集成有一段名为Boot Room的代码,此代码被烧制到处理器内的一块存储上,并且只读,所以它的完整性的得到保障的。但这也同样会有问题,万一Boot Room本身存在安全漏洞,那么就无法通过更新进行修复。

而Boot Room的功能主要是负责初始化设备,并且引导加载底层引导加载器LLB(Low Level Bootloader)。在这一过程中,Boot Room会使用Apple Root CA Public证书对LLB进行验证,如果验证成功则加载iBoot,不成功则启动失败。

Boot Room在启动的过程中的地位至关重要,由于Boot Room只读特性,保证了iPhone上不能安装Android系统。同理,在除了iPhone其他的设备上没有Boot Room,也就无法安装iOS系统。

Step 3、Low Level Bootloader

LLB(Low Level Bootloader)不同于Boot ROM,它不是被内嵌在设备上的,而是在iOS系统中,同其他文件一样,是一种被加密的IMG3格式文件,会随着iOS系统更新而更新。

LLB负责启动更高层次的Bootloader,同样这一步也需要进行验证。验证不成启动失败,成功则继续。

Step 4、iBoot

iBoot 才是引导过程中的主加载器,它负责加载操作系统内核。同样这一步也需要进行验证。验证不成启动失败,成功则继续。

iBoot在内存中被加载至地址0x5FF00000处。它有一个内建的HFS+驱动,可以直接访问iOS的文件系统,并支持多线程。iBoot通常会派生出两个线程:

一个main线程,负责显示启动时的苹果logo,并根据auto-boot和boot-command环境变量的设置(正常引导模式下boot-command被设为fsboot)进行系统引导,引导过程可以根据bootdelay环境变量延迟进行;

一个是uart reader线程,苹果可能将这个线程用于调试,其基本处于闲置状态。正常引导模式中,iBoot调用fsboot()函数挂载iOS系统分区,定位内核,准备设备数并引导系统,如果引导失败,则进入恢复模式引导。

以上三个步骤只要其中任何一个步骤验证失败,则启动失败。

Step 5、launchd && 守护程序和代理程序 && SpringBoard

之前最主要的几部完成之后就剩下启动相关程序了,先启动第一个程序launchd,再由由launchd启动守护程序和代理程序,之后是桌面应用SpringBoard,系统启动完成。

相关文章

  • iOS 启动链详解~

    Step 1、按下电源 额,这个就不谈了。 Step 2、Boot ROM 所有iOS设备在处理器内都集成有一段名...

  • iOS AppDelegate生命周期

    application:didFinishLaunchingWithOptions:详解 iOS 程序启动时总会调...

  • 二、事件传递链和响应者链

    iOS触摸事件详解iOS开发-事件传递响应链 响应者链 UIResponser包括了各种Touch message...

  • 深入理解iOS App的启动过程

    前言 参考资料:深入理解iOS App的启动过程iOS 应用程序启动过程及原理总结iOS:App启动过程详解(不同...

  • ios多线程详解

    ios多线程详解 一、前言 在ios中每个进程启动后都会建立一个主线程...

  • 越狱-概述及工具使用

    通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限ROOT权限. iOS系统安...

  • iOS越狱

    一、概述 越狱(jailBreak),通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系...

  • iOS逆向实战--028:越狱 & OpenSSH

    越狱概述 越狱(Jailbreak):通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系...

  • 越狱概述及基本操作

    越狱:通过分析iOS系统的代码,找出iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大...

  • iOS逆向-越狱(Ⅹ)

    越狱(jailBreak) 通过iOS系统安全启动链漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限...

网友评论

      本文标题:iOS 启动链详解~

      本文链接:https://www.haomeiwen.com/subject/kngerctx.html