Tại sao một bức ảnh có thể khiến loạt máy Android gặp lỗi

Việc xung đột khi xử lý màu sắc trên ảnh của hệ điều hành Android đã khiến smartphone nhấp nháy.

Những ngày qua, “hình nền chết chóc” lan truyền khiến nhiều người dùng Android hoang mang. Chỉ cần đặt bức ảnh làm hình nền, smartphone lập tức nhấp nháy. Người dùng không thể làm gì khác ngoài khôi phục cài đặt gốc, đồng nghĩa với việc mất dữ liệu trên máy nếu chưa sao lưu. Vấn đề xảy ra với điện thoại Samsung, Google, OnePlus, Xiaomi hay Nokia, nhưng ít ảnh hưởng với thiết bị Huawei.

Tại sao một bức ảnh lại khiến loạt máy Android gặp lỗi

Bức ảnh khiến chiếc smartphone chạy Android gặp lỗi. Video: Bogdan Petrovan.

Theo Davide Bianco, một trong những nhà phát triển chính của dự án ROM tùy chỉnh POSP, vấn đề xảy ra đối với hình ảnh sử dụng dải màu RGB, thay vì dải sRGB đang được Android hỗ trợ.

“Thông thường, SystemUI của Android làm nhiệm vụ duy nhất là xử lý hình nền sRGB, nhưng không có bất kỳ kiểm tra nào đối với hình nền không phải sRGB. Điều này có thể dẫn đến một số sự cố xung đột trong lớp ImageProcessHelper gây ra ‘crash’ nếu cài hình nền không phải sRGB, vì một biến số nằm trong lớp này vượt quá trị số tối đa của mảng đồ thị màu”, Bianco giải thích.

Theo Bianco, biến số này được gọi là “y” và nó là tổng giá trị toàn bộ điểm ảnh RGB đã quét trên máy. Điểm ảnh này thu được từ việc quét mọi hàng và cột của bề mặt hình ảnh theo thang màu xám (greyscale). Khi quét, mỗi lần phát hiện ra một điểm ảnh, biến “y” lại tăng 1 giá trị, tối đa 255. Sau đó, biến “y” dùng để truy cập vào một phần tử của mảng biểu đồ (có kích thước tối đa là 256) để thực hiện chức năng của nó, trong trường hợp này là khai báo bức ảnh làm hình nền.

Như vậy, với những hình ảnh thông thường theo thang màu xám, tổng trị số RGB luôn cao nhất là 255. Hình ảnh gây lỗi cho máy Android vì trị số y của nó vượt quá trị số tối đa, tạo ra “ngoại lệ giới hạn”. “Bất kỳ ngoại lệ nào xảy ra trong SystemUI đều được coi là nghiêm trọng, dẫn đến một vòng lặp vô hạn xảy ra, tạo nên hình ảnh nhấp nháy”, Bianco giải thích.

Theo chuyên gia này, để không còn lỗi xảy ra, bức ảnh phải được gán lại giá trị “y”, để không vượt quá 255. Điều này hoàn toàn thực hiện được, nhưng cơ thể khiến bức ảnh không còn giữ chất lượng tốt như trước.

Dylan Roussel, một nhà phát triển ứng dụng Android, phát hiện vấn đề chỉ xảy ra ở các phiên bản Android 10 trở xuống, không có trên Android 11 do hệ điều hành này đã xử lý mọi hình ảnh về sRGB trước khi cho phép cài hình nền.

Thực tế, vấn đề smartphone Android bị “crash” chỉ vì một bức ảnh từng được cảnh báo từ hai năm trước, theo Android Authority. Trên trang báo lỗi của Google, hàng chục người dùng điện thoại Google Pixel từng cho biết điện thoại của họ rơi vào “vòng lặp sự cố” nếu đặt một số bức ảnh làm hình nền. Vấn đề này được người dùng báo cáo liên tục trong hai năm nhưng không nhận được hồi đáp từ công ty sở hữu Android.

Trước đó, Ice Universe, một blogger công nghệ nổi tiếng, là người đã phát hiện ra “hình nền chết chóc” trên. Một số người đã thử và phát hiện nó còn gây ra tình trạng màn hình chớp nháy, không thể sử dụng. Các chuyên gia cảnh báo, người dùng không nên thử cài lên thiết bị của mình, trừ khi đã sao lưu dữ liệu.

Bảo Lâm (theo Android Authority)

Nguồn bài viết

Bài trướcNgười trồng nho Pháp dùng rượu vang làm nước rửa tay vì bán ế
Bài tiếp theoÔng Nguyễn Đức Tài: ‘Lúc này, không giảm lãi là thần thánh’