Perché alcuni messaggi di testo Unicode bloccano il sistema operativo iPhone?


31

Recentemente un nuovo "glitch" è emerso su Internet nelle ultime settimane in cui se viene inviato un utente iPhone:

  effective. 
      Power
           لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ
 冗

tramite iMessage arresta temporaneamente il sistema operativo del telefono e forza il riavvio forzato del telefono.

Perché funziona?


3
In realtà, credo che siano richiesti solo i caratteri arabi (e forse quelli che li seguono). Il testo "potenza effettiva" è solo un riempitivo e può essere qualsiasi cosa, ma dovrebbe essere abbastanza lungo da troncare la notifica (o almeno tentare di farlo, poiché questo è ciò che provoca l'incidente) ai personaggi stranieri.

Risposte:


36

Se hai bisogno di una soluzione per questo, usa Siri o un Mac usando iMessage per inviarti un nuovo messaggio. Vedi https://support.apple.com/en-us/HT204897

È una procedura in tre passaggi da ripristinare e un futuro aggiornamento del software correggerà questo errore.

  1. Chiedi a Siri di "leggere i messaggi non letti".
  2. Usa Siri per rispondere al messaggio dannoso. Dopo aver risposto, sarai in grado di riaprire Messaggi.
  3. Se il problema persiste, tocca e tieni premuto il messaggio dannoso, tocca Altro ed elimina il messaggio dal thread.

Per quanto riguarda il motivo, si tratta di un bug specifico nel modo in cui il Centro notifiche esegue il rendering del contenuto Unicode di questo messaggio. Il codice esegue un'operazione "non sicura" (qualcosa di simile a 5 diviso per 0 e quindi non verifica la presenza di risultati imprevisti) che causa un errore non gestito.

Quindi, poiché il Centro notifiche non può eseguire il rendering del blocco di testo e alla fine si arresta in modo anomalo lo Springboard che non aveva codice per gestire questo errore con grazia. Quando non è presente alcun gestore di errori specifico, la maggior parte delle operazioni ha un "riavvio automatico" sicuro per tentare di correggere l'errore.

Unicode è un modo di codificare i caratteri utilizzati per gestire le lingue che hanno un numero di caratteri maggiore rispetto all'inglese. I programmatori possono avere problemi con questo perché hanno imparato a programmare usando il testo ASCII e trascurano di scrivere il loro software con il supporto Unicode completo.

Un buon articolo su questo spiega "se stai ancora programmando in quel modo, non sei molto meglio di un medico che non crede nei germi".

Questo altro articolo spiega bene questa situazione specifica.

Apple potrebbe eseguire revisioni del codice più rigorose, test di unità specifici o consentire agli utenti finali di testare il proprio codice come in questo e in casi simili .


6

È qualcosa da risolvere per Apple.

Il problema sembra derivare dal modo in cui il telefono tenta di mostrare il messaggio nelle notifiche. I personaggi causano la rottura di quel sistema, in modo che provi brevemente a mostrarlo prima di arrestarsi in modo anomalo e quindi reimpostare il telefono nel tentativo di risolverlo.

Ecco alcune correzioni a breve termine che puoi fare fino a quando Apple non risolve il problema.

  • Chiedi alla persona che ti ha inviato il messaggio dannoso di inviare un altro messaggio annullando efficacemente il filo iniziale

  • Inviati un messaggio tramite Siri, il foglio di condivisione o dal tuo Mac.

  • Un altro lettore osserva che "l'invio di una foto al contatto tramite l'app Foto può consentire loro di accedere alla cronologia dei messaggi ed eliminare la conversazione"

fonte: http://www.redmondpie.com/how-to-fix-ios-text-messages-crash-bug/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.