错误及成因
9.3.3 的越狱机制改变解决了一些此前的越狱禁区,比如在此前抹掉所有内容和设置
是不可点的,会导致设备永久性卡在启动动画,而现在即便点了也不会出现这样的问题。有的人可能会觉得这是个平级恢复的好办法,但实际上如果你点了抹掉所有内容和设置
再重新越狱,会发现 Cydia 会持续报错:
Could not open file /var/lib/dpkg/status - open (2: No such file or directory)
The package lists or status file could not be parsed or opened
出现这样的错误是因为抹掉所有内容和设置
也会清除 Cydia 的文件路径,但盘古越狱工具在重新越狱时很明显没有将这些路径安装回来,导致出现了这一情况。
这个情况非常棘手,因为当你在 Cydia 看到这个错误,就代表着你不能搜索插件,而且当你想手动添加路径,你也会发现因为没装 Apple File Conduit 2 所以无法在 PC 端用文件管理软件打开 Root 路径。好像除了升级别无他法,但现在升级却又会丧失越狱,陷入很尴尬的情况。
好在,Reddit 有篇帖子详述了整个问题的解决办法。
问题解决
这个解决办法的原理是:通过 Cydia Impactor 在设备中安装(sideload)终端(MobileTerminal),然后在 iOS 端通过终端执行命令,将应有的目录添加到设备中。
准备工作:
在 PC 上下载这几样东西:
- 一会要装到 iOS 设备的终端软件(MobileTerminal)
- 将 MobileTerminal 从 deb 转换成 ipa 的应用 iOS App Signer (Mac)
- 简化 Sideload 步骤的 Cydia Impactor
- 在 PC 端可以读取 iOS 系统文件路径的软件(比如 iFunbox,我文章里用的是 iMazing,工具无所谓)
- lib 文件夹压缩包
第一步:将 lib 文件夹拖到 /var/mobile/Media/Books 这个文件夹中
第二步:用 iOS App Signer 将 MobileTerminal 的 deb 文件转化为 ipa 文件
第三步:用 Cydia Impactor 把 ipa 文件装到设备里(需要输入 Apple ID 账户密码,建议临时注册一个)
第四步:在 iOS 上打开终端输入命令:
- 输入:
su
- 然后会要你输入密码,如果你之前没改过,默认的是:
alpine
- 安全起见这个密码事后是需要改的,教程见视频
- 输入:
cp -R /var/mobile/Media/Books/lib /var
这样就解决了 Cydia 刷新时出现 /var/lib/dpkg/status
的问题,如果你还出现了 missing var/log/apt
错误,还需要在终端里操作:
- 输入:
su
- 输入:
mkdir /var/log/apt
至此 Cydia 就能够正常运作了,如果不行你可以装 Cydia Eraser 这款插件来移除 Cydia 然后重新使用盘古工具来越狱。
能够解决这个问题以后,其实我倒觉得结果还不坏,这相当是一种平级恢复的过程,先清理所有内容,然后再把出错的部分剔掉,然后回归越狱状态。只不过过程麻烦了点。