gpt4 book ai didi

iphone - 为越狱的 iOS 制作守护进程

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:27 27 4
gpt4 key购买 nike


我一直在寻找一种在 iPhone 上启动守护进程的方法,我通过学习 ants application 使用 Xcode 创建了一个小测试应用程序。的源代码,它告诉我应该使用 launchctl 但不幸的是它不起作用。

我已经使用 SSH 在我的 iPod Touch 上的 /Applications/ 中安装了我的应用程序,然后我通过帐户 mobile 使用 SSH 启动它,我的日志是这样的:

Script started on Thu Feb 24 19:33:28 2011
bash-3.2$ ssh mobile@192.168.1.8
mobile@192.168.1.8's password:
iPod-van-Henri:~ mobile$ cd /Applications
iPod-van-Henri:/Applications mobile$ cd DaemonUtility.app/
iPod-van-Henri:/Applications/DaemonUtility.app mobile$ ./DaemonUtility
2011-02-24 19:35:08.022 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:09.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:10.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:11.021 DaemonUtility[1369:107] Read 0 bytes
Bug: launchctl.c:2367 (24307):13: (dbfd = open(g_job_overrides_db_path, O_RDONLY | O_EXLOCK | O_CREAT, S_IRUSR | S_IWUSR)) != -1
launchctl: CFURLWriteDataAndPropertiesToResource(/private/var/stash/Applications.pwn/DaemonUtility.app/com.developerief2.daemontest.plist) failed: -10
launch_msg(): Socket is not connected
2011-02-24 19:35:12.039 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:13.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:14.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:15.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:16.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:17.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:18.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:19.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:20.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:21.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:22.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:23.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:24.021 DaemonUtility[1369:107] Read 0 bytes
2011-02-24 19:35:25.021 DaemonUtility[1369:107] Read 0 bytes
^C
iPod-van-Henri:/Applications/DaemonUtility.app mobile$ exit
logout
Connection to 192.168.1.8 closed.

bash-3.2$ exit
exit

Script done on Thu Feb 24 19:34:49 2011

当我用 root 启动它时(用 su 执行),我让守护进程运行,但它什么也没做。

自启动以来,我的守护程序应每十秒显示一次 UIViewAlert:

**main.m (Daemon)**
//
// main.m
// DaemonTest
//
// Created by ief2 on 23/02/11.
//

#import <UIKit/UIKit.h>

@interface DAAppDelegate : NSObject <UIApplicationDelegate> {
NSDate *_startupDate;
NSTimer *_messageTimer;
}
@property (nonatomic, retain) NSDate *startupDate;
@end

@interface DAAppDelegate (PrivateMethods)
- (void)showMessage:(NSTimer *)timer;
@end

@implementation DAAppDelegate
@synthesize startupDate=_startupDate;

- (void)dealloc {
[_startupDate dealloc];
[_messageTimer dealloc];

[super dealloc];
}

- (void)applicationDidFinishLaunching:(UIApplication *)theApplication {
UIAlertView *myView;
myView = [[UIAlertView alloc] initWithTitle:@"Daemon Launched"
message:@"The daemon was launched"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[myView show];
[myView release];

self.startupDate = [NSDate date];

NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:10
target:self
selector:@selector(showMessage:)
userInfo:nil
repeats:YES];
_messageTimer = [myTimer retain];
}

- (void)applicationWillTerminate:(UIApplication *)theApplication {
[_messageTimer invalidate];

UIAlertView *myView;
myView = [[UIAlertView alloc] initWithTitle:@"Daemon Terminated"
message:@"The daemon was terminated"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[myView show];
[myView release];
}

- (void)showMessage:(NSTimer *)timer {
NSTimeInterval mySec;
mySec = [self.startupDate timeIntervalSinceNow];
NSString *format = [NSString stringWithFormat:
@"The daemon has been running for %llu seconds",
(unsigned long long)mySec];
UIAlertView *myView;
myView = [[UIAlertView alloc] initWithTitle:@"Daemon Message"
message:format
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[myView show];
[myView release];
}
@end


int main(int argc, const char **argv) {
NSAutoreleasePool *mainPool = [[NSAutoreleasePool alloc] init];

UIApplicationMain(argc, (char **)argv, nil, @"DAAppDelegate");

[mainPool drain];
return 0;
}

完整的应用程序源代码可以在我的电脑上找到:
http://81.82.20.197/DaemonTest.zip

提前谢谢你,
IEF2

最佳答案

你太辛苦了。您需要做的就是创建一个包含应用程序标识符和路径的 .plist 文件,并将其添加到/System/Library/LaunchDaemon 文件夹中。然后确保您的应用位于/Applications 文件夹中。重新启动,每次启动手机时它都会工作。

谷歌“Chris Alvares daemon”并查看他的教程...

关于iphone - 为越狱的 iOS 制作守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5109059/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com