以下摘抄自iOS iBoot源码解释文档,内容较易理解不做翻译了。

iBoot Upgrade Mode

The iBoot application normally insists on booting from the first
partition on the storage device, using a kernelcache located in
/System/Library/Caches/com.apple.kernelcaches/kernelcache, with a
devicetree located in ROM and with the first partition as the root
device.

Upgrade mode provides an alternative boot path suitable for booting a
standalone restore/recovery system. It chains to a new bootloader,
and the new bootloader then loads kernelcache, devicetree, ramdisk and
optionally a display image before booting the kernelcache.

To invoke upgrade mode, the boot-command variable must be set to
‘upgrade’, and the upgrade partition must contain the following files:

/iBEC
/kernelcache
/devicetree
/ramdisk
/apticket.der

being the appropriate iBoot iBEC component, kernelcache, device tree,
ramdisk and personalised AP ticket for the system. In addition if the
file /logo is present, it will be displayed by the iBEC before the other
components are loaded.

When the kernelcache is booted, the RELEASE-configured iBEC will force
the boot-args variable to:

‘rd=md0 nand-enable-reformat=1 -progress’

Non-RELEASE configurations will add ‘rd=md0’ to boot-args but
otherwise preserve its contents. In neither case is the value saved
to NVRAM.

All of the files listed above are expected to be in their usual
(image3) format, and must be signed and/or personalised as normal.

Both iBoot and the upgrade iBEC will identify the upgrade partition by
its LwVM partition name, which must be ‘Update’.

If any of the following occurs, the unit will end up in the ROM
iBoot in recovery mode:

  • the upgrade partition does not exist or cannot be mounted
  • the file /iBEC does not exist in the upgrade partition
  • the contents of the iBEC file are not an Image3 file or fail
    authentication

If any of the following occurs, the unit will end up in the upgrade
iBEC in recovery mode:

  • the upgrade partition cannot be mounted (e.g. due to NAND
    format incompatibility)
  • the files /kernelcache, /devicetree and /ramdisk do not exist
    in the upgrade partition
  • the contents of any of these files are not valid Image3, or
    fail authentication
  • the kernelcache file does not contain a compressed mach-o
    kernelcache
  • the devicetree file does not contain a valid devicetree

The iBEC component will set the auto-boot variable to false when
loaded in upgrade mode, to avoid the risk of locking the unit up due
to a hang while booting the upgrade kernel.

iOS iTunes/iBoot 模式系统升级详解相关推荐

  1. iOS 证书与签名 解惑详解

    iOS 证书与签名 解惑详解 分类: iPhone2012-06-06 19:57 9426人阅读 评论(1) 收藏 举报 iosxcodecryptographyappleiphone测试 目录(? ...

  2. iOS中MVC等设计模式详解

    iOS中MVC等设计模式详解 在iOS编程,利用设计模式可以大大提高你的开发效率,虽然在编写代码之初你需要花费较大时间把各种业务逻辑封装起来.(事实证明这是值得的!) 模型-视图-控制器(MVC)设计 ...

  3. iOS申请发布证书-图文详解

    iOS申请发布证书-图文详解 首先登陆https://developer.apple.com 选择iOS Developer program 板块下的 Certificates,Identifiers ...

  4. Cisco 3945路由器密码恢复,rommon模式操作详解

    Cisco 3945路由器密码恢复,rommon模式操作详解 在一次客户的网络出现故障,网络中断,排除故障的原因,发现到达路由器地址不通: 观察到路由器接口灯全部熄灭,电源状态正常: 然后使用cons ...

  5. iOS 开发之照片框架详解

    一. 概要 在 iOS 设备中,照片和视频是相当重要的一部分.最近刚好在制作一个自定义的 iOS 图片选择器,顺便整理一下 iOS 中对照片框架的使用方法.在 iOS 8 出现之前,开发者只能使用 A ...

  6. iOS富文本字符串AttributedString详解

    原文链接: iOS富文本字符串AttributedString详解 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://gi ...

  7. python类是实例的工厂_Python设计模式之工厂方法模式实例详解

    本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...

  8. CentOS下Hive2.0.0集群模式安装详解

    本文环境如下: 操作系统:CentOS 6 32位 Hive版本:2.0.0 JDK版本:1.8.0_77 32位 Hadoop版本:2.6.4 MySQL版本:5.6.30 1. 准备工作 1.1 ...

  9. Kafka单机、集群模式安装详解(二)

    本文环境如下: 操作系统:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11) 接上篇 Kafka单机.集群模式安装详解(一) 6. ...

最新文章

  1. ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程
  2. 洛谷 P2818 天使的起誓
  3. 洛谷3384(树链剖分模板题)
  4. java 类隔离_Java类装载体系中的隔离性
  5. 玫瑰花函数matlab,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  6. android取消自动调试模式吗,Android进入调试模式的三种技巧
  7. 同学聚会 主持词_我主持freeCodeCamp聚会的三年来的成功和失败
  8. [国嵌笔记][025][ARM指令分类学习]
  9. ASP.NET MVC 3 Validation - 正则表达式验证RegularExpressionAttribute之日期验证
  10. jboss:在standalone.xml中设置系统属性(system-properties)
  11. Shell判断字符串是否为空
  12. 学习笔记 Tianmao 篇 fresco 图片缓存加载框架
  13. uni-app h5页面图片压缩
  14. 动态与静态二维码生成器
  15. 川大计算机系导师,川大计算机学院硕士生导师简介
  16. remove的使用方法
  17. Android基础——多媒体编程
  18. 什么是CUID,CRUD的操作
  19. 云游戏、视频、直播三者流量对比
  20. iOS定位和地理坐标类型解释

热门文章

  1. c语言风车图案,风车形平面的转译 | 大师100例
  2. Linux部分课堂笔记
  3. 学术诚信的重要性_学术诚信在高校教育工作中的重要性
  4. 后缀数组(未完待续)
  5. 关于直播,所有的技术细节都在这里了
  6. QT之桌面精灵实现(一) --- 透明窗体和图片绘制
  7. 计算机amibios设置教程,主编教您ami bios刷新步骤
  8. 2019史上最全java面试题题库大全800题含答案(面试宝典)
  9. linux下动态壁纸(ubuntu20.04测试)
  10. 植物大战僵尸 mac汉化版值得推荐的游戏