[อัปเดต 2: แก้ไขแล้ว] รูปพื้นหลังนี้ทำให้เกิดข้อผิดพลาดที่หายากที่ทำให้อุปกรณ์ Android ทำการบูตลูป

click fraud protection

วอลเปเปอร์นี้ทำให้เกิดข้อผิดพลาดที่หายากซึ่งทำให้อุปกรณ์ Android บูตลูป อย่าลองใช้วอลเปเปอร์บนอุปกรณ์ของคุณ ไม่เช่นนั้นข้อมูลทั้งหมดของคุณอาจสูญหายได้

อัปเดต 2 (08/03/2020 @ 15:03 น. ET): ด้วยแพตช์ความปลอดภัยของ Android เดือนสิงหาคม 2020 Google ได้อัปเดต Android เพื่อแก้ไขข้อบกพร่องนี้ รายละเอียดเพิ่มเติมสามารถดูได้ที่ด้านล่าง

อัปเดต 1 (06/04/2020 @ 03:12 น. ET): มีคำอธิบายใหม่เกี่ยวกับสาเหตุที่ทำให้ "วอลเปเปอร์ต้องคำสาป" ทำให้โทรศัพท์พัง ควบคู่ไปกับคำตอบจาก Google เลื่อนไปด้านล่างเพื่อดูข้อมูลเพิ่มเติม บทความที่เผยแพร่เมื่อวันที่ 1 มิถุนายน 2020 จะถูกเก็บรักษาไว้ด้านล่าง

ลองนึกภาพว่าคุณกำลังค้นหาข้อมูลทางอินเทอร์เน็ต วอลเปเปอร์สุดเจ๋ง และคุณจะพบกับภูมิประเทศที่งดงาม มันมีทุกอย่าง ป่าอันเขียวชอุ่ม ทะเลสาบอันบริสุทธิ์ที่มีเกาะเล็กๆ พื้นหลังเป็นภูเขาที่ปกคลุมด้วยหิมะ และเมฆหนาทึบที่มีแสงอาทิตย์ส่องลอดผ่านช่องว่างเหล่านั้น คุณดาวน์โหลดภาพนี้ทันที ตั้งเป็นวอลเปเปอร์ในโทรศัพท์ของคุณ เท่านี้คุณก็บูม! โทรศัพท์ Android ของคุณติดอยู่ใน bootloop ฟังดูไม่น่าเป็นไปได้ใช่ไหม? มันเป็นเรื่องจริงสำหรับวอลเปเปอร์นี้โดยเฉพาะ

เมื่อเร็ว ๆ นี้มีการแชร์วอลเปเปอร์บน ทวิตเตอร์โดยมีชื่อเสียง ซัมซุง Ice Universe ผู้รั่วไหลซึ่งอ้างว่าวอลเปเปอร์ "จะทำให้โทรศัพท์ของคุณพัง!" แม้จะมีคำเตือนมากมายก็ตาม ผู้ใช้ดาวน์โหลดวอลเปเปอร์เพื่อตรวจสอบว่าได้ทำอะไรบนโทรศัพท์ของตนจริงหรือไม่ และพบสิ่งต่อไปนี้ ผลลัพธ์:

ตามที่ Davide Bianco หัวหน้าผู้พัฒนา AOSP-based รอมที่กำหนดเอง "POSP" วอลเปเปอร์เฉพาะนี้ทำให้อุปกรณ์ Android บางเครื่องขัดข้องเนื่องจากใช้พื้นที่สี RGB แทนที่จะเป็นพื้นที่สี sRGB ที่รองรับบน Android เบียงโก้ก็มี ส่งแพทช์ ไปยัง AOSP ซึ่งมีรายงานว่าแก้ไขปัญหาได้ และคำอธิบายของแพตช์ระบุว่า "ปัญหานี้เกิดขึ้นเมื่อผู้ใช้พยายามตั้งเป็นภาพพื้นหลังที่ไม่ใช่ sRGB สิ่งที่เกิดขึ้นคือค่าตัวแปร y สูงกว่าขอบเขตฮิสโตแกรม ทำให้ SysUI หยุดทำงาน การแก้ไขที่เป็นไปได้อย่างหนึ่งคือการจำกัดค่า y ให้น้อยกว่า 256 เสมอ" พร้อมด้วย Bianco นักพัฒนาสองคน สมาชิกอาวุโส XDA แบดเดมอน และนักพัฒนาที่ได้รับการยอมรับจาก XDA ลูก้า020400จากทีม ROM แบบกำหนดเอง LineageOS ยอดนิยมยังได้คิดค้นวิธีแก้ไขปัญหาที่ไม่เหมือนใครอีกด้วย คุณสามารถตรวจสอบคำอธิบายแพตช์บน LineageOS Gerrit ได้โดยทำตาม ลิงค์นี้ และ ลิงค์นี้.

เราขอแนะนำอย่างยิ่งไม่ให้ใช้รูปภาพนี้เป็นวอลเปเปอร์ของคุณไม่ว่าในกรณีใด ๆ ในกรณีที่คุณใช้งานไปแล้วและอุปกรณ์ของคุณติดอยู่ใน Bootloop โปรดตรวจสอบคำแนะนำด้านล่างว่าคุณจะสามารถกู้คืนอุปกรณ์ของคุณได้อย่างไร

รายงานจาก 9to5Google ในเรื่องดังกล่าวยังเผยอีกว่าปัญหานี้จำกัดอยู่ที่อุปกรณ์ที่ใช้ Android 10 ขึ้นไป และไม่กระทบกับอุปกรณ์ที่ใช้ แอนดรอยด์ 11 ตัวอย่างนักพัฒนา นี่เป็นเพราะว่าบน Android 11 ระบบจะแปลงปริภูมิสีหากไม่รองรับ แต่บน Android 10 ไม่รองรับ ซึ่งหมายความว่านี่ไม่ใช่ปัญหากับภาพนี้โดยเฉพาะ และอาจเกิดจากภาพอื่นที่ใช้ปริภูมิสี RGB

โปรดทราบว่าแม้ว่าปัญหานี้จะไม่ส่งผลกระทบต่ออุปกรณ์ Android ทั้งหมด แต่เราขอแนะนำอย่างยิ่งว่าอย่าลองใช้วอลเปเปอร์บนโทรศัพท์ของคุณ ในกรณีที่คุณลองใช้งานแล้ว คุณอาจสามารถกู้คืนอุปกรณ์ของคุณได้โดยการรีเซ็ตอุปกรณ์ทั้งหมดหรือโดยการเข้าสู่เซฟโหมดและเปลี่ยนวอลเปเปอร์ แต่เนื่องจากมีผู้ใช้บางรายมาบ้างแล้ว ทวิตเตอร์ ไม่สามารถกู้คืนอุปกรณ์ของตนโดยใช้วิธีการข้างต้นได้ จะเป็นการดีที่สุดหากคุณไม่ใช้รูปภาพที่ตรงกันทุกประการเป็นวอลเปเปอร์ หากคุณชอบวอลเปเปอร์นี้จริงๆ เพียงจับภาพหน้าจอของรูปภาพและใช้เป็นวอลเปเปอร์แทน


อัปเดต 1: คำอธิบายใหม่ การตอบสนองจาก Google

ขยายสาเหตุของจุดบกพร่องตามที่อธิบายโดย XDA Senior Member แบดเดมอน และนักพัฒนาที่ได้รับการยอมรับจาก XDA ลูก้า020400วอลเปเปอร์ "ต้องคำสาป" จะถูกเข้ารหัสในพื้นที่สีพิเศษซึ่งเรียกว่า "Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126" (นี่คือชื่อเต็มของพื้นที่สี และ Skia หมายถึง ไลบรารีกราฟิก 2D ที่สร้างโดย Google.) ในทางตรงกันข้าม รูปภาพวอลเปเปอร์อื่นๆ ส่วนใหญ่จะถูกเข้ารหัสในพื้นที่สีที่เรียกว่า "sRGB"

ใน Android เวอร์ชัน 10 และเก่ากว่า รูปภาพทั้งหมดจะถูกแปลงเป็น sRGB เว้นแต่นักพัฒนาจะระบุไว้เป็นอย่างอื่น มีข้อผิดพลาดที่เกิดขึ้นได้ยากเมื่อแปลงรูปภาพเป็น sRGB โดยที่โค้ดที่คำนวณค่า "ความสว่าง" ของแต่ละพิกเซลจัดการเกินขีดจำกัดสูงสุดที่ 255

ความสว่างคำนวณโดยใช้สูตรต่อไปนี้:

ความสว่าง = .2126f * r + .7152f * g + .0722f * b

โดยที่ "r", "g" และ "b" คือค่าสีแดง เขียว และน้ำเงินที่แสดงเป็นค่า 8 บิตตั้งแต่ 0 ถึง 255

ปัญหาในการคำนวณนี้คือ แต่ละส่วนจะถูกปัดเศษขึ้นก่อนผลรวมสุดท้ายเสมอ หนึ่งในพิกเซลในวอลเปเปอร์ "ต้องสาป" เมื่ออยู่ในขั้นตอนการแปลงภาพจาก sRGB แล้ว ถึงระดับสีเทาจะมีค่า RGB ดังต่อไปนี้ 255, 255, 243 ซึ่งเมื่อเสียบเข้ากับสมการข้างต้นจะมีลักษณะดังนี้ ชอบ:

ร: .2126 * 255 = 54.213 => 55

กรัม: .7152 * 255 = 182.376 => 183

ข: .0722 * 255 = 18.411 => 19

ความสว่าง = r+ g + b = 257

ค่านี้ทำให้ SystemUI และโดยพื้นฐานแล้วระบบปฏิบัติการทั้งหมดขัดข้องเนื่องจากเกินค่าสูงสุด มันเป็นจุดบกพร่องที่มีความเฉพาะเจาะจงอย่างไม่น่าเชื่อ เนื่องจากเกี่ยวข้องกับข้อผิดพลาดในการปัดเศษและข้อผิดพลาดในการแปลงปริภูมิสี

จุดบกพร่องนี้ไม่ส่งผลกระทบต่อ Android 11 เนื่องจากปริภูมิสี "Skia" ของรูปภาพไม่ได้แปลงเป็น sRGB ตามค่าเริ่มต้น ดังนั้น ข้อผิดพลาดในการแปลงพื้นที่สีและข้อผิดพลาดในการปัดเศษจึงไม่เกิดขึ้นใน Android 11

อย่างไรก็ตาม Romain Guy จากทีม Android Toolkit ของ Google เชื่อว่าต้นตอของปัญหานี้ เป็นเพียงวิธีคำนวณความสว่างเท่านั้น และไม่ได้อยู่ในปัญหาการแปลงปริภูมิสีใดๆ Google กำลังดำเนินการทดสอบภายในของตนเอง ดังนั้นเราน่าจะเห็นสิ่งที่พวกเขาจะเกิดขึ้นในไม่ช้า

คำอธิบายนี้ได้รับการอัปเดตเพื่อชี้แจงว่าหนึ่งในพิกเซลในวอลเปเปอร์ "ต้องสาป" เป็นสาเหตุของข้อผิดพลาดในการคำนวณการปัดเศษความสว่างโดยเฉพาะ นอกจากนี้เรายังชี้แจงด้วยว่าการปัดเศษจะเกิดขึ้นในแต่ละขั้นตอนของการคำนวณความสว่าง ไม่ใช่ที่ขั้นตอนสุดท้าย


อัปเดต 2: แก้ไขในแพทช์เดือนสิงหาคม 2020

แพตช์ความปลอดภัยของ Android ประจำเดือนสิงหาคม เพิ่งถ่ายทอดสดและนักพัฒนาที่ได้รับการยอมรับจาก XDA ลูก้า020400 เห็นก กระทำใน AOSP ที่รวมการแก้ไขข้อบกพร่องของวอลเปเปอร์นี้เข้าด้วยกัน