Vì sao một bức ảnh có thể "đánh sập" hệ điều hành Android?

Ryankog

Administrator
Tham gia
6/4/16
Bài viết
3,485
Được thích
4,282
25460 #1


Làm thế nào mà một hình nền tưởng chừng như vô hại lại có thể khiến hệ điều hành Android gặp lỗi? Đó là câu hỏi mà nhiều người đặt ra khi tấm “ảnh nền chết chóc" được chia sẻ trên mạng.
Tùy thuộc vào mức độ mà điện thoại bị ảnh hưởng, 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 lần crash. Những người khác đã xóa thành công hình nền bằng công cụ khôi phục TWRP. Nhưng trong hầu hết 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, xoá tất cả dữ liệu trong máy.


Dựa trên các chia sẻ của người dùng, nhiều mẫu máy của Samsung và Google bị ảnh hưởng, một số thiết bị OnePlus, Nokia và Xiaomi cũng bị (không rõ liệu các thiết bị này chạy ROM chính thức hay ROM tùy chỉnh). Theo AndroidAuthority, các thiết bị Huawei dường như ít gặp sự cố với hình nền này hơn.

Vấn đề ảnh hưởng đến các điện thoại chạy Android 10, nhưng hóa ra, nó không thực sự mới. Người dùng đã từng chia sẻ vấn đề tương tự trong một vài năm qua.

Điều này có khả năng trở thành một vấn đề rộng hơn nếu nhiều người chia sẻ tấm ảnh nền mà không thông báo nguy cơ khi cài đăt.


Vậy, nguyên nhân là gì?

Đầu tiên cần phải nói rằng hình ảnh này không hề chứa mã độc như nhiều người lầm tưởng. Hầu hết những người có hiểu biết về Android đều đồng ý rằng nguyên nhân là do không gian màu (color space) của hình ảnh này đã vượt xa những gì SystemUI của Android có thể xử lý và gây ra sự cố.

Davide Bianco, một nhà phát triển Android, người dẫn đầu dự án ROM custom POSP và thường xuyên theo dõi lỗi của AOSP (Dự án mã nguồn mở Android), đã giải thích vấn đề như sau (bạn có thể đọc bản tiếng Anh tại đây):

Vấn đề chính ở đây là SystemUI chỉ xử lý ảnh sRGB cho hình nền và không thể xử lý ảnh không phải sRGB. Điều này có thể dẫn đến một sự cố cụ thể trong ImageProcessHelper, vì một biến được sử dụng để truy cập một chuỗi sẽ không thể truy cập được. Bạn có thể xem phương pháp tại đây.

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

Đối với các hình ảnh bình thường, tổng giá trị rgb luôn là 255, nhưng đây không phải là hình ảnh bình thường. Biến y 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 vô hạn của các sự cố vì hình ảnh được xử lý mỗi khi SysUI khởi động).


Ngoài ra, theo 9to5Google, sự cố này không xảy ra trên Android 11 vì hệ điều hành này sẽ tự chuyển hình ảnh thành sRGB trước khi xử lý. Tất nhiên, không nhất thiết phải đúng bức ảnh này mà bất kỳ bức ảnh nào thoả điều kiện cũng có thể khiến sự cố tương tự xảy ra.

Nếu bạn quyết định bỏ qua cảnh báo và thử cài bức ảnh này (link ở đây), bạn có thể phải khôi phục thiết bị về cài đặt gốc vào safe mode và xoá file ảnh từ đó.

Cho đến lúc này thì Google vẫn chưa chính thức đưa ra phản hồi nào.

Tham khảo: AndroidAuthority, 9to5google
 
Sửa lần cuối:

nhacptk

Well-Known Member
Tham gia
25/4/17
Bài viết
1,134
Được thích
551
#3
Thấy cũng hay nhỉ, dân tình tưởng là file chứa mã độc.
 

maiduyduc

New Member
Tham gia
2/6/20
Bài viết
1
Được thích
0
#5
Nếu không muốn reset mất dữ liệu, ae có thể làm như sau (áp dụng máy đã cài custom recovery như twrp,...)
- Truy cập: data/system/users/0/
-> xóa hết các file có tên wallpaper* trừ file wallpaper_info.xml
 

leminhhp90

Active Member
Tham gia
5/1/18
Bài viết
235
Được thích
55
#6
may qúa, dạo này không dám yêu khoa học nhiều
 

Theo dõi Youtube

Quảng Cáo

Quảng Cáo

Có thể bạn quan tâm

Top Bottom