...
🤳 Блог Android новостей, посвященный советам экспертов, новостям, обзорам, телефонам Android, приложениям, инструкциям, планшетам и мобильным телефонам.

Объяснение сбоя обоев: вот как простое изображение может превратить телефон в мягкий кирпич

611

Обновление, 4 июня, 02:00 EST: Google сообщил, что в настоящее время рассматривает решение для устранения ошибки.


Как простое изображение может разбить телефон Android до такой степени, что он станет непригодным для использования?

Этот вопрос часто задавался в течение последних 24 часов, когда новости о «проклятых обоях» распространились по сети.

Крушение обоев объяснили

Подведем итоги: установка определенного изображения в качестве обоев может привести к тому, что некоторые телефоны попадут в цикл сбоев, что сделает их непригодными для использования.

Есть несколько решений, в зависимости от того, насколько сильно ударили по телефону. Некоторые пользователи могли менять обои за короткий промежуток времени между сбоями. Другим удалось удалить обои с помощью инструмента восстановления TWRP. Но в большинстве случаев единственным решением было сбросить телефон до заводских настроек, потеряв все данные, для которых не было выполнено резервное копирование.

Проблема была обнаружена Ice Universe, китайскими пользователями Twitter, известными своими утечками. Согласно отчетам пользователей, затронуты многие модели от Samsung и Google, в то время как мы также видели некоторые отчеты от пользователей устройств OnePlus, Nokia и Xiaomi (неясно, использовали ли эти последние устройства стандартное программное обеспечение или пользовательские ПЗУ). Судя по нашему собственному тестированию и просмотру пользовательских отчетов, устройства Huawei, похоже, менее подвержены проблеме сбоев обоев.

Проблема затрагивает современные телефоны под управлением Android 10, но, как оказалось, на самом деле она не нова. Пользователи сообщают об аналогичных проблемах в течение нескольких лет, и только в прошлом месяце полиция Android сообщила о тесно связанной проблеме, особенно затрагивающей телефоны Pixel, на которых установлено приложение Google Wallpapers.

Мы спросили разработчика, что происходит

Это странная проблема, которая может стать серьезной проблемой, особенно если в дело вмешаются тролли. Легко представить себе отвратительных персонажей, которые ловят обои и отправляют их ничего не подозревающим пользователям в качестве «розыгрыша».

Так что же происходит?

Мы видели несколько объяснений этой проблемы, большинство из которых связано с цветовым пространством изображения, которое выходит за рамки того, что может обрабатывать Android SystemUI, и вызывает сбой.

Чтобы лучше понять, что происходит с этим падением обоев Android, мы связались с Давидом Бьянко, одним из ведущих разработчиков проекта пользовательского ПЗУ POSP, который отправил начальный патч для устранения проблемы в систему отслеживания ошибок AOSP.

Давид любезно объяснил читателям Android Authority, как изображение может вызывать такие проблемы, предупредив, что это его «личное мнение». Ниже приводится его слегка отредактированное объяснение:

Основная проблема здесь в том, что SystemUI обрабатывает только изображения sRGB для обоев и не имеет никакой проверки для обоев, отличных от sRGB. Это может привести к определенному сбою в классе ImageProcessHelper, поскольку переменная, используемая для доступа к массиву, выходит за границы массива.

Для справки, вот определение метода .

Эта переменная называется y и представляет собой сумму rgb значений текущего сканированного пикселя. Этот пиксель получается в результате сканирования каждой строки и столбца поверхности изображения в оттенках серого. Каждый раз, когда мы получаем пиксель, мы присваиваем y сумму его значений rgb (обычно max 255) и используем указанную переменную для доступа к элементу массива гистограммы (размер которого составляет 256 max) и выполняем какие-то действия с указанным элементом.

Теперь для обычных изображений в оттенках серого сумма значений RGB всегда равна 255, но это не нормальное изображение. Переменная y превышает 255 и генерирует исключение за пределами границ (любое исключение в SysUI рассматривается как фатальное, что приводит к бесконечному циклу сбоев, поскольку изображение обрабатывается каждый раз при запуске SysUI). Теперь одним из решений может быть добавление проверки после того, как y присвоено значение, которое в основном устанавливает y равным 255, если оно когда-либо выходит за максимальную границу. Это действительно работает, но у нас почему-то качество хуже.

Ребятам из LineageOS удалось выяснить, что эта конкретная проблема возникает из-за плохого округления, в основном из-за того, что значения rgb всегда округлялись до ceil вместо обычного округления. Они смогли исправить это, округлив значения вручную, и, по-видимому, этот метод также сохраняет качество, но я действительно не понимаю, как это сделать, в основном потому, что SysUI, кажется, всегда преобразует изображение в sRGB, что приводит к потере цвета, когда цветовое пространство больше.

Один разработчик 9to5Google также обнаружил (примечание редактора: разработчик – Дилан Руссел, разработчик Android и участник 9to5Google ), что проблема не возникает на Android 11, поскольку изображение всегда конвертируется в sRGB, прежде чем оно будет обработано каким-либо образом. ,

Я также пробовал создать собственное сломанное изображение с помощью Photoshop или gimp, но SysUI всегда преобразовывал изображение в безопасное цветовое пространство, что не приводило к сбою (но к потере цветов). Я даже попытался извлечь цветовой профиль сломанного изображения и использовать его в новом изображении, но все равно не смог заставить SysUI аварийно завершить работу.

Есть хорошие новости и есть плохие новости

Плохая новость заключается в том, что проблема теперь открыта, и вы можете поспорить, что некоторые люди воспользуются ею для причинения вреда. Что более важно, эта ошибка (или очень похожая), похоже, была проблемой в течение как минимум пары лет, без каких-либо видимых действий со стороны Google.

Также плохие новости: если вы стали жертвой розыгрыша (или собственного любопытства), не существует простого и безболезненного способа исправить это. По крайней мере, сброс к заводским настройкам остается крайней мерой, но мы все равно не рекомендуем пробовать его на вашем собственном устройстве.

Читать дальше: Лучшие обои для Android: обои по умолчанию со 125+ устройств Android

Хорошая новость в том, что это, похоже, простая ошибка, а не вредоносное ПО или что-то более гнусное. Мы говорим «кажется», потому что не получили подтверждения от Google. Также хорошие новости: эта ошибка не будет проблемой после выхода Android 11 в конце этого года.

Источник записи: https://www.androidauthority.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее