The first question people generally ask about this project is, "How can I help out?". Here are some ways someone can be useful to the project:
This is perhaps the most valuable way one can help the project. We get many people who want to help with development but they don't have the necessary skills. If you don't, think of it as an opportunity to learn new and worthwhile skills instead of a roadblock. After all, the best way to learn is in the field doing real work. Here are some topics that developers need to know about:
- ARM assembly - this is probably the hardest topic for beginners to grasp. Resources:
- C - Used whenever we can avoid using ARM assembly.
- Python - Python is used often for various scripts we write.
If you've ever found a way to get your iPod to crash by corrupting things or inputting weird things, we could use the info to see if the bug is a vulnerability. Some examples of bugs like this are the Notes vulnerability and the Pwnage 2.0 vulnerability. Right now, we mostly need this for the Nano 5G since we have no means of execution on that device. If you do find such a bug, report it via private message on IRC to a main developer. DO NOT, I repeat, DO NOT, exclaim the bug to the world on a public IRC channel or mailing list. We made this mistake with the Notes vulnerability. As a result, Apple patched it on the Nano 4G and even patched the original firmware on the Nano 5G (thus making it impossible to downgrade to a vulnerable firmware).
Another way to help out is writing guides like these on the Wiki. Make it easier for new users to get information.
Testers are always good to have, and its also a good way to help out if you don't want to spend much time on the project or don't know much about development. Developers, however, will get tired of working with you if you are clueless about how everything works, so make sure you have a good understanding about the tools you're testing.