Tại sao một hình nền đơn giản lại làm sập hàng loạt smartphone Android? Update 08/2021

Cập nhật (05/6/2020): Theo cập nhật mới nhất từ chính các kỹ sư của Google, cách hệ thống Android xử lý độ chói sáng của bức ảnh đã khiến nhiều smartphone bị treo chứ không phải do không gian màu của bức ảnh có vấn đề. Bên cạnh đó, phát ngôn viên Wu Ahan của Google cũng cho biết rằng họ đang xem xét và sẽ sớm đưa ra giải pháp khắc phục. Một nguồn tin nội bộ cũng cho hay Samsung đang chuẩn bị tung ra bản vá cho smartphone của mình.

Giải thích vấn đề tới từ chính các nhà phát triển kỳ cựu và kỹ sư của Google
Giải thích vấn đề tới từ chính các nhà phát triển kỳ cựu và kỹ sư của Google

Hồi đầu tháng, blogger công nghệ danh tiếng là Ice Universe đã đăng tải một bức ảnh trên Twitter cá nhân. Đi kèm với bức ảnh là dòng cảnh báo mọi người không nên dùng nó để làm hình nền trên smartphone Android bởi việc này sẽ khiến máy bị treo (soft brick).

Theo thống kê, rất nhiều mẫu smartphone của Samsung và Google bị ảnh hưởng. Trong khi đó, một vài người dùng smartphone OnePlus, Nokia và Xiaomi cũng báo cáo rằng máy của họ bị treo. Các smartphone của Huawei thì hiếm khi gặp sự cố với các hình nền điện thoại.

Vậy tại sao một hình nền đơn giản lại có thể làm treo hàng loạt smartphone Android? Chúng ta hãy cùng tìm hiểu.

Theo Android Authority, hầu hết người trong ngành đều cho rằng vấn đề này xuất phát từ việc không gian màu của bức ảnh vượt quá khả năng xử lý của SystemUI trên Android.

Để hiểu rõ hơn, mời các bạn đọc phần giải thích của Davide Bianco, một nhà phát triển Android kỳ cựu. Davide hiện đang chịu trách nhiệm chính cho dự án phát triển ROM tùy chỉnh POSP:

“SystemUI chỉ làm công việc duy nhất là xử lý và biến các bức ảnh sRGB thành hình nền và không có bất kỳ kiểm tra nào với ảnh không phải sRGB. Điều này có thể tạo ra một sự cố, xung đột trong lớp ImageProcessHelper khi mà một biến được sử dụng để truy cập vào mảng vượt quá giới hạn của mảng.

Biến này được gọi là y và nó là tổng giá trị điểm ảnh RGB của bức ảnh. Số điểm ảnh được thu thập bằng cách quét mọi hàng và cột thang xám trên bề mặt bức ảnh. Mỗi lần phát hiện ra một điểm ảnh, biến y lại tăng 1 giá trị. Thông thường, biến y có giá trị tối đa là 255 và được 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) nhằm thực hiện chức năng của nó. Trong trường hợp này biến y có chức năng khai báo bức ảnh sẽ được dùng để làm hình nền.

Với các bức ảnh thông thường, tổng giá trị RGB luôn là 255. Tuy nhiên, vì một lý do nào đó bức ảnh này có biến y vượt quá giới hạn. Bất kỳ sự quá giới hạn nào trong SystemUI đều gây ra trục trặc nghiêm trọng, dẫn tới một vòng lặp sự cố vô hạn vì hình ảnh cần được xử lý mỗi khi SystemUI khởi động”, Davide chia sẻ.

Davide cũng đề xuất giải pháp đó là viết lệnh đặt biến y về lại giá trị 255 mỗi khi phát hiện ra nó vượt qua giới hạn tối đa. Giải pháp này giúp smartphone không bị treo khi đặt bức ảnh trên làm hình nền nhưng lại làm giảm chất lượng hình ảnh.

Một số mẫu smartphone không gặp sự cố gì sau khi cài đặt bức ảnh này làm hình nền
Một số mẫu smartphone không gặp sự cố gì sau khi cài đặt bức ảnh này làm hình nền

Davide cũng thử dùng Photoshop và Gimp để tạo ra một bức ảnh có thể gây treo máy Android nhưng không thành công. Anh nhận ra rằng SystemUI luôn chuyển ảnh của anh sang không gian màu an toàn trước khi cài đặt làm hình nền của máy. Davide thử trích xuất cả hồ sơ màu của hình ảnh trên để sử dụng trong một hình ảnh mới nhưng cũng không thể khiến bất cứ smartphone Android nào bị treo.

Trong khi đó, theo Dylan Roussel, một nhà phát triển nhiều kinh nghiệm khác, vấn đề này không xuất hiện trên Android 11. Lý do là vì Android 11 luôn chuyển đổi hình ảnh sang dạng sRGB trước khi được sử dụng cho các tính năng như cài đặt làm hình nền.

Thực tế đây không phải lần đầu tiên smartphone Android bị treo khi cài đặt hình nền đặc biệt. Tuy nhiên, cho tới hiện tại Google vẫn chưa có bất cứ giải pháp nào cho vấn đề này.

Nếu bị ai đó chơi khăm hoặc tò mò cài đặt hình nền này và bị treo máy, bạn không thể khắc phục bằng cách khởi động lại máy. Thay vào đó, bạn phải khôi phục cài đặt gốc hoặc vào chế độ an toàn (safe mode) rồi xóa tấm ảnh trên.

  • Đặt tấm ảnh này làm hình nền có thể khiến smartphone Android treo máy

Leave a Reply