Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 开发移动基板调整_Objective C_Hook_Cydia_Tweak - Fatal编程技术网

Objective c 开发移动基板调整

Objective c 开发移动基板调整,objective-c,hook,cydia,tweak,Objective C,Hook,Cydia,Tweak,关于开发移动基板调整,我有几个问题。 首先,你是怎么做的 你必须使用XCode吗 需要什么样的文件,代码放在哪里 你如何连接到一个应用程序 例如,如果我想在Messages应用程序中更改某些内容,如何将其编程为挂接到Messages.app 我非常熟悉为app store开发常规应用程序,并且对移动应用程序非常感兴趣。我真的很想知道怎么做,从哪里开始。谢谢 按照上面链接中给出的说明安装theos,导航到要在其中存储项目的文件夹,然后运行$theos/bin/nic.pl为调整生成模板 生成的T

关于开发移动基板调整,我有几个问题。
首先,你是怎么做的

你必须使用XCode吗

需要什么样的文件,代码放在哪里

你如何连接到一个应用程序

例如,如果我想在Messages应用程序中更改某些内容,如何将其编程为挂接到Messages.app

我非常熟悉为app store开发常规应用程序,并且对移动应用程序非常感兴趣。我真的很想知道怎么做,从哪里开始。谢谢

按照上面链接中给出的说明安装theos,导航到要在其中存储项目的文件夹,然后运行
$theos/bin/nic.pl
为调整生成模板

生成的Tweak.xm文件是放置代码的地方。要构建项目,只需导航到终端中的项目目录并运行
make
。如果您的系统上安装了
dpkg
,那么您可以轻松地打包和安装项目。确保iDevice上安装了
OpenSSH
,并将此行添加到项目的生成文件中:

THEOS_DEVICE_IP = [INSERTDEVICESIPHERE]
然后运行
makepackageinstall
来构建您的项目,将其打包到.deb中,将其传输到您的设备并安装

在Tweak.xm文件中实际包含的代码是objective-C,其语言简化了名为logo的移动基板任务,如下所述:。但是,代码通常遵循以下格式:

%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、ssh将
类转储
安装到您的设备中,并运行
类转储-H path/To/your/binary-o/path/where/you/want/your/classheaders
。然后,您只需查看生成的标题,找到名称似乎与您正在做的事情相关的类和方法,并对它们进行实验

祝你好运


如果你遵循它,我希望你发现它有用

谢谢你,伙计!但是我怎样才能找到您想要覆盖的
函数呢?如何获得函数的原始代码,以便修改它?不用担心!这是困难的一点,您没有源代码,因此无法看到任何函数的实现,因此需要大量猜测。如果您从cydia安装了“syslogd to/var/log/syslog”包,那么如果您可以在代码中使用
%log
,它将写入调用该方法的syslog(位于/var/log/syslog),并记录调用它的参数,以便更好地了解发生了什么。还可以从cydia安装gdb,您可以在有趣的方法上设置断点,以了解发生了什么。这很难,继续尝试吧!另外请注意,一旦启用了写入syslog,许多其他进程也会写入它,它会很快填满,可能会占用一些空间,因此您可能需要时不时地删除它,或者在不需要时禁用日志记录,您可以在ok(确定)中查看更多信息,如果我想在特定的应用程序中更改某些内容,该怎么办,比如在照片应用程序中添加一个按钮或者类似的东西?不完全确定,但我想你只需要钩住想要添加按钮的视图,覆盖绘制按钮的方法,然后添加代码来绘制你自己的新按钮。例如,请参见DarkMalloc如何通过调用标题为“好教程”的
addbuttonw将按钮添加到his中的
UIActionSheet
。谢谢