返回

iOS逆向小知识:功能独立的tweak 合并为一个deb 包

IOS

昨天我们在技术博客里分享了如何在自己的电脑上搭建一个私有的Cydia源以便批量部署插件,今天继续聊一聊如何将功能独立的tweak 合并到同一个deb 包。

就像我们昨天提到的一样,合并deb包的最主要原因是为了更方便的进行插件分发,合并后的deb包大小也会明显减少,减少了网络和存储空间的占用,而且合并的deb包,在更新过程中也不会弹出让你选择需要合并的deb包,能有效地节省用户时间。

要进行合并我们需要准备以下工具:

  • filza(可用于编辑文件系统)
  • terminal(命令行终端)
  • iFile(可用于编辑文件系统)
  • SSH

接下来我们开始操作:

1.打开Filza,找到你想要合并的deb包,这里我们以lwzyplugin为例

2.点击tweak文件夹中的Data.plist,打开后你会看到如下图所示的内容:

{
	"bundle-identifier" = "com.yourcompany.lwzyplugin";
	"author" = "lzy";
	"name" = "lwzyplugin";
	"version" = "1.0.1";
	"icon" = "icon.png";
	"depends" = (
		"substrate"
	);
	"conflict" = (

	);
	"description" = "这是一款由lzy开发的功能独立插件";
	"pretends" = (

	);
	"binaries" = (

	);
	"files" = (
		{
			"path" = "Library/MobileSubstrate/DynamicLibraries/lwzyplugin.dylib";
			"bundle-identifier" = "com.yourcompany.lwzyplugin";
		}
	);
};

3.注意,所有需要合并的tweak都要更改其bundle-identifier,不能重复,比如:com.yourcompany.lwzyplugin1

4.接下来对Control文件进行更改,首先修改字段Package Identifier,修改成与Bundle Identifier一致(如:com.yourcompany.lwzyplugin1)

5.接下来要修改字段Depends,合并后插件的依赖项应该是所有独立插件的依赖项合集,比如我们这里合并了lwzyplugin和hyplugin,那么合并后tweak的依赖项是hyplugin的依赖项加上lwzyplugin的依赖项。

6.最后,我们需要修改字段Confict,合并后插件的冲突插件应该是所有独立插件的冲突插件的合集,合并后tweak的冲突插件是hyplugin的冲突插件加上lwzyplugin的冲突插件。

合并前后的Control文件如下所示:

合并前:

Package: com.yourcompany.lwzyplugin
Version: 1.0.1
Maintainer: lzy <example@example.com>
Description: 这是一个由lzy开发的功能独立插件
Section: Jailbreak
Depends: substrate
Conflicts: (
	com.yourcompany.hyplugin
)

合并后:

Package: com.yourcompany.lwzyplugin1
Version: 1.0.1
Maintainer: lzy <example@example.com>
Description: 这是一个由lzy开发的功能独立插件
Section: Jailbreak
Depends: com.yourcompany.hyplugin, substrate
Conflicts: (
	com.yourcompany.lwzyplugin,
	com.yourcompany.hyplugin
)

7.修改完毕后,将合并后的Control文件和各个独立插件的Control文件、Data.plist文件、icon.png文件分别复制到各自文件夹里。

8.接下来需要用到terminal,进入手机的根目录,执行如下命令:

cd /var/root/Media/Cydia/AutoInstall/

9.最后一步,将合并后的deb包拷贝到刚刚进入的目录里即可。

到这里,合并deb包的过程就结束了,小伙伴们有时间可以自行尝试一下哦~

如果在阅读过程中有任何疑问,欢迎在评论区留言讨论。如果你喜欢这篇文章,记得点赞并关注我的技术博客,以便在第一时间收到我的最新文章。