IOS越狱开发之开机启动APP

http://bbs.9ria.com/thread-207033-1-1.html

目前就我知道的开机启动有两种方式(仅限于越狱机器):

1、IOS设备开机后会自动加载LaunchDemos目录下面的Plist,这些Plist里面记录了相关的app信息,这些app都会在IOS开机后自动加载。(但这些app不会跑到前台来运行,也就是说不会进入到app的界面中去,可以让app悄无声息的运行在后台)

2、用%hook来钩取SpringBoard的启动函数:

  1. - (void)applicationDidFinishLaunching:(id)application;
复制代码

通过重写这个函数的功能,在里面OpenURL跳转到自己要开机启动的app(这个app会在前台打开,也就是说会直接进入到这个app的界面中去,)

以下是我对第二种方法实现的步骤总结:

1、新建工程:xcode-》file-》new-》project-》iOSOpenDev-》logos tweak, 取名叫aaaaaa,这个工程里面有两个文件很重要就是aaaaaa.xm和aaaaaa.mm文件,其中aaaaaa.mm文件的内容是编译器根据aaaaaa.xm自动填充的,暂时不管aaaaaa.mm文件,现在我们主要是对于aaaaaa.xm文件的编辑

2、按照错误提示,添加libsubstrate.dylib库到工程中,然后删除错误提示代码

3、在添加UIKit.framework

4、在aaaaaa.xm文件里面添加以下代码
  1. #import <UIKit/UIKit.h>

  2. %hook SpringBoard

  3. -(void)applicationDidFinishLaunching:(id)application {
  4. %log;
  5. %orig;

  6. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"applicationDidFinishLaunching"
  7. message:@"Hello World!"
  8. delegate:nil
  9. cancelButtonTitle:@"Thanks" 
  10. otherButtonTitles:nil];
  11. [alert show];
  12. [alert release];

  13. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"inf://"]];  //@"inf://"是你想要打开app注册的scheme,对scheme有疑问请移步baidu
  14. } %end
复制代码

5、在target-》Build settings-》iOSOpenDevDevice填上你的测试设备的ip地址

6、最后product-》build for-》profiling,第一次编译会有一个错误提示,阅读error的提示,它告诉你everything is ok,请你再重新编译,于是你再重新编译,deb包成功安装到你的设备上的话,你的设备会重新启动
无误的话你的设备启动完成后会弹出以上代码中写的AlertView,并且已经打开了你URL中指定的app
这种方法的缺点是设备启动完成后,用户会直接进入到你的app界面中,无法让你的app悄无声息的运行在后台。
关于第一种方法正在坎坷的做着各种尝试。。。
若有大神已经研究出成果了,由衷感谢您能分享
最后欢迎大家拍砖!!


原文来自: http://www.cnblogs.com/ligun123/archive/2012/11/20/2778680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值