[Discussion] Changing Time & Date settings to Jan 1, 1970 will permanently brick 64-bit iOS devices

I have some question to you:

  1. If someone try to set iPhone to 1/1/1970 but NOT reboot it - it is work?

If it is work, you probably don't able to restore IPhone by simple drain battery. The problem is that the date is store in permanent memory of the phone, and every time you restart your phone this date is extracted from the memory again and again.

This bug is not issue of overflow, negative numbers and so on. It is simple issue of ZERO arithmetic. Overflow usually lead to WRONG RESULT, not to Infinity cycles, except in some very specific situations. Apple problem probably is due to division and multiplication involving ZERO. 0/Number = 0 and 0*Number = 0. These are normal and legitimate arithmetic operations which doesn't giving an error and the compiler can not catch them. But if you use result from such multiplication-division operations involving Zero in CYCLE algorithm as this used for derive time and date from a clock counter this can lead to INFINITE CYCLE FROM ZEROS. And if there are any additional algorithm that can check for time event such as "while -> time counter = (derive time - initial time) < 2500 -> wait" this lead to INFINITE LOOP because Initial time and derive time are always = 0 due to zero multiplication-division arithmetic.

Let me explain it another way. When you set date to 1/1/1970 but not reboot phone - formula [(Initial time set + clock counter)/Some Number] is used for derive current time. There is no problem when you don't reboot phone because initial time (1/1/1970) = 0 but clock counter is NOT zero! Therefore 0+clock counter is not zero too. But when you reboot your phone iOS set your clock counter to zero, and thus way now you have (ZERO initial time + ZERO clock counter)/Some Number]. And here starts the trouble.

/r/jailbreak Thread