Comex Reduces Jailbreak Install Time, Will Implement for iPad 2
Posted June 19, 2011 at 1:47am by iClarified
Comex has drastically improved the time it takes to jailbreak and gotten rid of the Cydia's 'Reorganizing Filesystem' message by using unionfs instead of the current stashing approach. According to a long tweet posted moments ago, Comex plans to apply the new approach to his upcoming iPad 2 jailbreak.
-----
If you don't know, the stashing approach jailbreaks have been using for years-- Cydia's "Reorganizing Filesystem"-- involves moving some large directories from the small / partition into the large /var partition, then creating symlinks from the original to the new location. This both ensures that any additional stuff put in those directories by packages will end up in the /var partition, and frees up space on the / partition for files created outside of those directories. However, the process has some issues, like taking forever to do when you jailbreak (I am a bit fanatical about speed), pretty much requiring the jailbreak to reboot the system to ensure there aren't any running applications pointing to the old files (ditto about speed, I want a jailbreak to not even require a respring, as in star, but since star used stashing, some obscure things could cause issues before a reboot), and seriously confusing the sandbox code in the kernel (because each application has a sandbox with a list of allowed filenames, but after the symlink has moved files, the filenames no longer match), requiring that code to be patched (it needs to be patched anyway these days because tweaks have to run under the sandboxes of the applications they're hooking, but depend on accessing various directories; but it still feels good to get rid of a kludge).
With unionfs (which was saurik's idea originally), new files are created in the /var partition, and merged with files in the corresponding directories in the / partition, so no files need to be moved, no descriptors are invalidated, and I think the sandbox code won't notice what happened. It also opens the door for upgrading the base operating system without destroying the jailbreak files (although maybe iOS 5 delta updates will already allow this? I haven't looked at them yet).
I've wanted to do this since literally a year ago (that's the date of the nullfs checkin, since I was dumb and thought I wanted that instead of unionfs), but I never got around to making it work properly.
So, I just hope that I can get rid of the crashes my meddling with unionfs's code have introduced, and fix it for the iPad 2 (my dumped copies of iPad 2 kernels do not include symbols; I wrote a small BinDiff-like tool to copy over symbols from a kernel for another device, but it's not perfect) and that there aren't any performance issues.
-----
MuscleNerd notes that with unionfs Apple apps don't need to be moved. That means they retain their entitlements, simplifying the sandboxing problem.
We'll keep updating you with more information as it becomes available.
Read More
-----
If you don't know, the stashing approach jailbreaks have been using for years-- Cydia's "Reorganizing Filesystem"-- involves moving some large directories from the small / partition into the large /var partition, then creating symlinks from the original to the new location. This both ensures that any additional stuff put in those directories by packages will end up in the /var partition, and frees up space on the / partition for files created outside of those directories. However, the process has some issues, like taking forever to do when you jailbreak (I am a bit fanatical about speed), pretty much requiring the jailbreak to reboot the system to ensure there aren't any running applications pointing to the old files (ditto about speed, I want a jailbreak to not even require a respring, as in star, but since star used stashing, some obscure things could cause issues before a reboot), and seriously confusing the sandbox code in the kernel (because each application has a sandbox with a list of allowed filenames, but after the symlink has moved files, the filenames no longer match), requiring that code to be patched (it needs to be patched anyway these days because tweaks have to run under the sandboxes of the applications they're hooking, but depend on accessing various directories; but it still feels good to get rid of a kludge).
With unionfs (which was saurik's idea originally), new files are created in the /var partition, and merged with files in the corresponding directories in the / partition, so no files need to be moved, no descriptors are invalidated, and I think the sandbox code won't notice what happened. It also opens the door for upgrading the base operating system without destroying the jailbreak files (although maybe iOS 5 delta updates will already allow this? I haven't looked at them yet).
I've wanted to do this since literally a year ago (that's the date of the nullfs checkin, since I was dumb and thought I wanted that instead of unionfs), but I never got around to making it work properly.
So, I just hope that I can get rid of the crashes my meddling with unionfs's code have introduced, and fix it for the iPad 2 (my dumped copies of iPad 2 kernels do not include symbols; I wrote a small BinDiff-like tool to copy over symbols from a kernel for another device, but it's not perfect) and that there aren't any performance issues.
-----
MuscleNerd notes that with unionfs Apple apps don't need to be moved. That means they retain their entitlements, simplifying the sandboxing problem.
We'll keep updating you with more information as it becomes available.
Read More