iPhone снова стало можно перезагрузить всего одним сообщением

Одному Джобсу известно почему, но в операционной системе iOS уже несколько раз обнаруживались так называемые “текстовые бомбы” — комбинации символов, появление которых в уведомлениях приводит к перезагрузке устройства. Очередной подобный сюрприз обнаружен в последней, тринадцатой, версии “яблочной” ОС: советуем отключить всплывающие уведомления из мессенджеров вплоть до обновления.
iPhone снова стало можно перезагрузить всего одним сообщением

“Крушение” графической оболочки iOS 13 почти наверняка произойдет, если iPhone или iPad попытается отобразить на экране всплывающее уведомление с эмодзи итальянского флага и несколькими символами языка синдхи. Просто в переписке наличие такого сообщения проблем не вызывает и его даже можно скопировать или переслать (но лучше не надо). Новая “текстовая бомба” уже вовсю гуляет по таким сервисам обмена сообщениями, как Telegram, WhatsApp и iMessage. Логично предположить, что в ближайшее время пройдет очередная волна “терроризма”, когда эту комбинацию символов хулиганы будут рассылать всем подряд. Подобное уже происходило ранее, когда выявлялись аналогичные баги iOS.

Как сообщает портал MacRumors, в тестовой версии ОС под номером 13.4.5 “бомба” не работает, а значит при следующем обновлении системы ошибка будет устранена. Компания Apple развернуто ситуацию не комметрировала, но раз баг починили, вероятно о нем знали заранее.

Механизм работы “текстовых бомб”, а точнее, причина по которой некоторые наборы символов заставляют iOS перезагружаться, неизвестен. Предположительно, это происходит из-за особенностей работы алгоритма отображения текста в уведомлениях. Дело в том, что операционной системе для корректного и красивого вывода сокращенного текста (место же ограничено) необходимо рассчитать, сколько символов уместится в “пузыре” на экране. Однако в некоторых языках, с точки зрения компьютера, одна буква может быть записана несколькими разными символами (огласовки в арабском языке и диакритические знаки в других), поэтому при попытке сократить слово возникает цепочка новых расчетов, которые иногда закольцовываются (что и приводит к “крушению” программы).