So having just got over problems with Apple’s app store apps crashing out all the time (see here) I wasn’t hugely impressed when Cydia decided to play up as well.
2 things showed the problem.
Whenever I tried to start cydia, either:
- The screen would black like it normally does and then dump me straight back the spring/winterboard
- The app would look like it was starting up, complete with the ‘reloading sources’ and the crash out back to spring/winterboard
After the usual googling around there appeared to be a couple of options that people reckoned:
- A problem with sources
- A problem with updates
Both of which seemed quite reasonable. So I decided to follow these 2 through. Now this didn’t quite go as planned, so the following is a big WARNING:
- Take a backup of your phone before starting, and be aware that if you change the extension from ipsw to zip you can open it and see the files inside
- Have a tool ready that lets you transfer files over a cable from your machine to your iPhone. I’m on a Mac and used iPhone Explorer
All of the suggested solutions involve removing various files from the Jail broken iPhone’s filesystem. And, if like me, you remove a few more than you should you’ll be thankful you’ve got the ability to replace them.
The 3 suggested solutions to this problem are:
1) Remove an offending file from /var/lib/apt/lists though don’t touch the partial folder.
2) Remove an offending file from /etc/apt/sources.list.d
3) clear out /var/lib/dpkg/updates
For 1+2 try removing a file at a time and then respringing it to see if Cydia then starts up. If it doesn’t seem to fix it, put it back and try another. This is where I went wrong and deleted the lot, which stops Cydia from seeing any of the repositories and kills any chance of installing or updating apps. Luckily I could put the lot back from my backup.
In my case it was case 3. So clearing out all the files in the update folder fixed it.
It’s probably safer to remove the files using iPhone explorerer, but with my Unix hat on I decided to do it through the terminal on the phone.