Note that there are some explanatory texts on larger screens.

plurals
  1. POMaking a daemon for a jailbroken iOS
    primarykey
    data
    text
    <p><br> I have been looking for a way to launch daemons on the iPhone and I created a little test application with Xcode by learning from the <a href="http://code.google.com/p/iphone-ants/" rel="nofollow">ants application</a>'s source code, which taught me that I should use <code>launchctl</code> But unfortunately it is not working.</p> <p>I have installed my application with SSH on my iPod Touch in <code>/Applications/</code>, I then launch it with SSH thru the account <code>mobile</code> and my log says this:</p> <pre><code>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 </code></pre> <p>When I launch it with the <code>root</code> (doing it with <code>su</code>), I get the daemon to run, but it doesn't do anything.</p> <p>My daemon should display a <code>UIViewAlert</code> every ten seconds since it's launch:</p> <pre><code>**main.m (Daemon)** // // main.m // DaemonTest // // Created by ief2 on 23/02/11. // #import &lt;UIKit/UIKit.h&gt; @interface DAAppDelegate : NSObject &lt;UIApplicationDelegate&gt; { 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; } </code></pre> <p>The full application's source code can be found on my computer:<br> <a href="http://81.82.20.197/DaemonTest.zip" rel="nofollow">http://81.82.20.197/DaemonTest.zip</a></p> <p>Thank you in advance,<br> ief2</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload