5 ms·
Found a nice bug in IOS today, bricks your phone and kills the Simulator
- schrototo 15y agoDoes it really "brick" your phone, as in "makes it crash in a way that is completely irrecoverable and that can never ever be repaired, therefore turning your phone forever into a piece of hardware comparable in functionality to a brick" or does it just make the phone crash?
- gedekran 15y agoPeople use bricked incorrectly way too often. Leading to others wondering if they actually mean it is as functional as a brick or that it just crashed and thus can be rebooted or restored. Then again I haven't personally bricked a device in a long time.
- repsilat 15y ago> Heretofore, "to brick" can brick anything. http://apple.slashdot.org/comments.pl?sid=423338&cid=22102564 http://apple.slashdot.org/comments.pl?sid=423338&cid=221...
- GrandMasterBirt 15y agoI have to say, I once came fairly close to bricking my router. However after I realized the router was complete and utter garbage I put the brick to it, so now it is officially bricked, office space style.
- TillE 15y agoI'll accept "brick" when recovery requires flashing via JTAG. But not when you just have to press a few buttons.
- JonnieCache 15y agoThis is the definition used by people that actually hack hardware, people who are used to performing brain surgery on set-top-boxes and such like. It's not bricked unless unbricking requires a soldering iron or similar, and some JTAG action. These days its getting harder and harder to brick devices, as bootloaders are becoming more and more advanced and more separate from the cores of the devices themselves. Once upon a time a faulty network cable could render your router forever inoperable due to a dropped byte in a firmware flash. Today, my galaxy S phone has had some truly awful things done to it, including corruption of the supposedly sacred NVRAM data, and the USB bootloader has always faithfully come up after the button combo, ready to accept a new flash. It must run on totally separate hardware from the phone proper.
- joezydeco 15y agoMost of the newer SoC chips like Freescale iMX and TI OMAP have the USB core hardware built into the chip, so it's easy to have the chip provide it's own USB bootloader that doesn't require any code out of flash or RAM to get started. The only trick is to make sure the chip can start in this mode when necessary, usually a little helper PIC or some custom gates takes care of that.
- napierzaza 15y agoYou say this because you haven't tinkered with wireless routers... Just because it's harder to brick things doesn't mean the meaning of the word has changed. People are right to think this is a mis-statement.
- deleted 15y ago[deleted]
- Fjanth 15y agoIm the original poster, that found the bug. Nah it doesnt brick it, it does however require (atleast on 4.1. for me) a factory reset. The problem seems to be that springboard locks up in an endless loop, restarting the device wont help it because its still loading the offending notification from the cache.
- gedekran 15y agoMore apt would have been that it disables your iphone temporarily until a factory reset or restore is performed. Saying it bricks it causes me to think back to messing up the flashing of firmware on a device and the device never working again.
- Fjanth 15y agoYeah, I know. Its to bad though because all the discussions are turning into discussions about the proper use of "bricking".
- sirclueless 15y agoWell, I'm pretty sure that getting "fscked" is not that bad. I mean, running file-system checks is probably a good idea to do periodically.
- demallien 15y agoWait. Is it really an endless loop, or just a queue that is getting filled up faster than it empties resulting in a more DOS-style problem? Because it sounds much more like the second case, in which case not only does it not brick the phone, but it isn't even a bug...
- deleted 15y ago[deleted]
- Fjanth 15y agoOP:Nope, you didnt read the code. Try reading the other version I posted. Works without a loop as well.
- Fjanth 15y agoAlso here is a nicer version that still triggers the bug http://www.pastie.org/private/8a48wgmcuuhjjwbupbk3g http://www.pastie.org/private/8a48wgmcuuhjjwbupbk3g
- flog 15y agoSo what's the bug then? If there's no loop here?
- Fjanth 15y agoalarm.repeatInterval = NSEraCalendarUnit Triggers the bug, its totally valid as well.
- revolvingcur 15y agoSo basically the repeatInterval is expected to have one of the values of an enumeration assigned to it, where the enumerated values are calendar units (representing daily, weekly, monthly, etc.), and it somehow mishandles the value representing "once-per-era"?
- Fjanth 15y agoThat would seem to be the case.
- eridius 15y agoWhat's the radar number?
- tomjen3 15y agoI am not an iPhone developer, but the code doesn't seem unreasonable to me. Can anybody explain what is special about this code?
- JoachimSchipper 15y agoIt's a function that configures ten timers to call itself. So it causes an exponential number of timers to be set.
- Fjanth 15y agoThats not the bug though. Can do it without a loop as well. This was an old version, check the other one I posted here in this thread.
- JoachimSchipper 15y agoOk. I would be very grateful for an explanation, then. ;-)
- napierzaza 15y agoIt creates 10 copies of an alarm on the same date with a setting to repeat twice. So I imagine 10 alarms firing at the same time is not a good idea. I don't see where it calls itself like other people are saying.
- mrcharles 15y agoFor people lost in the thread, I've read the whole thing. The actual problem here as posted by the guy who found it (Fjanth in this thread) is that setting a local notification with a repeat value of era breaks iOS and requires a factory reset in order to recover.