Author Topic: Watch out for an iOS glitch that will "permanently" brick your device  (Read 4258 times)

Apple does Software upgrade 1 year and hardware next

I've worked in retail enough to know upgrade plans are scams.


How do you count to infinity in a computer while keeping all the precision?
Solve this and you win a Noble Prize.

It is possible, just not immediately obvious.  It's impossible to do it in a fixed-length format, because of obvious reasons; however, you could have a system for integers where the high bit of each byte signals that there's another byte that will come after it.  Unfortunately, no one's ever come up with this and called it something like "Variable-Length Quantity" or "VarInt".

The same thing would be possible for floating-point numbers, it's just even less obvious than for integers.  There's also the problem that floating-point numbers only terminate for numbers whose denominators are a power of two, which means that if you tried to store one-third in a VarFloat, you'd run into problems with little things, like all your memory being allocated to that one VarFloat.

What you could do instead is have two VarInts representing a fraction, where one stores the numerator and the other stores the denominator.  However, this runs into the same problem with irrational numbers.  Ultimately, the problem with storing numbers is that we don't want to store the entire number, we just want to store however much of the number we need to do our calculations.

it's easily possible that this bug is caused by the SIM not being able to verify the certificate due to the excessive time difference.

so pretty much the only real way to test this is use either an iphone or a 4g activated ipad air.

it's easily possible that this bug is caused by the SIM not being able to verify the certificate due to the excessive time difference.
if that was the case, I'm sure it'd happen if you set it to january 2nd, 1970 too
I don't have any way to know exactly what the problem is, but there's little doubt that it's related to the way time is kept in the software, given that it happens on the unix epoch

Only lets me go back until Jan 5 2002 at 00:00

if that was the case, I'm sure it'd happen if you set it to january 2nd, 1970 too
I don't have any way to know exactly what the problem is, but there's little doubt that it's related to the way time is kept in the software, given that it happens on the unix epoch
has anybody really tested this on that setting?

seems really odd that the iphones and ipads that don't get bricked by this are the ones that aren't connected to a carrier.

edit: shortly after i said that i saw like 3 iphones that said no sim are no longer booting. woops

maybe this is an iphone only bug? ipads use different hardware then iphones to an extent do they not?
« Last Edit: February 12, 2016, 10:55:40 AM by Trymos »

I'm connected to a carrier and cannot go past Jan 5 2002.

I'm connected to a carrier and cannot go past Jan 5 2002.
you have to go back to the main settings menu and then go back into time and date and it should let you go back further.

It doesn't. I know how to change the time and date on my phone, lol. iOS 8, iPhone 4S. Carrier is Movistar. Doesn't let me go past that.

It doesn't. I know how to change the time and date on my phone, lol. iOS 8, iPhone 4S. Carrier is Movistar. Doesn't let me go past that.
4S isnt a compatible phone for this.

yay?
But still, shouldn't it let me go back that far?

It is possible, just not immediately obvious.  It's impossible to do it in a fixed-length format, because of obvious reasons; however, you could have a system for integers where the high bit of each byte signals that there's another byte that will come after it.  Unfortunately, no one's ever come up with this and called it something like "Variable-Length Quantity" or "VarInt".

The same thing would be possible for floating-point numbers, it's just even less obvious than for integers.  There's also the problem that floating-point numbers only terminate for numbers whose denominators are a power of two, which means that if you tried to store one-third in a VarFloat, you'd run into problems with little things, like all your memory being allocated to that one VarFloat.

What you could do instead is have two VarInts representing a fraction, where one stores the numerator and the other stores the denominator.  However, this runs into the same problem with irrational numbers.  Ultimately, the problem with storing numbers is that we don't want to store the entire number, we just want to store however much of the number we need to do our calculations.
I appreciate your effort, but I am well aware of how numbers are stored in a computer. Basically you came to the same conclusion that counting seconds for an infinite amount of seconds is not possible IF you care about maintaining the precision to a single second (which we do), as doing so would require infinite memory.

Side note: manually manipulating floating point numbers isn't fun

yay?
But still, shouldn't it let me go back that far?

You should read the OP again, smart guy.