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.
Thoughts on improving this article
"The discussion page puts it pretty well. I didn't even know some of those programs existed! The code examples/ideas to get your brain flowing was the other thing, which is starting to be added."
About Open Source Projects: "When I visited that page as a beginner I tried downloading one, tried compiling, got some arbitrary error, and was stuck. I also found building simple tweaks and asking this group about errors taught me much more than looking at open source code. :P"