7 ms·
Ultimately I think the question is "why does iMessages have special integration in SpringBoard"? Because that's the cause of most of this. Messages doesn't have
by eridius 7y ago
Ultimately I think the question is "why does iMessages have special integration in SpringBoard"? Because that's the cause of most of this. Messages doesn't have to be a "normal iOS app", it just has to be reasonably sandboxed. Running code using adversarial input inside SpringBoard is a serious problem.
- derefr 7y agoA key thing to know is that SMSes do other things than just hand text to a program to display it. There is, for example, Flash (Class 0) SMS, which has the semantics that it both: 1. must display over whatever the user is doing (sort of like a Windows elevation prompt) and 2. must not be handed to userland in a way that it could be automatically recorded or persisted, other than by the user's explicit action. Giving SpringBoard the ability to render SMSes is really the only way to implement Flash SMS in a way that adheres to its semantics. There are other types of SMSes as well—WAP Push messages, for example, or WMI (voicemail indicator) Activation messages. Heck, your carrier can even use SMSes to directly write data to your SIM card. These aren't so clearly a layering violation as Flash SMS, as they are just pure OS-layer concerns; but if you're already implementing a kernel library for "SMSes triggering OS-level functionality" for Flash SMS and the like, you may as well put the code to handle these cases in there as well.
- eridius 7y agoOk, but that just means SpringBoard (or some other system component) has to parse SMS messages. It doesn't mean SpringBoard has to be involved in the display of texts, and it also doesn't mean it has to be involved in iMessages. The moment SpringBoard determines that an SMS doesn't fall into the class of things that must be handled by the OS, it should stop and hand it over to the Messages app to do the rest of the parsing.
- akersten 7y ago> Flash (Class 0) [that] display over whatever the user is doing [and] must not be able to be automatically recorded I don't think I've ever received such a message, and I'm surprised Apple bothers to support such a thing. What in the world is the use case? That sounds extremely user-hostile, and if it were me I would throw it out. Especially once I realized my app needed special security just to handle this bonkers SMS type.
- saagarjha 7y agoI was traveling in India and got one after every call I made to tell me how much I had spent.
- akersten 7y agoWhy can't that just be a "normal" or whatever SMS from the carrier? I've got a contact named "Sprint" in my phone with their automated stuff, I assume those are not Flash type messages. I actually turn notifications off for that contact because I don't care to see them.
- derefr 7y agoProbably legacy reasons. Flash SMS was designed in a world where phones had teeny-tiny amounts of storage. So there were regular SMSes—that were only supposed to be ACKed once they were persisted to disk (or to the SIM card!); and then there were flash messages, for realtime, ephemeral, if-you-miss-it-it-doesn't-matter messages. Sort of the textual equivalent of RTP packets.
- morpheuskafka 7y agoIt probably made more sense in the days when carriers closely controlled the phone's UI and there weren't other apps that could be interrupted by such a popup.
- derefr 7y agoIf you think that's user-hostile, there are also "Silent" (Type0) SMS messages—messages that don't trigger any event on the phone, but do return an ACK to the carrier with IMSI metadata attached (as all SMS messages do upon receipt, so that the carrier can de-queue them.) This message type literally has only one use on modern phones: to allow police to trace your location. But boy, imagine the argument that'd get started if Apple decided to let you turn acknowledgements for SMS-Type0 off... (really, I imagine police would just lean on carriers to refuse to activate devices that have this capability, citing "network incompatibility.")
- morpheuskafka 7y agoAre there any screenshots/user documentation actually demonstrating what this looks like on iOS (or Android, for that matter)? I'm not surprised there are some many obscure features in the spec, but I am surprised they are actually implemented/used these days.
- saagarjha 7y agoHere's what it looks like: https://www.google.com/search?tbm=isch&q=ios%20sms%20flash&tbs=imgo:1 https://www.google.com/search?tbm=isch&q=ios%20sms%20flash&t...
- tinus_hn 7y agoIt’s bullshit. Springboard has a facility to show notification bubbles showing Unicode text. There have been a lot of issues in Apples libraries where it turns out that if you render certain strings, the process crashes or hangs. If such a string is in a notification bubble Springboard crashes or hangs. If Springboard hangs or crashes repeatedly you have a problem. That’s bad but has nothing to do with iMessage or SMS, that’s just used to pop up a notification with invalid text.
- eridius 7y agoIs it Springboard that actually renders that notification, though? Seems like it should maybe be a separate process. Even if it is Springboard, rendering a notification that crashes the process shouldn't brick your phone, because it shouldn't re-render once Springboard relaunches.