89 подписчиков
Исследователи из компании Synacktiv провели реверс-инжиниринг обновления iOS 17.5.1 и, судя по всему, обнаружили причину, по которой после установки предшествующего обновления iOS 17.5 у некоторых пользователей вернулись некоторые ранее удаленные фотографии. Однако сперва немного матчасти...
Когда пользователь удаляет снимок из библиотеки Фото, система сперва перемещает его в альбом Недавно удаленные, а фактически удаляет через 30 дней. Конечно, пользователь может навсегда удалить любую из этих фотографий до истечения этого срока.
При этом совсем не обязательно, что сам файл тут же стирается. Устройство вместо этого помечает соответствующий участок памяти как доступный для записи новых данных. Таким образом, старые данные не удаляются физически сразу, а остаются нетронутыми до перезаписи. К преимуществам использования современных NAND-накопителей относятся высокая скорость чтения/записи, повышенная энергоэффективность и возможность восстановления удаленных файлов. Это довольно хорошая энергонезависимая система хранения данных, если только в ней нет ошибки. А таковые бывают.
Используя старый iPhone 13, исследователи препарировали обновление iOS 17.5.1. По их данным, самые значительные изменения между iOS 17.5 и iOS 17.5.1 произошли в функции PLModelMigrationActionRegistration_17000 в модуле PhotoLibraryServices. Эта функция регистрирует обработчики миграции, которые преобразуют данные из старого формата в актуальную версию.
Что особенно важно, Apple удалила сегмент кода в функции, отвечающий за сканирование и повторный импорт фотографий из файловой системы. В результате система запускала процесс переиндексации старых файлов, хранящихся в локальной файловой системе, и непреднамеренно добавляла их обратно в галереи пользователей.
«Основываясь на этом коде, мы можем сказать, что фотографии, которые появились вновь, все еще лежали в файловой системе и были найдены процедурой миграции, добавленной в iOS 17.5. Причина, по которой эти файлы оказались там изначально, неизвестна», — говорит Synacktiv. «Это согласуется с примечаниями к выпуску iOS 17.5.1, в которых Apple заявила, что ошибка была вызвана «повреждением базы данных».
Для нас в этой истории самое забавное в том, что... это произошло только сейчас. То есть побитые файлы могли лежать в файловой системе годы, и никто особо с ними ничего не делал. А потом мы удивляемся, почему у нас «системные данные» могут занимать на айфоне десяти гигабайтов. Да потому что до этого никому в Купертино дела нет.
2 минуты
27 мая 2024