天天动画片 > 八卦谈 > 如何使 iOS 7 在 iPod touch 4 上运行?(基于 @nyan_satan 的教程二次编写)

如何使 iOS 7 在 iPod touch 4 上运行?(基于 @nyan_satan 的教程二次编写)

八卦谈 佚名 2022-11-09 09:11:11

原文地址:https://albyvar.github.io/ipodtouchhax/

https://albyvar.github.io/ipodtouchhax/dualboot.html

https://albyvar.github.io/ipodtouchhax/activation.html

本文内容选取了原文的部分内容进行二次修改,仅供参考


本教程需要使用到的文件的下载链接:

OneDrive:https://1drv.ms/u/s!AsgyTERzgIVIgtF32MFbJTabH-MtNA?e=LdoHFQ

百度网盘:https://pan.baidu.com/s/1e6o6NX8t3fFbGnnTuUqKQg    提取码:akoo

天翼云盘:https://cloud.189.cn/web/share?code=6zqaye7RN3Yb    访问码:zy2p


在开始之前...你需要知道的内容

1.本教程使用的固件是基于 iPhone 4 的 iOS 7.1.2 固件进行修改的

iPhone 4 与 iPod touch 4 在配置上大体相同 (均使用A4处理器), 但最大的区别之一在于内存 (RAM) 容量

前者为512MB,而后者只有256MB

这也意味着在刷入 iOS 7 后,系统的可用性与稳定性无法得到保证

所以尽量不要在 iOS 7 内进行高负载任务

2.本方案是使 iPod 内的原系统与刷入的 iOS 7 共存,这样做的最大好处是无需电脑即可正常引导至 iOS 7

但是,这就对 iPod 的储存容量有较高的要求。对于 8GB 版本的 iPod touch 4 来说,刷入后你能够使用的空余储存空间将会很紧张

所以,推荐 16GB 版本和 32GB 版本的 iPod touch 4 刷入 iOS 7 (当然,8GB 版本是可以刷入的)

3.目前本方案仍然存在以下问题:

    (1)多点触控功能无法工作(当然单点触控还是正常的)

    (2)前摄与后摄均无法工作

    (3)没有音频输出

    (4)蓝牙无法工作

    (5)某些传感器(例如重力感应器和环境光传感器)无法工作

    (6)电量指示永远显示为100%

4.如果你能够接受使 iPod “变砖”的风险,请接着往下看

(注:实际上是不会变砖的,你可以通过恢复固件的方式来修复”砖机”

[原文为 "NOTE: you will still always be able to restore and fix it."] )

主线:刷入双系统

1.前置准备工作(文中提到的所有文件的下载链接见文首):

文件:bootchain.zip, wifi.zip, bootloader.zip

固件:根据你的 iPod 的生产批次选择

在2012年前生产的批次,选择文件名内含有 "iPhone 3,1" 的 ipsw文件

在2011年后生产的批次,选择文件名内含有 "iPhone 3,3" 的 ipsw文件

[注:如何判断生产批次?

你可以在电脑上安装例如爱思助手之类的软件,将 iPod 连接至电脑,即可通过软件查看

或者,你也可以通过EveryMac这个网站(iPod 型号查询直达链接:https://everymac.com/systems/Apple/ipod/index-ipod-specs.html)来依据序列号来查找对应型号(当然,部分国行型号在该网站上并没有列出,此时建议通过软件查询)]

设备:一台运行 Windows 或 macOS 的电脑 (注:实际上,目前在macOS下有一个步骤似乎无法进行操作,详情见下文)

           一台已经越狱的 iPod touch 4,运行 iOS 5 或 iOS 6 (推荐使用 iOS 6.1.6)

软件:一款可以直接打开/解压 ipsw 文件的解压缩软件 (7-zip与WinRAR可以直接解压,笔者测试了Bandzip也可以使用,只不过需要手动将ipsw拖入软件内才可以打开)

            DMG Extract/Build Tool [注:笔者尚未找到该程序的macOS版,此程序为命令行程序,作用为解密DMG文件。目前只找到了Windows版的程序,因此对DMG进行解密和重建的操作目前只能在Windows下进行]

2.准备固件

(1)通过解压缩软件打开下载好的 ipsw 固件文件,将 ipsw 内的三个DMG文件解压出来

(2)打开命令提示符(Windows下)或终端(macOS下)

         对于在2012年前生产的批次的机型,输入如下命令:

         dmg extract 058-4520-010.dmg decrypted.dmg -k 38d0320d099b9dd34ffb3308c53d397f14955b347d6a433fe173acc2ced1ae78756b3684

         对于在2011年后生产的批次的机型,输入如下命令:

         dmg extract 058-4110-009.dmg decrypted.dmg -k 423b3503689b7058d1398d1b5d56a7b1ccf4d79e1c3e6ba853122b4f86820a9e3bc911f6

(3)接着,输入如下命令,将解密的rootfs文件转换为UDZO格式:

         dmg build decrypted.dmg UDZO.dmg

3.分区

注意:请先将 iPod 的自动锁定关闭,并且保持亮屏,建议插入充电器(最好不要连接到电脑上)

因为锁屏后会中断SSH的连接,可能会导致一些问题

(1)将你的 iPod touch 连接到一个Wi-Fi网络内,在设置——Wi-Fi(对于国行版,该选项为无线局域网)——点击已连接Wi-Fi网络旁边的右箭头(或者"i"图标)——查看IP地址,并记录下来

(2)通过 SSH 以 root 身份连接你的 iPod(注:如果你正在使用 Windows 10 (已安装2018年4月更新)及以上系统,系统已经内置了OpenSSH,直接在命令提示符内执行下列命令即可,否则你需要安装一个例如像Putty的SSH客户端)

         ssh root@你记录下的IP地址

接着,会要求你输入密码,默认密码为alpine(注:输入时不会显示字符)

[你有可能会看到包含"fingerprint"字样的警告信息,直接输入yes即可]

接下来,执行如下命令,来创建挂载点:

         mkdir /mnt1 && mkdir /mnt2

执行如下命令,来检查剩余空间:
         df -B1

现在,将 /dev/disk0s1s2 的 1B-blocks 的值减去你想给 iOS 7 部分的储存空间大小,记录下计算好的值

(所有值均以bytes(字节)为单位)

举个例子:现在的1B-blocks 的值为17179869184,你想为 iOS 7 划出 4GB 的空间,那么计算出的值就为: 17179869184 - 4294967296 = 12884901888

接下来,输入以下指令,开始重新划分 Data 分区的大小

        hfs_resize /private/var 你计算好的值

在某些设备上可能需要等待一段时间

(3)接下来,输入如下命令,开始编辑GPT分区表(请严格按照下文提供的命令执行,一次换行代表按下一次回车,不要调换命令执行的顺序,除非你掌握了 gptfdisk 指令的使用方法)

[注:如果在操作过程中出现失误,请不要慌张。只要没有执行写入分区表指令,整个操作是可逆的]

        gptfdisk /dev/rdisk0s1

          p

          i

          2

现在,请务必准确记录下partition unique GUID 和 attribute flags 的值

然后继续执行下列指令:

         d

         2

         n

         2

直接回车,使用first sector的默认值(default first sector)

接着,按照以下式子计算,将计算出的值输入(如果计算出小数点,请输入整数部分)

       你在hfs_resize处计算的值 / 8192 + first sector 的默认值(default first sector)

     (提示:命令提示符和终端都可以向上翻页,查看你之前输入的指令)

直接回车,保留默认值

接着,输入以下指令:

         c

         2

         Data

         x

         a

         2

现在,请查看之前记录下的 attribute flags 的值

如果 attribute flags 的值为 0003000000000000,输入以下指令:

         48

         49

如果 attribute flags 的值为 0001000000000000,输入以下指令:

         48

接下来,输入以下指令:

         c

         2

现在,输入之前记录下的 partition unique GUID 值,然后回车

接下来,输入如下指令:

         s

         4

         m

         n

         3

直接回车,使用first sector的默认值(default first sector)

接着,按照以下式子计算,将计算出的值输入(如果计算出小数点,请输入整数部分)

         之前生成的UDZO.dmg文件的大小(注意,要将单位转换为 bytes(字节)) / 4096+ first sector 的默认值(default first sector)

(注:事实上,该公式加粗处的值应为你存放此文件的硬盘的每扇区字节数,原文值为8192,但实际操作后发现大小不够。而目前大部分硬盘都进行了4K对齐,故改为4096) 

直接回车,保留默认值

接着,输入下列指令:

         c

         3

         iOS7SYSTEM(注:此处命名也可根据自己的需要修改,但绝对不能命名为 System

         n

         4

直接回车,使用first sector的默认值(default first sector)

接着,按照以下式子计算,将计算出的值输入:

last sector的默认值(default last sector) - 5

直接回车,保留默认值

接着,输入下列指令:

         c

         3

         iOS7DATA(注:此处命名也可根据自己的需要修改,但绝对不能命名为 System

接下来,输入如下指令,检查分区大小是否正确:

p

(注:此处需要检查的地方为:

           确保iOS7SYSTEM(分区3)的大小大于 UDZO.dmg 的文件大小

           确保为Data(分区2)和iOS7DATA(分区4)预留合理的大小

           如果发现以上数据异常/中间出现误操作,建议接下来直接输入如下命令,撤销所有操作:

                   q

           接着,再次输入 gptfdisk /dev/rdisk0s1 指令,从(3)处重新开始

           当然,如果你掌握了 gptfdisk 的用法,可以针对错误的部分进行修改)

在确保没有任何问题的情况下输入以下指令,写入分区表:

        w

        y

等待片刻,当返回至SSH命令行后,意味着操作已经完成了

当然,为了避免发生一些玄学问题,建议在操作完成后重启你的iPod

4.还原 rootfs

(1)创建文件系统:(注,如果在此处执行命令后报错,重启你的 iPod

       /sbin/newfs_hfs -s -v System -J -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s3

         /sbin/newfs_hfs -s -v Data -J -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s4

(2)挂载 iOS 7 的数据(Data)分区

         mount_hfs /dev/disk0s1s4 /mnt2

(3)回到 iPod上,通过 Cydia 安装 afc2add 插件,之后通过 iFunBox 或 爱思助手 等软件将UDZO.dmg 文件拷贝至 /mnt2 分区

(4)拷贝完成后,执行如下指令:
         asr restore --source /mnt2/UDZO.dmg --target /dev/disk0s1s3 --erase

(本部分)搞掂。

5.修改文件系统

执行如下指令,取消挂载 mnt2,并重新挂载 iOS 7 相关分区来修改文件系统:

         umount /mnt2

         mount_hfs /dev/disk0s1s3 /mnt1(注:请忽略你的 iPod 上弹出的任何窗口)

         /sbin/newfs_hfs -s -v Data -J -P -b 8192 -n a=8192,c=8192,e=8192 /dev/disk0s1s4

         mount_hfs /dev/disk0s1s4 /mnt2

         mv -v /mnt1/private/var/* /mnt2

         rm -rf /mnt2/mobile/Library/PreinstalledAssets/*

         rm -rf /mnt2/mobile/Library/Preferences/.GlobalPreferences.plist

         mkdir /mnt2/keybags

         cp -a /var/keybags/systembag.kb /mnt2/keybags

         umount /mnt2

现在,执行以下命令,开始编辑 fstab 文件:

         nano /mnt1/private/etc/fstab

将图一的内容,更改为图二的内容


图一
图二

(注:操作指南:使用方向键来控制光标,修改完成后按 Ctrl + X 键退出,按Y键确认保存,最后按下回车来结束编辑)

6.修复 Wi-Fi 功能,添加 bootchain

解压 wifi.zip,将解压出的wifi文件夹拷贝至 /mnt1/usr/share/firmware 并覆盖所有文件

来到 /mnt1/Applications 目录下,删除或重命名 Setup.App

解压 bootchain.zip,将解压出的所有文件(注:压缩包内的4个文件,非文件夹)拷贝到 /mnt1 目录下

解压 bootloader.zip,将压缩包内的文件(注:压缩包内的2个文件,非文件夹)拷贝至根目录下并覆盖所有文件(/ 内)

(注:不要拷贝错地方,请一定确保拷贝位置的正确性)

7.引导

回到 iPod 上,打开 Way Out

点击软件主页面的 "i" 图标,进入设置

将 映像 1(Image 1) 的 路径(Path)设置为 /iBSS

将 映像 2(Image 2) 的 路径(Path)设置为 /iBEC7

保存 (Save)

滑动下方条来引导(Slide to boot)

默数6-7秒,然后按下电源键或 Home 键

正常的话,现在已经开始引导至 iOS 7 了。


支线1.激活设备

(这可以在 iOS 7 下正常使用iCloud,登录App Store,得到通知推送,使用iTunes同步等功能)

准备该文件:data_ark.plist

挂载 iOS 7 数据(Data)分区

执行如下命令:

       mount_hfs /dev/disk0s1s4 /mnt2

将 /var/root/Library/Lockdown 目录下的所有文件拷贝至  /mnt2/root/Library/Lockdown(如果文件夹不存在,创建这个文件夹)

将 data_ark.plist 文件覆盖到 /mnt2/root/Library/Lockdown 目录下

本部分完成


支线2.安装 Cydia

准备如下文件:cydia.tar.lzma, jbloader.tar.lzma, kernelcache.zip

执行如下命令,挂载分区:(注:如果提示 /mnt1 被占用,先执行 unmount /mnt1 命令)

       mount_hfs /dev/disk0s1s3 /mnt1 && mount_hfs /dev/disk0s1s4 /mnt1/private/var

解压 kernelcache.zip,将压缩包内的 kernelcache 文件覆盖在 /mnt1 目录下

拷贝 cydia.tar.lzma 和  jbloader.tar.lzma 至 /mnt1 目录下

通过 SSH 连接 iPod,接着执行以下指令:

       tar --lzma -xvf cydia.tar.lzma

       tar --lzma -xvf jbloader.tar.lzma

执行以下命令,编辑 fstab 文件:

       nano /mnt1/private/etc/fstab

将 disk0s1s3 后的ro更改为rw,这一步是更改该分区的读写属性

本部分结束。

教程到此全部结束

(如有侵权,请第一时间联系我进行删除,感谢)

本文标题:如何使 iOS 7 在 iPod touch 4 上运行?(基于 @nyan_satan 的教程二次编写) - 八卦谈
本文地址:www.ttdhp.com/article/6434.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们