IOS越狱开发之开机启动APP

摘要:
关于第一种方法正在坎坷的做着各种尝试。。。若有大神已经研究出成果了,由衷感谢您能分享最后欢迎大家拍砖!!

越狱环境搭建移步这里:http://www.cnblogs.com/ligun123/archive/2012/11/14/2770350.html

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

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

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

- (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文件里面添加以下代码

#import <UIKit/UIKit.h>

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application {
    %log;
    %orig;
    
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"applicationDidFinishLaunching"message:@"Hello World!"
                                                   delegate:nil
                                          cancelButtonTitle:@"Thanks"otherButtonTitles:nil];
    [alert show];
    [alert release];
    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"inf://"]];  //@"inf://"是你想要打开app注册的scheme,对scheme有疑问请移步baidu
} %end

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

6、最后product-》build for-》profiling,第一次编译会有一个错误提示,阅读error的提示,它告诉你everything is ok,请你再重新编译,于是你再重新编译,deb包成功安装到你的设备上的话,你的设备会重新启动

无误的话你的设备启动完成后会弹出以上代码中写的AlertView,并且已经打开了你URL中指定的app

这种方法的缺点是设备启动完成后,用户会直接进入到你的app界面中,无法让你的app悄无声息的运行在后台。

关于第一种方法正在坎坷的做着各种尝试。。。

若有大神已经研究出成果了,由衷感谢您能分享

最后欢迎大家拍砖!!

欢迎转载,保留出处!

免责声明:文章转载自《IOS越狱开发之开机启动APP》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VMware Workstation安装安卓Android-X86 最新版cursor鼠标指针样式大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于ffmpeg解决主流浏览器无法播放wmv、avi等格式视频问题(内附linux环境相关安装包nasm、yasm、x264等)

最近接到一个老项目,由于老项目之前适配的是ie浏览器。该老项目中有很多wmv和avi格式的视频。最近需要更换视频其他浏览器访问,需要对除ie浏览器的其他浏览器进行适配。ie浏览器播放视频没有任何问题,但是在主流浏览器中,无法识别<embed>标签,只支持<video>、<audio>标签,然而这些标签支持的视频格式为主流...

(二)微信小程序的三种传值方式

1.全局变量   app.js里   App({     //全局变量     globalData: {     userInfo: null,     host: 'http://localhost:8080/data.json'   }   在其他js页面取值:   const app = getApp()  //获取应用实例 必须有这个才能获取到a...

Veritca 简单安装配置过程

系统版本 # cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core) 本次安装主机为centos7.8,此安装方法支持centos6/7,suse11/12 系统环境配置 修改hosts文件 #vim /etc/hosts 192.167.150.150 node1 注意:1...

pdf.js兼容ie9浏览器及以上版本

本插件不兼容ie8,兼容ie9及以上版本,官网最新的几个版本都不兼容ie9 pdf.js是一款优秀的pdf在线浏览的插件,使用很容易上手,具备打印、下载、关键词查找高亮显示等很多功能 目录结构如下图:  使用: 直接把下载下来的pdf.js放到tomcat下运行,index.html是我写的demo,直接访问这个页面 下图是ie9下运行效果 网盘地址:...

iOS证书详解--转载

一、成员介绍1.    Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1)    Developer Certification(开发证书)安装在电脑上提供权限:开发人员通过设备进行真机测试。可以生成副本供多台电脑安装;2)      Distribution Certification(发布证书)安装在电脑...

PC浏览器播放m3u8

 HLS(HTTP Live Streaming)是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的基于HTTP协议的流媒体解决方案。在 HLS 技术中 Web 服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的 HTTP 协议,所以这时,只要使用 HLS 的技术,就能在普通的 HTTP 的应用上直接提供点播和...