iOS 10.2 越狱(支持 iOS 10.0.1-iOS 10.2,详情请点击 iOS10 yalu越狱)已经发布,而苹果也早已关闭了 iOS 10.2 固件验证。如果你已经升级到 iOS 10.2.1,那么很遗憾,你暂时所无法越狱或者降级的。而如果你已经是 iOS 9.x 越狱或者处于较低版本的 iOS 10,即使苹果已经关闭了除 10.2.1 外的其他 iOS 10 固件验证,你仍然可以降级|升级到更新的 iOS 10.2 或者任意一个 iOS 10 版本,并越狱。

本教程将一步步展示如何将你的 iOS 设备降级|升级到 iOS 10.2 及任何 iOS 10.x 版本。

本教程以将 iPad Air 从 iOS 9.3.3 升级到 iOS 10.2(已关闭固件验证) 为例,电脑系统为 macOS 10.12.2。

降级|升级条件

    1、设备已越狱,iOS 版本高于(包含)9.1;

    2、备份有效的SHSH2,并且SHSH2文件中包含generator项;

    3、macOS/Linux系统,虚拟机也可以。

软件下载

    1、下载降级软件futurerestore到桌面并解压:官方下载    EFreeLife下载

    2、下载降级软件nonceEnabler到桌面并解压:dropbox下载    EFreeLife下载

    3、拷贝备份好的 SHSH2 文件到桌面,复制一份,修改后缀名为.plist并打开,记下generator的值,后面会用到。
    4、下载所备份的 SHSH2 对应的固件,亦即所要降级|升级的固件,如iPad_64bit_10.2_14C92_Restore.ipsw。下载地址:iOS固件下载
    5、下载最新的固件,如iPad_64bit_10.2.1_14D27_Restore.ipsw,修改后缀名为.zip,解压后,拷贝下面的文件到桌面:
        (1) Build​Manifest​.​plist
        (2) Firmware/all_flash/all​_​flash​.​XXX.​production/sep​-​firmware​.​XXX.RELEASE​.​im4p文件,如sep-firmware.j71.RELEASE.im4p。XXX表示机型芯片,可从 这里 查询。
        (3) Firmware/XXX.Release​.​bbfw。Firmware下会有多个.bbfw文件,根据你的设备和要降级|升级的固件版本选择正确的文件,如Mav7Mav8-7.21.00.Release.bbfw。
            MDM9615: iPhone 5s, iPad Air, iPad mini 2, iPad mini 3
                    iOS 10.0.1/10.0.2/10.1(.1): 7.01.00
                    iOS 10.2: 7.21.00
            MDM9625: iPhone 6, iPhone 6 Plus, iPhone SE, iPad Air 2, iPad Pro (12.9"), iPad mini 4
                    iOS 10.0.1/10.0.2: 5.24.00
                    iOS 10.1(.1): 5.26.00
                    iOS 10.2: 5.32.00
            MDM9635: iPhone 6s, iPhone 6s Plus, iPad Pro (9.7")
                    iOS 10.0.1/10.0.2: 2.30.00
                    iOS 10.1(.1): 2.36.00
                    iOS 10.2: 2.41.00
            MDM9645: iPhone 7
                    iOS 10.0(.1): 1.00.02
                    iOS 10.0.2: 1.00.03
                    iOS 10.0.3: 1.00.05
                    iOS 10.1 1.02.13
                    iOS 10.1.1: 1.02.15
                    iOS 10.2: 1.02.15
            MDM9645: iPhone 7 Plus
                    iOS 10.0: 1.00.02
                    iOS 10.0.1: 1.00.03
                    iOS 10.0.2: 1.00.04
                    iOS 10.0.3: 1.00.05
                    iOS 10.1(.1): 1.25.00
                    iOS 10.2: 1.33.00
    至此,所有文件准备完毕。在桌面建一个名为 downgrade 的文件夹,将上述文件拷贝进去,应包含:
  • Build​Manifest​.​plist
  • .bbfw文件
  • .im4p文件
  • futurerestore_macos(Linux下为futurerestore_linux)
  • nonceEnabler
  • 所要降级|升级的.ipsw固件文件
  • .shsh2文件以及其中的generator值

系统准备

    要运行降级软件,依赖于Xcode命令行工具和其他依赖包,如果你从未进行过降级操作,则应该先安装这些依赖项。如果你已经安装了,请跳过此步骤。

    1、打开终端,输入 xcode-select --install 并回车。将弹出一个窗口,点击安装(Install),安装提示完成Xcode命令行工具安装。

   

    

    2、继续在终端输入:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 并回车,安装brew。

    3、安装完brew后,在终端中一行行输入以下命令并回车,保证每条命令都执行无报错(error)。

# 安装依赖包

brew install automake autoconf libtool pkg-config

git clone https://github.com/tihmstar/libirecovery && cd ./libirecovery && bash autogen.sh && make install

git clone https://github.com/tihmstar/libcrippy && cd ./libcrippy && bash autogen.sh && make install

git clone https://github.com/tihmstar/libfragmentzip && cd ./libfragmentzip && bash autogen.sh && make install

git clone https://github.com/tihmstar/libpartialzip && cd ./libpartialzip && bash autogen.sh && make install

# 安装openssl

cd /usr/local

sudo mkdir ssl

sudo chmod 777 /usr/local/ssl

cd

git clone https://github.com/openssl/openssl.git

cd openssl

./config

make

make install

# 安装curl

brew install curl

# 创建链接

brew install openssl

ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/

ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl openssl

开始降级|升级

    1、如果你的设备处于 iOS 9.x 盘古越狱(如果不是跳过这一步),重启设备恢复到未越狱状态。然后使用自带Safari浏览器打开 jbme.qwertyoruiop.com 进行越狱。

    具体越狱步骤为:点击网页上的 GO 按钮 --> 关闭弹出的提示框 --> 按下锁屏按钮等待所越狱完成。

    如果越狱失败,多尝试几次即可。

    此步骤是为了避免运行降级软件时出现 failed to get the kernel base address 错误。如果是 iOS 10.x yalu越狱出现此错误,可尝试使用其他 beta 版本进行越狱。

    2、 如果是 iOS 9.x 版本,请到 Cydia 搜索并安装 openssh。如果是 iOS 10.x 版本,请在 iOS 设备上自行配置好 ssh。

    3、使用 openssh 连接 iOS 设备

  • 打开终端,输入 cd Desktop/downgrade 并回车
  • 输入 ssh root@192.168.1.5 这里IP地址为设备的 IP 地址,请确保你的设备和电脑在同一个Wi-Fi下。
  • 按照提示输入密码(不会显示)并回车。默认密码为:alpine

    4、上传 nonceEnabler 到 iOS 设备

  • 打开一个新的终端,输入 cd Desktop/downgrade 并回车
  • 输入 scp nonceEnabler root@192.168.1.5 这里的IP同上。
  • 输入密码,等待上传完成。
  • 关闭此终端

    5、最后降级准备

  • 在第一次打开的那个终端中,输入 ./nonceEnabler 并回车,确保执行无误。
  • 输入 nvram com.apple.System.boot-nonce=XXX 并回车。这里的XXX使用前民保存下来的 generator 项的值代替。确保执行成功没有报错(如果执行成功不会显示任何信息)。如果报错请重启设备并重新越狱后,重新使用 openssh 连接 iOS 设备后,重新执行此命令,直到成功为止。
  • 输入 nvram auto-boot=false 并回车。
  • 输入 reboot 并回车,设备将重启并进入恢复模式。
  • 使用数据线将设备连接至电脑。如果弹出 iTunes ,直接关闭。

    6、在打开的终端中,输入 chmod +x futurerestore_macos 并回车。

    7、输入 ./futurerestore_macos -t XXX.shsh2 -b XXX.Release.bbfw -p BuildManifest.plist -s sep-firmware.XXX.RELEASE.im4p -m BuildManifest.plist -w XXX.ipsw 并回车。注意:

  • XXX.shsh2 替换为你的 shsh2 文件的文件名。
  • XXX.Release.bbfw 替换为.bbfw文件的文件名。
  • BuildManifest.plist 应该都一样,不变。
  • sep-firmware.XXX.RELEASE.im4p 替换为.im4p文件的文件名。
  • XXX.ipsw 替换为要降级|升级的固件文件的文件名。

    降级过程比较久,请耐心等待。如果出现绿屏则表示成功!此时降级尚未完成,设备将重启一次。重启后将自动打开的 iTunes 关闭,自动继续降级,直到终端显示如下信息才表示降级完成:

Status: Restore Finished

Cleaning up...

DONE

Done: restoring succeeded.


常见问题

    1、如果在最后一步降级命令中,出现 Library not loaded: /opt/local/lib/XXX.dylib 的错误,说明依然缺少依赖包,执行 brew install XXX 来安装依赖包即可。

    2、如果在最后一步降级命令中,出现以下错误:

Assertion failed: (data), function plist_copy_node, file plist.c, line 323.


    这是因为你的 shsh2 备份有误,基带版本不对导致的。如果你是 iPad Wi-Fi 版或者 iPod,则只需要在最后一条命令后面加上 --no-baseband 参数即可。此时命令将变为:./futurerestore_macos -t XXX.shsh2 -b XXX.Release.bbfw -p BuildManifest.plist -s sep-firmware.XXX.RELEASE.im4p -m BuildManifest.plist -w XXX.ipsw --no-baseband

    使用这个参数将不会进行基带升级,所以对于需要升级基带的 iOS 设备,如 iPhone、iPad 蜂窝网络版等,可能导致降级失败。对于这些设备只能用正确的 shsh2 文件才能进行降级。