How to create mobile substrate plugins on XCode?

Posted by prathumca on Stack Overflow See other posts from Stack Overflow or by prathumca
Published on 2010-05-22T12:38:29Z Indexed on 2010/05/22 12:40 UTC
Read the original article Hit count: 538

Filed under:
|
|
|

Hi Everyone,

I just wanna create a MS plugin to hook SpringBoard. I'm following "gojohnnyboi" tutorial from here "http://www.ipodtouchfans.com/forums/showthread.php?t=103558".

To create a dylib on XCode, I'm following "SkylarEC" tutorial. I mix these two great tutorials and finally got succeed by getting a dylib. But when I placed the dylib in the /Library/MobileSubstrate/DynamicLibraries/ nothing is happened (no alert was shown).

By evaluating, I found that, this dylib doesn't have any starting point when it was loaded into the memory. So I mentioned a starting point by declaring a constructor in the .mm file like,

__ attribute__((constructor)) static void init() { Class _$SBAppIcon = objc_getClass("SBApplicationIcon"); MSHookMessage($SBAppIcon, @selector(launch), (IMP) &_$ExampleHook_AppIcon_Launch, "_OriginalMethodPrefix");
}

But when I'm trying to compile this, I'm getting an error like,

Undefined symbols: "_MSHookMessage", referenced from: init() in ExampleHook.o ld: symbol(s) not found collect2: ld returned 1 exit status.

Does anyone has idea how to solve this? It would be great and more helpful if anyone share the detailed tutorial/instructions to create a dylib on XCode.

P.S I placed all the libsubstrate.dylib and substrate.h files in the corresponding location. And the locations are,

libsubstrate.dylib : /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/ substrate.h : /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include

and my base SDK is 3.0.

© Stack Overflow or respective owner

Related posts about iphone

Related posts about iphone-sdk