原文地址: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 了。
(这可以在 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 目录下
本部分完成
准备如下文件: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,这一步是更改该分区的读写属性
本部分结束。
(如有侵权,请第一时间联系我进行删除,感谢)
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪