Reorganization and expansion
On IRC, User:Snakeninny provided helpful suggestions for rearranging and expanding this article to help new developers better, so I'll summarize them here for reference (and in case anyone wants to help rearrange the page and fill out the missing parts).
- An introduction to basic knowledge: the differences between normal and jailbroken iOS from a power user's perspective (sandboxing, directory hierarchy, permissions), and from a developer's perspective (from App Store app to Cydia app, tweaks, daemons). An explanation of what Mobile Substrate is and how/why it works.
- Explaining the tools you need to develop for jailbroken iOS. On Mac: class-dump(-z), Theos, Reveal, IDA, iFunbox, dyld_decache. On iOS: OpenSSH, GDB, Cycript, AppCrackr, syslog.
- How to write a tweak, from finding inspiration to finishing it. This includes figuring out which files to analyze, learning how to use a combination of class-dump, IDA, and GDB to locate functions/methods, how to use Cycript to prototype the tweak, and how to finish it with Theos. Also, how to reverse-engineer with IDA and GDB to go further with development.
- Examples: representative examples and snippets from GitHub repositories and blogs.