Cydia安装插件时报错code(1)和code(2)&解决方法探讨

2019年9月27日

问题描述

越狱iOS10.2.1,在安装 Frida 插件时,Cydia 界面出现了报错:

sub-process /usr/bin/dpkg returned an error code(1)

然后由于处理不当,动了 cydo 文件,导致后来新出现了code(2)的问题:

sub-process /usr/libexec/cydia/cydo returned an error code(2)

这两个解决的方案都有很多,这里就写一下试过的方法。


Code(1) 修复方式

最后成功方法有很多问题,但是比较简单,code(1)原因是系统盘满了,那找个能删的系统盘文件:

用filza(ssh也行,能做到文件管理的都可以)进入根目录下Applications文件夹,删除掉不用的.app文件,可以删除iwatch、播客、ibook这些占用比较大(也只有10M左右)平时又不用的系统自带应用。删掉一些app文件之后,新的Cydia插件就能安装了。


Applications目录

需要注意两点:

1. 删除之后,对应的app就使用不了了,需要慎重考虑。(filza有回收站,保留回收站的文件可能可以恢复)

2. 目前不确定在重启之后系统是否能够正常加载,这点后续验证过我再把结果放上来。---这个已验证了,没什么问题。

3. (更新)将iOS升级到12越狱,发现不再有系统盘分区这种问题了,应该以后也基本不会存在Code(1) 报错了。

思路(可以不看)

首先参考了[Q&A]Cydia for iOS7~iOS12 內各種紅字、黃字常見錯誤解決方法全收錄,得到的原因是系统盘空间已满。这个文章给的方法是卸载不用的 Cydia 插件,但我的插件都比较小并且大多都要用,所以考虑其他方法。

通过 Cydia 和 iCleaner的存储占用显示,推测 /private 或者 /private/var 是普通存储空间(手机安装的软件都放到了这里),而其他根目录下的文件都属于系统盘,所以找到了 /Applications,由于沙箱的存在,删除这些系统自带的 App 不会对其他应用的使用产生影响。

可能直接改换 Cydia 的安装路径才是最佳的选择,这个方法暂时没找到。


Code(2)修复方式

直接重装 Cydia ,步骤基本上完全参照了重新安装cydia Cydia安装具体步骤这个回答,两次重启+再次越狱的时候就解决了。目前最新版本 Cydia 是cydia_1.1.30_iphoneos-arm.deb

首先用电脑的浏览器访问http://apt.saurik.com/cydia/debs/按Ctrl+F进行页面搜索,搜索关键词cydia,然后会看到cydia的所有版本,一般选择最新版本下载即可

将手机连接至电脑,用iTools或者iFunbox等工具,将你下载的cydia_****.deb的文件,放到var\root\meia\cydia\autoinstall目录下,重启手机一两次即可完成重装

思路

code(2)的出现的原因可能是动了 cydo 文件(只针对我的情况),报错信息与 dpkg 运行权限有关系,查阅资料的时候也有人提到修改某些文件的权限(能够修复code2),但是描述比较模糊,直接重装可能最省心。


总结

如果只是偶尔装一个插件,可以找到它的 deb 文件后用 ssh 或者 terminal 命令行安装,绕过Cydia;但 Frida 找不到 deb 安装文件,所以只能试着修复以上两个问题。


对越狱还不怎么熟悉,以上两个问题花费了比较长的时间,如果有不同的方法可以告知我一下,将对我有很大帮助,不胜感激~

推荐阅读更多精彩内容