抄网上一个常见的hook springboard的例子:
创建项目,iOSOpenDev->Logos Tweak (安装后不会有图标)。
xm文件里面的#error会提示你拷贝个libsubstrate.dylib过来。
到/opt/iosopendev/lib里面拉libsubstrate.dylib到项目的Frameworks目录。
再拉进一个UIKit.framework,因为SpringBoard在里面声明(不是什么其它的地方)。
清空xm文件,写代码:
#import <UIKit/UIKit.h>
// 不要把类名写错了,写错了也能正常编译安装的,就是得不到预期的效果
%hook SpringBoard
- (void)applicationDidFinishLaunching:(id)application {
%orig;
UIAlertView *alert =
[[UIAlertView alloc]initWithTitle:@"welcome" message:@"hellowrold" delegate:nil cancelButtonTitle:@"thanks" otherButtonTitles:nil];
[alert show];
[alert release];
}
%end
按"xcode-iosopendev"提到的设置工程,编译安装。
重启机子(killall springboard),启动起来时可以看到弹出的alertview。
创建项目,iOSOpenDev->Logos Tweak (安装后不会有图标)。
xm文件里面的#error会提示你拷贝个libsubstrate.dylib过来。
到/opt/iosopendev/lib里面拉libsubstrate.dylib到项目的Frameworks目录。
再拉进一个UIKit.framework,因为SpringBoard在里面声明(不是什么其它的地方)。
清空xm文件,写代码:
#import <UIKit/UIKit.h>
// 不要把类名写错了,写错了也能正常编译安装的,就是得不到预期的效果
%hook SpringBoard
- (void)applicationDidFinishLaunching:(id)application {
%orig;
UIAlertView *alert =
[[UIAlertView alloc]initWithTitle:@"welcome" message:@"hellowrold" delegate:nil cancelButtonTitle:@"thanks" otherButtonTitles:nil];
[alert show];
[alert release];
}
%end
按"xcode-iosopendev"提到的设置工程,编译安装。
重启机子(killall springboard),启动起来时可以看到弹出的alertview。