View Full Version : [Tool Chain] run APIs with Apple SDK
NerveGas
03-17-2008, 03:05 AM
The lower-level APIs on the iPhone (those used by the tool chain) can now be used with the Apple SDK per instructions in my blog here: http://www.zdziarski.com. Of course, this will likely disqualify you from using the AppStore, but if you need some of the restricted features like being able to suspend/resume, it may be useful. As expected, the lower level APIs are relatively the same as they were in 1.1, so you should be able to compile most existing "tool chain" applications with little-to-no code changes.
waterlou
03-17-2008, 05:41 AM
Thanks. It is very useful. Although the official SDK is very powerful. Apple restricts too much on it that make it is almost impossible to build some useful applications. So can we debug "tool chain" api under xcode?
thebo83
03-17-2008, 11:29 AM
Apple restricts too much on it that make it is almost impossible to build some useful applications.
I think this is a very overstated opinion... :rolleyes:
Yogijalla
03-17-2008, 01:13 PM
This is wonderful news!
Can someone more enlighted explain in more depth, what is going on?
I suppose i can use Aspen for building and debuging applications, and release apps (without intervenience of Apple) for jailbroken iphones? Somebody please do a step-by-step blog on this.
Saimen
03-17-2008, 02:24 PM
Nice work!
Does that mean that I can compile Applications written with the official SDK for FW earlier than 1.2.0?
And doesn't it replace the open source toolchain, or what's the advantage of using the open source toolchain now?
NerveGas
03-17-2008, 02:40 PM
Nice work!
Does that mean that I can compile Applications written with the official SDK for FW earlier than 1.2.0?
And doesn't it replace the open source toolchain, or what's the advantage of using the open source toolchain now?
No, the other way around - it lets you compile applications written for 1.0/1.1 to run on 1.2. In other words, it gives your applications access to the lower-level APIs used by the tool chain.
CycloneFr
03-17-2008, 02:53 PM
hum but jailbroken app were working on 1.2 firmware no?
u have to recompile them under SDK certificates?
NerveGas
03-17-2008, 03:50 PM
hum but jailbroken app were working on 1.2 firmware no?
u have to recompile them under SDK certificates?
If you are jailbroken, there is no need for a certificate. We also have a SpringBoard patch that prevents it from killing off unauthorized applications. Prior to our updating the tool chain / Apple SDK headers, you could not just recompile an existing application, because 1.2 uses (among other things) a new entry point for applications, and ABI version 2 in its dynamic linker. We've updated the tool chain to support all of this, however, so you now can recompile your applications, with few-to-no changes.
In terms of what this does for the Apple SDK, these headers / compiler flag changes allow you to build apps using the lower-level APIs that Apple has turned off for the SDK. Frameworks such as Celestial, GraphicsServices, etc., are unavailable to the SDK. This will allow you to build apps that use them.
CycloneFr
03-17-2008, 05:31 PM
i clearly understand. So if u havent found this solution the jailbroken was really disabled by apple as they claimed a few weeks ago :) great job.
So we can imagine a new fresh installer such as cydia (that I support at 100%) that will provide "jailbrokensdk" apps. :)
Im wondering if official games such as SMB could be leeched from applestore then sent from iPhone via SSH to MAC. Then from a MAC to an jailbroken iPhone and would work?
In conclusion this mean everybody is gonna need to rewrite his own application for 1.2 compliance. I hope SIPHONE and MMSiPhone will be upgraded :)
netkas
03-17-2008, 07:00 PM
NerveGas, u r a bit late with it, i made same when was porting anysim to sdk, but it wasn't good idea, app didn't work well in simulatore (no slider working) and didn't work at all on iphone, maybe i did smth wrong, so i rewrote it to use only sdk headers :)
CycloneFr
03-17-2008, 07:51 PM
:s :s doesnt sound good
NerveGas
03-17-2008, 07:57 PM
NerveGas, u r a bit late with it, i made same when was porting anysim to sdk, but it wasn't good idea, app didn't work well in simulatore (no slider working) and didn't work at all on iphone, maybe i did smth wrong, so i rewrote it to use only sdk headers :)
Not having problems with my builds... all the examples i've tested run, and NES.app is working on Aspen with it:
http://www.zdziarski.com/images/nes_on_aspen.jpg
CycloneFr
03-17-2008, 08:16 PM
good good good
iPhoneFrank
03-17-2008, 09:53 PM
NerveGas, many thanks. This is awesome. Testing on the emu saves alot of development time.
erland
03-19-2008, 09:25 AM
Does this somehow mean that we will be able to develop applications using Linux or Windows, or are we still required to use Leopard ?
I understand that the Apple IDE (Cocoa?) doesn't work on Linux, but will I be able to cross compile and edit the source code using a standard text editor ?
lordimac
03-19-2008, 12:33 PM
Can I use this with Aspen Simulator? This would be nice to run native 1.0/1.1 in Simulator.
antith3tic
03-20-2008, 01:03 AM
Does this somehow mean that we will be able to develop applications using Linux or Windows, or are we still required to use Leopard ?
I understand that the Apple IDE (Cocoa?) doesn't work on Linux, but will I be able to cross compile and edit the source code using a standard text editor ?
You are still limited to Leopard for SDK applications. This is more along the lines of being able to use Xcode 3.1 (i.e. apple's ARM compilier) with the less restrictive 'open toolchain' header/framework.
There is a easy Windows binary toolchain installer floating around. The installation is very straighforward. I compiled a "HelloWorld" level app under Vista and it ran on my 1.1.4 firmware phone.
The toolchain install under Linux is close to the OS X from what I gather. Just a few tweaks of the build parameters.
Darkmen
03-21-2008, 01:57 AM
HI @ ALL
I think its a good idea to use XCode to build 1.1.4 applications. IDE - much easier to code.
The idea is to make an own SDK item:
/Developer/Platforms/Toolchain.platform/Developer/SDKs/Toolchain.sdk
We can copy Aspen.platform to Toolchain.platform and replace all Frameworks from FW image and take set of headers from leo loolchain
In
/Developer/Platforms/Toolchain.platform/Info.plist we changing name to Toolchaine and version to 1.1.4
Then
/Developer/Platforms/Toolchain.platform/Developer/SDKs/Toolchain.sdk/SDKSettings.plist
CanonicalName = aspen1.1.4
DisplayName = Device - Aspen 1.1.4
Version 1.1.4
After XCode restart we can select own SDK item Aspen 1.1.4 in project properties.
But i still have problemth with linking
It doesn't want to find any library export symbols
so i get alot of error messages like:
Undefined symbol: _onjc_MsgSend
Any thoughts?
Edit: solved
jeanmaikel
03-25-2008, 01:55 PM
Jonathan Z has updated the document
http://iphone-dev.org/howto:using_sdk_with_toolchain_headers
but by comparing with the forum on amazon, there is still a typo
on the 4th line, a carriage return is missing before second -F
correct is
"
-I/Developer/SDKs/iPhoneOS.sdk/Versions/Aspen1.2.sdk/include
-I/Developer/Platforms/Aspen.platform/Developer/SDKs/Aspen1.2.sdk/usr/include
-I/Developer/Platforms/Aspen.platform/Developer/usr/lib/gcc/arm-apple-darwin9/4.0.1/include
-F/System/Library/Frameworks
-F/Developer/Platforms/Aspen.platform/Developer/SDKs/Aspen1.2.sdk/System/Library/Frameworks
-F/Developer/Platforms/Aspen.platform/Developer/SDKs/Aspen1.2.sdk/System/Library/PrivateFrameworks
-DMAC_OS_X_VERSION_MAX_ALLOWED=1050"
cbecking
04-24-2008, 08:26 PM
Any word on this working on SDK beta 4?
clint999
05-02-2008, 10:47 PM
i clearly understand. So if u havent found this solution the jailbroken was really disabled by apple as they claimed a few weeks ago great job.
So we can imagine a new fresh installer such as cydia (that I support at 100%) that will provide "jailbrokensdk" apps.
Im wondering if official games such as SMB could be leeched from applestore then sent from iPhone via SSH to MAC. Then from a MAC to an jailbroken iPhone and would work?
In conclusion this mean everybody is gonna need to rewrite his own application for 1.2 compliance. I hope SIPHONE and MMSiPhone will be upgraded
clint999
05-11-2008, 11:08 PM
i clearly understand. So if u havent found this solution the jailbroken was really disabled by apple as they claimed a few weeks ago great job.
So we can imagine a new fresh installer such as cydia (that I support at 100%) that will provide "jailbrokensdk" apps.
Im wondering if official games such as SMB could be leeched from applestore then sent from iPhone via SSH to MAC. Then from a MAC to an jailbroken iPhone and would work?
In conclusion this mean everybody is gonna need to rewrite his own application for 1.2 compliance. I hope SIPHONE and MMSiPhone will be upgraded
czg1997
08-27-2008, 12:37 PM
Can anyone be able to use low level api definitions in official header files? Could you please tell me how.
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.