erdan
(二蛋)
2018 年4 月 13 日 15:33
#1
手机型号 6plus
系统 10.0.2
问题描述:按照书中例子,开发了一个更改屏幕锁的界面,编译安装到手机上没有效果。看了论坛上,有朋友也发过问题,但是没有回复。我在重新描述下问题。希望过来的朋友,能帮忙解决下,要不不知道下边的路咋走了!
自己也想了下,因为书中的手机和操作系统,和现在我用的不一样,但是我还是希望知道,就我现在用的手机型号和系统版本,应该怎么去修改呢。
以下是我的代码截图:
makefile:
红色部分为我自己修改的内容,和书上不一样。但是别的地方就不知道怎么修改了。
tweak.xm
实在抱歉问了一些比较低级的问题。
看看书上的class-dump部分,把SpringBoard给class-dump了,我再告诉你下一步
erdan
(二蛋)
2018 年4 月 13 日 15:42
#3
好吧,其实我本来想着,现出一个效果,我好自己安慰下自己,可以学下去,既然作者留作业,我走起!
erdan
(二蛋)
2018 年4 月 13 日 16:27
#5
class-dump完成了,其中有几个疑问:
1,按道理/* */ 这种符号中间的代码都是被注释的,为什么Tweak.xm中的代码直接包含在符号中间呢。可能是语法就是这样,只是有点好奇。
2,我提问题前,不是按照make package install,这种安装的,我是通过i4,把生成的deb文件,拷贝到手机的/var/root/Media/Cydia/AutoInstall/目录下,然后重启手机,重新越狱,不知道这种操作是不是不正确的。
3,还有一个疑问就是,书中,工具篇中,有一个地方提到链接Mach-0对象。这个地方,我没有太理解,不知道是不是影响了我后边做那个修改日期demo呢。
出现一个效果那简单了,你在SpringBoard启动完成后弹个UIAlertView
就好了
erdan
(二蛋)
2018 年4 月 13 日 17:46
#7
写了启动后弹出框方法,修改了一点内容,因为我用cycript执行弹出框例子的时候message:self,会报错:「cy# alertView = [[UIAlertView alloc] initWithTitle:@“fuck” message:nil delegate:self cancelButtonTitl:@“OK” otherButtonTitles:nil]
throw new ReferenceError(“Can’t find variable: self”)」
我用make package install 执行以后,SpringBoard重启,但是并没有弹出效果框。会不会是因为我手机SpringBoard重启的时候会提示了一个sim卡未安装,影响了本身的弹窗呢!
这里有个问题,就是,cycript执行代码出错,会直接提示错误记录,安装好的工程的错误日志应该在哪里看呢(可能我还没看到那个地方,事先问问)?
sduan
(sduan)
2018 年4 月 14 日 14:04
#8
看着有点着急,代码哪来的呢?都被你注释掉了,肯定没有效果啊!
「cy# alertView = [[UIAlertView alloc] initWithTitle:@“fuck” message:nil delegate:self cancelButtonTitl:@“OK” otherButtonTitles:nil]
throw new ReferenceError(“Can’t find variable: self”)」 你google翻译一下就明白了
alertView = [[UIAlertView alloc] initWithTitle:@“TITLE” message:@“MESSAGE” delegate:nil cancelButtonTitle:@“OK” otherButtonTitles:nil]; [alertView show]; 这样写
erdan
(二蛋)
2018 年4 月 19 日 10:18
#11
抱歉,前几天有事情,没上线。
我在执行make package install 的时候打开系统日志,打印了下日志。因为刚学,我也不知道这个日志时表示算执行了。日志截图:
你代码怎么写的,贴出来看看?用markdown贴,别粘图了
erdan
(二蛋)
2018 年4 月 19 日 12:16
#15
iosrprojecttest.zip (24.6 KB)
发个我的工程的了,麻烦您看看。
Zhang
2018 年4 月 19 日 16:54
#16
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"哈啊和!"
message:@"YOU"VE HACKED SPRINGBOARD!"
delegate:nil
cancelButtonTitle:@"YES"
otherButtonTitles:nil];
[alert show];
[alert release];
YOU后面的引号没转义所以你这个连语法都不对。编译器都没法理解你的代码怎么会有效果
Zhang
2018 年4 月 19 日 16:58
#17
另外Makefile里路径为啥你要改成绝对路径/User/Paul/
错!
然后你这个因为上面我说到的原因Theos预处理器直接无视了这个hook,所以编译出来的dylib是空的。你拉进hopper看下就知道了
erdan
(二蛋)
2018 年4 月 20 日 00:21
#18
include /Users/paul/opt/theos/makefiles/common.mk
这个写绝对路径,主要是应为我自己mac上边theos就安装到了这个地方。不写绝对路径编译的时候会出错。所以就写了绝对路径。写了绝对路径编译就过了。
这个文件在手机上执行的时候,也需要有common.mk这个文件才可以吗?
erdan
(二蛋)
2018 年4 月 23 日 02:36
#20
很感谢您回答问题,问题解决,重新修改了环境,修改了代码问题解决。不是手机或者系统问题。
因为theos有更新,mac也有升级,所以主要问题出在环境配置上!