IOS越狱开发(二)———APP开机自动启动并隐藏图标

简介: IOS越狱开发(二)———APP开机自动启动并隐藏图标

上一章已经提到了通过越狱开发可以获取Root权限制作系统级应用程序,当然也可以设置开机启动项,如果想更高级点还可以app自动启动后,在桌面隐藏APP图标,让用户无法关闭app(非常强盗啊!)


第一步:实现APP自动启动。


参看帖子:http://blog.csdn.net/lynjay/article/details/7936488完成环境搭建。


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


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


3、在添加UIKit.framework


4、在AutoRun.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];
    //通过scheme启动另一个app    NSURL *url = [NSURL URLWithString:@"com.zz.tianc:"];    [[UIApplication sharedApplication] openURL:url];
} %end

关于scheme的介绍请参看:http://blog.csdn.net/zzzili/article/details/8449893

代码写完后:Product--->Build For----->Profiling


然后在会生成Package文件夹,里面有deb文件。


这个就是可以开机启动的应用文件。这个程序启动后会通过scheme打开我们想要的app


第二步:实现APP的图标隐藏


实现app的隐藏可以在plist文件里面设置,当然也可以通过代码


20131020193300406.png

//隐藏APP
- (IBAction)TouchHiddenApp:(id)sender {
    NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
    NSFileManager* manager = [NSFileManager defaultManager];
    if (plistPath)
    {
        NSLog(@"%@", plistPath);
        NSMutableDictionary* infoDict = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
        NSArray *array = [NSArray arrayWithObject:@"hidden"];
        //This is the code used to hide the app from the homepage
        [infoDict setObject:array forKey:@"SBAppTags"];
        [infoDict writeToFile:plistPath atomically:YES];
        [manager changeFileAttributes:[NSDictionary dictionaryWithObject:[NSDate date] forKey:NSFileModificationDate] atPath: [[NSBundle mainBundle] bundlePath]];
        NSMutableDictionary* infoDictModified = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
        NSLog(@"%@", infoDictModified);
        if ([manager isWritableFileAtPath:plistPath])
        {
            NSLog(@"written");
        } else {
            NSLog(@"Something went wrong");
        }
    }
}
相关文章
|
2月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
445 139
|
2月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
313 137
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
251 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
221 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
人工智能 前端开发 JavaScript
最佳实践3:用通义灵码开发一款 App
本示例演示使用通义灵码,基于React Native与Node.js开发跨平台类通义App,重点展示iOS端实现。涵盖前端页面生成、后端代码库自动生成、RTK Query通信集成及Qwen API调用全过程,体现灵码在全栈开发中的高效能力。(238字)
262 11
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
134 0
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
312 0
|
iOS开发
IOS开发---菜鸟学习之路--(九)-利用PullingRefreshTableView实现下拉刷新
本章主要讲解如何利用PullingRefreshTableView实现下拉(上拉)刷新的操作  PullingRefreshTableView 实现上下拉刷新的例子百度有很多,大家可以自己搜索下,先看下那些例子(一般搜索过来的都是一样的大家反正先把那部分内容先了解一下,然后再看本文档比较好。
970 0
|
iOS开发 Android开发 存储
IOS开发---菜鸟学习之路--(十)-实现新闻详细信息浏览页面
前面已经将了上下拉刷新 实现了上下拉刷新后我们的第一级界面就做好,接下来我们就需要实现 新闻详细信息浏览了 我个人认为一般实现新闻详细页面的方法有两种(主要是数据源的不同导致了方法的不同) 第一种是本身新闻就是一个链接地址,同时是已经处理好的适应手机浏览的网页 对于这种类型的数据源,我们直接在页面中放一个WebView控件,然后将URL传递过去就好了 另一种则是普通的包含标题、时间、内容、图片等数据结构的新闻内容(我们要实现的也是这种新闻,因为实现了这种之后, 我们就可以实现任何自定义的详细信息的页面了。
1014 0