我有几个关于开发移动补丁的问题。
首先,如何制作它们?
需要使用XCode吗?
需要哪些文件以及在哪里放置您的代码?
如何钩入应用程序?
例如,如果我想要更改“信息”应用程序中的某些内容,如何编程以将其钩入Messages.app中?
我对于开发应用商店中的常规应用程序非常熟悉,同时也非常感兴趣移动基础设施。我真的很想知道该如何做以及从何处开始。谢谢!
我有几个关于开发移动补丁的问题。
首先,如何制作它们?
需要使用XCode吗?
需要哪些文件以及在哪里放置您的代码?
如何钩入应用程序?
例如,如果我想要更改“信息”应用程序中的某些内容,如何编程以将其钩入Messages.app中?
我对于开发应用商店中的常规应用程序非常熟悉,同时也非常感兴趣移动基础设施。我真的很想知道该如何做以及从何处开始。谢谢!
请按照上述链接中所提供的说明安装Theos,进入您想要存储项目的文件夹并运行 $THEOS/bin/nic.pl
以生成您的插件模板。
生成的Tweak.xm文件是您放置代码的位置。要构建项目,请在终端中导航到项目目录并运行 make
。如果您在系统上有dpkg
,那么可以轻松地打包和安装项目。请确保iDevice上已安装OpenSSH
,并将此行添加到您的项目的makefile中:
THEOS_DEVICE_IP = [INSERTDEVICESIPHERE]
运行make package install
来构建您的项目,将其打包为.deb文件,将其传输到设备上并安装。
实际进入Tweak.xm文件的代码是Objective-C语言,使用了一个简化Mobile Substrate任务的语言叫做Logos,这里有详细说明:http://iphonedevwiki.net/index.php/Logos。通常情况下,代码遵循以下格式:
%hook classname //declares the class from your application you're going to override
-(void)functionyouwanttooveride {
dosomethingnew(); //put all your new code for the method here
return %orig; //this calls the original definition of the method and returns the result
}
%end //end hooking classname
要找出需要重写的类和方法以实现你想要的功能,需要先安装cydia上的 class-dump
,然后通过ssh连接到你的设备并运行class-dump -H path/to/your/binary -o /path/where/you/want/your/classheaders
命令。接着,你只需浏览生成的头文件,查找与你所需功能相关的类和方法,并进行尝试。
祝好运!
functionyouwanttooverride
?我该如何获取函数的原始代码,以便我可以修改它? - JonasG%log
,它会写入系统日志(位于/var/log/syslog),记录调用该方法的参数,以便更好地了解正在发生的情况。同时,还可以从Cydia安装gdb,并设置有趣方法的断点以找出发生了什么。虽然困难,但请继续尝试! - stonesam92addButtonWithTitle
向UIActionSheet
添加按钮。 - stonesam92