Jailbreak Development Tools: Difference between revisions

From iPhone Development Wiki
No edit summary
m (Undo revision 4331 by Uroboro (talk) Unnecessary change inconsistent with standard)
 
(16 intermediate revisions by 9 users not shown)
Line 1: Line 1:
The first step in developing for jailbroken devices (this includes MobileSubstrate extensions, or "tweaks") is understanding the commonly-used development tools.
The first step in developing for jailbroken devices (this includes MobileSubstrate extensions, or "tweaks") is understanding the commonly-used development tools.
== iOS Build Environment for Windows ==
A build environment is available for those who want to develop and compile iOS programs on Windows computers. See here:
[http://www.pmbaty.com/iosbuildenv/ iOS Build Environment by Pierre-Marie Baty] - suitable for Windows XP, Vista and 7.
It can build apps for iOS 3 onwards, making it suitable for iPhone, iPods and iPads. The binaries are iOS 4 compatible. Sample projects (available for free separately) include:
* A basic UIKit Hello World application (download: [http://www.pmbaty.com/iosbuildenv/HelloWorld.zip HelloWorld.zip])
* A basic OpenGL rotating cube (download: [http://www.pmbaty.com/iosbuildenv/GLCube.zip GLCube.zip])
* A system-wide Settings.app bundle (download: [http://www.pmbaty.com/iosbuildenv/SambaSettings.zip SambaSettings.zip])
* A SBSettings toggle (download: [http://www.pmbaty.com/iosbuildenv/smbtoggle.zip smbtoggle.zip])


== Theos: Build System ==
== Theos: Build System ==
Line 25: Line 11:
=== NIC (New Instance Creator) ===
=== NIC (New Instance Creator) ===


The New Instance Creator is a script, included with Theos, that creates empty projects for you to use as starting points for your development.
The [[NIC|New Instance Creator]] is a script, included with Theos, that creates empty projects for you to use as starting points for your development.


An example of how NIC is used can be found [[Theos/Getting Started#Creating a Project|here]].
An example of how NIC is used can be found [[Theos/Setup#Creating a Project|here]].


== Logos ==
== Logos ==
Line 36: Line 22:


Unlike the tools listed above, [[Logify]] isn't a tool you would use throughout a project's life cycle. Logify accepts a class header and generates a MobileSubstrate extension which hooks all of that class's methods, printing log messages when they are called. This helps a hook developer see when certain methods are invoked during use.
Unlike the tools listed above, [[Logify]] isn't a tool you would use throughout a project's life cycle. Logify accepts a class header and generates a MobileSubstrate extension which hooks all of that class's methods, printing log messages when they are called. This helps a hook developer see when certain methods are invoked during use.
== IOSOpenDev ==
[[iOSOpenDev]] is an open-source project that sets up the iOS SDK to allow open development in Xcode of jailbreak-type projects not supported or allowed by default and provides Xcode templates for building common jailbreak-type projects and the various tools needed for such development.
== On-device toolchains ==
See [[On-device toolchains]] for details.
== 6.1 Toolchain For Windows ==
[[User:coolstar|Coolstar]] is working on an iOS toolchain for Windows, available [http://coolstar.org/iOSToolchainOnWindows.html here.]
[[Category:Development Tools]]
== Reverse Engineering Tools ==
See [[Reverse Engineering Tools]] for details.

Latest revision as of 02:48, 11 April 2016

The first step in developing for jailbroken devices (this includes MobileSubstrate extensions, or "tweaks") is understanding the commonly-used development tools.

Theos: Build System

Not to be confused with a toolchain or SDK, Theos helps create and manage projects. Theos:

  • Creates new empty projects based on templates (see NIC, below)
  • Handles Makefiles for your build environment
  • Automates packaging (to .deb) and installation

NIC (New Instance Creator)

The New Instance Creator is a script, included with Theos, that creates empty projects for you to use as starting points for your development.

An example of how NIC is used can be found here.

Logos

Logos is a preprocessor that aids in MobileSubstrate extension development. It allows you to define hooks with a clear, readable syntax.

Logify

Unlike the tools listed above, Logify isn't a tool you would use throughout a project's life cycle. Logify accepts a class header and generates a MobileSubstrate extension which hooks all of that class's methods, printing log messages when they are called. This helps a hook developer see when certain methods are invoked during use.

IOSOpenDev

iOSOpenDev is an open-source project that sets up the iOS SDK to allow open development in Xcode of jailbreak-type projects not supported or allowed by default and provides Xcode templates for building common jailbreak-type projects and the various tools needed for such development.

On-device toolchains

See On-device toolchains for details.

6.1 Toolchain For Windows

Coolstar is working on an iOS toolchain for Windows, available here.

Reverse Engineering Tools

See Reverse Engineering Tools for details.