Thứ Sáu, 5 tháng 6, 2020

Tại sao một hình nền có thể khiến smartphone Android “đứng hình”?

Bằng cách nào mà chỉ một hình ảnh đơn giản lại khiến cho những chiếc smartphone Android có thể bị crash đến mức không thể sử dụng được?

Trong những ngày qua những thông tin về một hình nền "bị nguyền rủa" được lan truyền rộng rãi. Bài viết dưới đây được lược dịch từ Androidauthority, hy vọng có thể giúp bạn hiểu rõ hơn về bức ảnh kì lạ và sự cố xảy ra với các máy Android.

  • Cultofmac: Nếu có một "tính năng" mà Android nhanh hơn bất kỳ chiếc iPhone nào thì đó là… rớt giá
  • Đây sẽ là thiết kế của các flagship Android ra mắt vào năm 2022?
  • Lời hứa 2019 không thành, 2020 sẽ là năm mà smartphone Android lột xác?

Giải thích chi tiết về vấn đề

Tóm tắt: Thiết lập một hình ảnh cụ thể dưới đây làm hình nền có thể khiến smartphone Android rơi vào một vòng lặp sự cố và khiến chúng không thể sử dụng được nữa.

Có một vài cách để khắc phục tình trạng trên nhưng chúng còn phụ thuộc vào từng loại smartphone. Một số người dùng đã có thể thay đổi hình nền trong khoảng thời gian ngắn giữa các sự cố. Những người khác đã xóa thành công hình nền bằng công cụ recovery TWRP. Tuy nhiên trong phần lớn các trường hợp, giải pháp duy nhất là đặt lại điện thoại về cài đặt gốc, việc này sẽ khiến người dùng mất toàn bộ dữ liệu mà không hề được sao lưu.

Lỗi trên được công bố bởi Ice Universe – người dùng Twitter Trung Quốc được biết đến với nhiều rò rỉ chính xác. Dựa trên báo cáo của người dùng thì nhiều mẫu máy của Samsung và Google đã bị ảnh hưởng. Một số thiết bị của OnePlus, Nokia và Xiaomi cũng bị ảnh hưởng (không rõ liệu các thiết bị này có chạy phần mềm gốc hay ROM tùy chỉnh). Từ thử nghiệm của AndroidAuthority và xem xét các báo cáo của người dùng, các thiết bị Huawei dường như ít gặp phải vấn đề liên quan đến sự cố hình nền này.

Vấn đề này ảnh hưởng đến các smartphone đã cập nhật Android 10, nhưng hóa ra nó không thực sự mới. Nhiều người dùng Android đã báo cáo các vấn đề tương tự trong những năm qua và chỉ ít tháng trước website Android Police đã cung cấp thông tin về những chiếc điện thoại Google Pixel gặp lỗi khi chạy ứng dụng Google Wallpapers.

Rốt cuộc chuyện gì đang diễn ra?

AndroidAuthority đã tìm thấy một vài lời giải thích cho vấn đề kể trên. Và hầu hết chúng liên quan đến không gian màu của hình ảnh, vượt xa những gì mà Hệ thống SystemUI trên Android có thể xử lý dẫn đến xảy ra sự cố.

Để hiểu rõ hơn về những gì mà xảy ra với sự cố trên smartphone Android này thì AndroidAuthority đã liên hệ với Davide Bianco – một trong những nhà phát triển chính của dự án ROM tùy chỉnh POSP, cũng chính là người đã gửi bản vá ban đầu cho vấn đề này cho trình theo dõi lỗi AOSP.

Davide giải thích khá chi tiết như sau:

"Vấn đề chính ở đây là SystemUI chỉ xử lý hình ảnh sRGB cho hình nền và không có bất kỳ kiểm tra nào đối với những hình nền không phải sRGB. Điều này có thể dẫn đến một sự cố cụ thể trong class ImageProcessHelper, bởi một biến được sử dụng để truy cập một mảng nhưng lại đi quá giới hạn của mảng này.

Cụ thể hơn thì dưới đây chính là định nghĩa:

Biến này được gọi là y và nó cộng với các giá trị rgb pixel đã được quét ở thời điểm hiện tại. Pixel này thu được từ việc quét mọi hàng và cột của bề mặt hình ảnh thang độ xám. Mỗi khi nhận được một pixel, hệ thống Android gán cho y tổng giá trị rgb của nó (tối đa thường là 255) và sử dụng biến đó để truy cập vào một phần tử của mảng histogram (có kích thước tối đa là 256) và thực hiện thao tác với phần tử đã nói.

Đối với các hình ảnh thang độ xám bình thường, tổng giá trị rgb luôn là 255. Thế nhưng hình ảnh khiến cho các máy Android bị crash không phải là hình ảnh bình thường. 

Sforum - Trang thông tin công nghệ mới nhất 1-8 Tại sao một hình nền có thể khiến smartphone Android

Phần biến y của hình ảnh nói trên vượt quá 255 và nó tạo ra ngoại lệ giới hạn (bất kỳ ngoại lệ nào trong SysUI đều được coi là nghiêm trọng, dẫn đến một vòng lặp crash vô hạn bởi các sự cố vì hình ảnh được xử lý mỗi khi SysUI bắt đầu). Giải pháp có thể sử dụng được là thêm một bài kiểm tra sau khi y được gán một giá trị về cơ bản đặt y thành 255 nếu nó vượt quá giới hạn tối đa. Quả thực, điều này đã giải quyết được vấn đề nhưng người dùng sẽ nhận được chất lượng kém hơn vì một số lý do.

Các chuyên gia của LineageOS đã phát hiện ra rằng vấn đề đặc biệt này xảy ra do khả năng làm tròn kém, chủ yếu là do các giá trị rgb luôn được làm tròn đến ceil thay vì làm tròn thông thường. Nhóm này đã có thể khắc phục bằng cách làm tròn các giá trị theo cách thủ công và rõ ràng phương pháp này cũng giữ được chất lượng, chủ yếu là vì SysUI dường như luôn chuyển đổi hình ảnh thành sRGB, dẫn đến mất màu khi không gian màu lớn hơn.

Dylan Roussel – nhà phát triển của 9to5Google cũng đã phát hiện ra điều này. Nhà phát triển Android và là cộng tác viên của 9to5Google cho biết lỗi này không xảy ra trên Android 11 vì hình ảnh luôn được chuyển đổi thành sRGB trước khi hình ảnh đó được sử dụng.

Tôi cũng đã thử tự tạo hình ảnh tương tự bằng photoshop hoặc gimp, nhưng SysUI luôn chuyển đổi hình ảnh sang không gian màu an toàn, dẫn đến việc không bị crash. Tôi thậm chí đã thử trích xuất hồ sơ màu hình ảnh trên và sử dụng nó trong một hình ảnh mới, nhưng vẫn không thể khiến SysUI gặp sự cố.

Có tin tốt và cũng có tin xấu

Tin xấu là vấn đề này hiện đang được công khai và nhiều người có thể dùng bức ảnh trên để đi lừa người khác. Tồi tệ hơn, lỗi này dường như là một vấn đề lớn trong một vài năm trở lại đây và chưa có hành động rõ ràng nào từ Google.

Một tin xấu khác là nếu bạn trở thành nạn nhân của một trò chơi khăm (hoặc chính sự tò mò) thì không có phương pháp nào là dễ dàng để hoàn tác. Ít nhất thì khôi phục cài đặt gốc vẫn là giải pháp cuối cùng để thoát khỏi tình trạng trên, nhưng chúng tôi vẫn khuyên bạn không nên thử nó trên thiết bị của mình.

Tin tốt là đây dường như là một lỗi đơn giản, thay vì phần mềm độc hại hoặc bất cứ điều gì xấu hơn và lỗi này sẽ không thành vấn đề khi Android 11 ra mắt vào cuối năm.

 


_ Tham gia group  Thảo luận công nghệ CellphoneS :  Tại đây

_ Like/follow fanpage  Sforum.vn :  FB.com/SforumTech

Source: androidauthority

Không có nhận xét nào:

Đăng nhận xét