If you’re one of those jailbreak users that have been plagued with random reboots of your iPhone when plugged in at night, then we might have a fix for you. As explained by Reddit user TuttoVaBene, those reboots seem to happen as your iPhone exceeds a certain memory limit. While there is no clear explanation of what really happens or why, it appears that manually increasing the memory limit can fix the problem.
As TuttoVaBene details on Reddit, if you go to Settings > Privacy > Diagnostics & Usage > Diagnostics & Usage Data on your iPhone, you might find an entry for SystemMemoryReset, which shows that the system memory limit was exceeded, causing the unfortunate event.
As you can see on this screenshot, the memory limit was set to 225 MB, but 375.33 MB was needed, which caused the device to reboot.
TuttoVaBene explains that raising the memory limit can prevent this issue. He suggests maxing out the limit to match the total memory available on your device, which I think might be overkill, but you be the ultimate judge.
How to increase the memory limit
Before we move forward, I must include a disclaimer to completely release my liability should something go wrong. You’re obviously doing this at your own risks, understanding that you could mess things up. If you’re fine with that, then go ahead. If you’re in doubt, I suggest you just stay away from this fix.
It is also unclear what side effects this might have on your device. Going through all the comments in this Reddit thread, I didn’t find one person that encountered an issue, but this is the kind of “fix” that could cause problems that go unnoticed for a while and hit you when you least expect it.
So again, proceed with caution.
1) Download a file manager such as iFile or Filza in Cydia.
2) Open the file manager, in our case, we are using Filza, and navigate to /System/Library/LaunchDaemons/com.apple.jetsamproperties.NXX.plist. You may see two similar files named the same, with one containing the letter “m” after the device internal model name. For example, here we have a file ending in N71.plist and one ending in N71m.plist.
3) Tap on the first file and locate the UserHighWaterMark by going to Root > Version4 > System > Override > Global > UserHighWaterMark. The default value is set at 225 on my device.
4) Tap on UserHighWaterMark and edit the value. I set mine to 600, and you may set yours to whatever you want but make sure it doesn’t go over the amount of memory available on your device. For example, if you have 2GB of RAM on your iPhone, don’t set the value over 2048 (MB). Tap Back, then tap Save and Done.
5) Repeat the process for the other file, if you do have that file on your device.
I just went through the process myself and it’s pretty straightforward. While it’s obviously too early to tell whether that did it or not, many users or Reddit and a handful of iDB readers are reporting that implementing this has fixed the random reboots at night.
If you do decide to implement this fix, let us know how it went.