A preservation project for the historic iPhoneVM.deb package and its alternative LaunchDaemon-based swap configurations for jailbroken iPhone 2G, iPhone 3G, and iPhone 3GS devices.
Back in 2009, a Cydia package called iPhoneVM.deb appeared in several third-party repositories. It enabled virtual memory (swap) on older iPhones by leveraging Apple's built-in dynamic_pager utility. On memory-constrained devices such as the iPhone 3G with only 128 MB of RAM, users reported having significantly more free memory available after installation.
The original package has since been recovered (after a long search) and is preserved in this repository alongside alternative plist-based implementations documented by the jailbreak community.
- It uses Apple's built-in
dynamic_pagerutility. - It configures swap space through LaunchDaemons.
- It created swap files under
/private/var/vmwhich is fixed to 256 MBs. - Includes
/sbin/fmwhich is a executable that measures available free memory, allocates roughly that amount of RAM, logs the number of bytes processed, then frees the memory and exits.
The bundled /sbin/vm binary is simply Apple's dynamic_pager binary under a different name.
Contains the recovered original iPhoneVM.deb package as distributed during the early jailbreak era.
This is preserved for historical and archival purposes. I very much recommend the plist method as it's cleaner and more flexible.
Contains recreated and documented LaunchDaemon-based implementations derived from surviving forum posts and community research.
Available variants include:
- Dynamic swap (up to approximately 64 MB)
- Fixed 64 MB swap
- Fixed 128 MB swap
- Fixed 256 MB swap
- Fixed 512 MB swap
These versions use Apple's built-in dynamic_pager and can be installed manually without relying on the original package.
Run this command
du -shc /private/var/vm/*Output should look something like this:
64M /private/var/vm/iphone_swap0
64M totalDesigned for:
- iPhone 2G
- iPhone 3G
- iPhone 3GS
Running:
- iPhone OS 2.x
- iPhone OS 3.x
- iOS 4.x
Usage on newer devices is unnecessary and untested.
Install the package using dpkg.
dpkg -i iPhoneVM.debThe package can be found in: deb/
Reboot the device after installation.
Downlod your selected plist variant:
Copy the LaunchDaemon plist to:
/System/Library/LaunchDaemons/
Reboot the device.
Potential downsides include:
- Increased flash wear - old memory chips are not as durable as the modern ones
- Additional storage usage
- Slower performance when swapping occurs
- Possible UI lag under heavy memory pressure
- Original iPhoneVM authors (beyouriphone.com)
- jiztek for documenting the LaunchDaemon plist method
- Early jailbreak community researchers who analyzed iPhoneVM
- Archived forum discussions that preserved the original configuration
- Everyone involved in preserving legacy iOS software and jailbreak history