导入情景
今天你和往常一样,下载了一个插件

下载,重启 SpringBoard,看上去一切正常,插件也正常工作
直到你打开了 Sileo

What?什么情况?难道是刚刚装的插件有问题?
于是你想要卸载插件,但不幸的是

并没有出现以往的重启 SpringBoard 按钮,而是一个完成按钮,点开显示详情你发现。

它卸载出了问题。
而且在Sileo怎么卸载也卸载不掉了。
So sad 这是一个悲伤的故事。
但是不要慌张,肯定是有办法可以解决的。
解决之法:
这里我假设你安装了Openssh,并且你也知道root密码,你也明白如何使用SSH
当然如果你有些工具没有安装或者不熟悉,文末也有相应的说明。
打开电脑
ssh root@iPhone在局域网的ip
如何安装使用ssh?请跳转到Tips1
再次尝试卸载卸载它:
iPhone:~ root# dpkg -r apt.cydiakk.gesturex
(Reading database ... 8237 files and directories currently installed.)
Removing apt.cydiakk.gesturex (1.0.4) ...
>>>>>>>>>>>>>正在读取系统版本<<<<<<<<<<<<<
>>>>>>您当前设备系统版本是:iOS 12.5.7<<<<<<<<<
__________________执行命令__________________
-e <div><style>span{color:#ADFF2F;}</style><span>===================================</span></div>
-e <div><style>span{color:#FA8072;}</style><span>=========Build by Cydiakk==========</span></div>
-e <div><style>span{color:#ADFF2F;}</style><span>==========Enjoy yourself===========</span></div>
-e <div><style>span{color:#7CFC00;}</style><span>===========感谢您的使用============</span></div>
-e <div><style>span{color:#FF00FF;}</style><span>===========插件卸载完成============</span></div>
-e <div><style>span{color:#ADFF2F;}</style><span>==========Cydiakk中文源™===========</span></div>
-e <div><style>span{color:#8A2BE2;}</style><span>======http://apt.cydiakk.com=======</span></div>
-e <div><style>span{color:#FFFF00;}</style><span>===================================</span></div>
-e <div><style>span{color:#EE9A00;}</style><span>Copyright 2018 Cydiakk中文源 © CYDIAKK®. </span></div>
___________________结束命令__________________
/Library/dpkg/info/apt.cydiakk.gesturex.postrm: 17: declare: not found
/Library/dpkg/info/apt.cydiakk.gesturex.postrm: 18: Syntax error: "(" unexpected
dpkg: error processing package apt.cydiakk.gesturex (--remove):
installed apt.cydiakk.gesturex package post-removal script subprocess returned error exit status 2
Errors were encountered while processing:
apt.cydiakk.gesturex好的我们看到了/Library/dpkg/info/apt.cydiakk.gesturex.postrm这个东西
他是啥?让我们cat看看
#!/bin/sh
echo ">>>>>>>>>>>>>正在读取系统版本<<<<<<<<<<<<<"
firmware=$(sw_vers -productVersion)
echo ">>>>>>您当前设备系统版本是:iOS $firmware<<<<<<<<<"
sleep 3
echo "__________________执行命令__________________"
echo -e "<div><style>span{color:#ADFF2F;}</style><span>===================================</span></div>"
echo -e "<div><style>span{color:#FA8072;}</style><span>=========Build by Cydiakk==========</span></div>"
echo -e "<div><style>span{color:#ADFF2F;}</style><span>==========Enjoy yourself===========</span></div>"
echo -e "<div><style>span{color:#7CFC00;}</style><span>===========感谢您的使用============</span></div>"
echo -e "<div><style>span{color:#FF00FF;}</style><span>===========插件卸载完成============</span></div>"
echo -e "<div><style>span{color:#ADFF2F;}</style><span>==========Cydiakk中文源™===========</span></div>"
echo -e "<div><style>span{color:#8A2BE2;}</style><span>======http://apt.cydiakk.com=======</span></div>"
echo -e "<div><style>span{color:#FFFF00;}</style><span>===================================</span></div>"
echo -e "<div><style>span{color:#EE9A00;}</style><span>Copyright 2018 Cydiakk中文源 © CYDIAKK®. </span></div>"
echo "___________________结束命令__________________"
declare -a cydia
cydia=($CYDIA)
if [[ ${CYDIA+@} ]]; then
eval "echo 'finish:restart' >&${cydia[0]}"
fi哦吼吼!它本质是一个脚本。
定位出错点:
/Library/dpkg/info/apt.cydiakk.gesturex.postrm: 17: declare: not found
/Library/dpkg/info/apt.cydiakk.gesturex.postrm: 18: Syntax error: "(" unexpecteddeclare: not found ?为什么?
因为 #!/bin/sh 使用的是 sh 解释器,而 declare 是 bash 的内置命令。因此在 sh 中不可用。
要如何修正它呢?将 #!/bin/sh 改为 #!/bin/bash就可以了啦~
如何修改编辑?请跳转到Tips2
接着回到 Sileo 中,按照以往卸载它的方式卸载就好。
问题解决啦 ~~~
Tips1:
安装 openssh:
打开 Sileo,搜索 openssh,安装第一个即可

IP地址,点击已连接的wifi旁边的 i

此处便是IP地址

Tips2:
如何编辑?
当然是安装vim安装啦
Sileo搜索vim
找到如下软件并安装

请自行解决魔法问题。
如果有魔法,但下载到一定进度时超时,请多次尝试,总会安装成功的。
vi /Library/dpkg/info/apt.cydiakk.gesturex.postrm
输入 i 进入插入模式,修改完成后
按ESC退出插入模式,进入普通模式,再输入:wq保存并退出。
相关阅读:
脚本解释:
#来自gpt4o的回复(有修改)
declare -a cydia
#声明一个数组变量 cydia。
cydia=($CYDIA)
#将环境变量 CYDIA 的内容拆分并赋值给数组 cydia。
if [[ ${CYDIA+@} ]]; then
eval "echo 'finish:restart' >&${cydia[0]}"
fi
#检查 CYDIA 是否存在,如果存在,则执行 echo 'finish:restart' 并将输出重定向到 cydia 数组的第一个元素指向的文件描述符。当然,你也可以去 man page 里逛一逛