关于.app 与deb 一起打包成带界面的deb插件

有什么注意事项吗?我的.app 和 tweak的dlyid都是独立的。我按照package格式,创建并把它们放在一起,用命令行打包的deb出来。安装之后,桌面并没有显示应用图标,设置列表里也没有,通过cydia安装。求解

桌面并没有显示应用图标

估计是打包的整个流程有问题,导致安装后,app图标没出来

设置列表里也没有

设置列表中有图标的前提是自己代码中有对应的代码(记得好像是PreferencesLoader之类的)


关于app和dylib打包成带图标的deb,可以参考我之前写的:
带界面的插件开发流程 · iOS逆向开发:iOSOpenDev开发插件 (crifan.org)

PreferencesLoader 目前我也已找到资料,但是更详细的资料没有,.app一起打包,参考的是大佬你的文章,可惜在桌面并没有和ipa安装一样的图标。目前不知道是什么原因

打包的具体流程,只是文件夹的路径和目录都是参考大佬你的文章的,打包命令也是dkbg命令,还有什么别的具体需要注意的吗?

那就不清楚了,我之前就是按照教程里总结的步骤去跑通流程的

大佬您好,我按照您的资料,编写插件,但是到build for Profiling 到手机时总是报你在文章中提到的错误,但我的ssh已经设置了免密登录,在终端可以直接ssh连接手机,依然会报这个错误,请问大佬有什么好的思路吗

把详细错误贴出来 文字+截图,看看是否可能是其他原因


我对这个报错比较奇怪,但是到不影响我使用,我直接通过终端复制到手机上了

截图中有明显的错误信息:
control
文件,不存在,找不到
-》应该解决此错误,估计就可以顺利编译安装了

哦,这个是我后面合并插件和app把control文件删掉了。实际报错是下面这样的,我看到提示没有找到deb文件,我直接将deb文件通过终端复制到手机,依然会提示找不到deb文件。还是通过filza安装可以成功。

截图中错误信息是:

scp: dest open “”/var/root/xxx.deb"": No such file or directory

如果你是,和我之前一样,Mac是M系列的(M1/M2的Apple Silicon),则:

解决办法:
去编辑 /opt/iOSOpenDev/bin/iosodfunction copyFileToDevice()中的内容,把:

scp -P$hostPort "$sourceFile" root@$hostAddress:"\"$targetFilePath\"" || \

去掉文件路径中的双引号,改为:

scp -P$hostPort $sourceFile root@$hostAddress:$targetFilePath || \

即可正常编译。


附录:

此处,Xcode去编译iOSOpenDev的项目,编译期间调用脚本:
/opt/iOSOpenDev/bin/iosod
涉及到scp拷贝deb到目标iPhone中
结果:
之前代码:

function copyFileToDevice() {
...
    scp -P$hostPort "$sourceFile" root@$hostAddress:"\"$targetFilePath\"" || \

其中会生成:目标文件名是带双引号的:

""/var/root/iOSOpenDevPackages/com.crifan.jailAppleAccount_1.7.4_iphoneos-arm.deb""

然后结果:

  • 旧Mac:正常编译
    • 之前的Xcode版本:v13.2.1
    • scp:3MB
      • FAT格式,支持x86_64和arm64e
  • 新Mac:会报错
    • 错误信息:scp: dest open ""/var/root/iOSOpenDevPackages/com.crifan.jailAppleAccount_1.7.4_iphoneos-arm.deb"": No such file or directory
    • 最新Xcode版本:v14.3
    • scp:416KB
      • FAT格式,支持x86_64和arm64e

解决办法:

去掉文件路径中的双引号,改为:

scp -P$hostPort $sourceFile root@$hostAddress:$targetFilePath || \

即可正常编译。

总体感慨:

估计新版的arm64e的scp,对于文件路径,中额外包裹,加上双引号,且是2个双引号,支持的不够好,导致的。

可以了,谢谢大佬,这次确实对于越狱插件的开发有了很多了解