[עדכון 2: תוקן] הטפט הזה מפעיל באג נדיר שגורם למכשירי אנדרואיד לבצע אתחול

הטפט הזה מפעיל באג נדיר שגורם למכשירי אנדרואיד לאתחל. אל תנסה את הקיר במכשיר שלך או שאתה עלול לאבד את כל הנתונים שלך.

עדכון 2 (08/03/2020 @ 15:03 ET): עם תיקוני האבטחה של אנדרואיד 2020, גוגל עדכנה את אנדרואיד כדי לתקן את הבאג הזה. פרטים נוספים ניתן למצוא בתחתית.

עדכון 1 (06/04/2020 @ 03:12 AM ET): הסברים חדשים יותר צצו על מה גורם ל"טפט הארור" לקרוס טלפונים, לצד תגובה מגוגל. גלול לתחתית למידע נוסף. המאמר כפי שפורסם ב-1 ביוני 2020, נשמר להלן.

תארו לעצמכם שאתם סורקים את האינטרנט טפטים מגניבים ואתה נתקל בנוף ציורי. יש בו הכל; יער ירוק שופע, אגם בתולי עם אי קטנטן, הרים מושלגים ברקע, וכיסוי עננים עבות עם אור שמש מחלחלת פנימה דרך הפערים. אתה מוריד מיד את התמונה, מגדיר אותה כטפט של הטלפון שלך, ובום! טלפון האנדרואיד שלך נתקע באתחול. נשמע לא סביר, לא? ובכן, זה נכון לטפט הספציפי הזה.

הטפט שותף לאחרונה ב טוויטרעל ידי ידועים סמסונג מדליף Ice Universe, שטען שהטפט "יגרום לטלפון שלך לקרוס!" למרות אזהרתם, כמה משתמשים הורידו את הטפט כדי לבדוק אם הוא אכן עשה משהו בטלפון שלהם והם נתקלו בדברים הבאים תוצאות:

לדברי Davide Bianco, מפתח ראשי של AOSP מבוסס

ROM המותאם אישית "POSP", הטפט הספציפי הזה גורם לכמה מכשירי אנדרואיד לקרוס כאשר הוא עושה שימוש במרחב הצבעים RGB, במקום מרחב הצבע sRGB שנתמך באופן מקורי באנדרואיד. לביאנקו יש הגיש תיקון ל-AOSP שלפי הדיווחים מתקן את הבעיה ותיאור התיקון קובע כי "הבעיה מתרחשת כאשר המשתמש מנסה להגדיר כטפט תמונה שאינה sRGB. מה שקורה הוא שערך המשתנה y גבוה מגבולות ההיסטוגרמה, מה שגורם ל-SysUI לקרוס. תיקון אפשרי אחד הוא להגביל את ערך y להיות תמיד פחות מ-256." יחד עם ביאנקו, שני מפתחים, חבר בכיר ב-XDA BadDaemon ומפתח מוכר XDA luca020400, מצוות ה-ROM המותאם אישית הפופולרי של LineageOS הגיעו גם הם לפתרון ייחודי לבעיה. אתה יכול לבדוק את תיאורי התיקונים ב- LineageOS Gerrit על ידי מעקב הקישור הזה ו הקישור הזה.

אנו ממליצים בחום לא להשתמש בתמונה זו כטפט שלך בשום פנים ואופן. במקרה שכבר השתמשת בו והמכשיר שלך תקוע באתחול, אנא בדוק את ההוראות למטה כיצד תוכל לשחזר את המכשיר שלך.

א דיווח מ 9to5Google בעניין מגלה עוד שהבעיה מוגבלת למכשירים המריצים אנדרואיד 10 ומעלה והיא אינה משפיעה על מכשירים המריצים את אנדרואיד 11 תצוגה מקדימה של מפתחים. זה נובע מהעובדה שב-Android 11, המערכת ממירה את מרחב הצבעים אם הוא לא נתמך, אבל באנדרואיד 10 זה לא. מה שאומר שזו לא בעיה בתמונה הספציפית הזו ויכולה להיגרם על ידי תמונות אחרות המשתמשות במרחב הצבע RGB.

שים לב שבעוד שהבעיה אינה משפיעה על כל מכשירי האנדרואיד, אנו ממליצים בחום לא לנסות את הטפט בטלפון שלך. במקרה שתנסה את זה בכל זאת, ייתכן שתוכל לשחזר את המכשיר שלך על ידי איפוס מלא או על ידי כניסה למצב בטוח ושינוי הטפט. אבל מאז כמה משתמשים נגמרו טוויטר לא הצליחו לשחזר את המכשירים שלהם באמצעות השיטות שהוזכרו לעיל, עדיף אם לא תשתמש בתמונה המדויקת כטפט שלך. אם אתה באמת אוהב את הטפט, פשוט צלם צילום מסך של התמונה והשתמש בו כטפט שלך במקום זאת.


עדכון 1: הסבר חדש, תגובה מגוגל

הרחבת הגורמים לבאג כפי שהוסבר על ידי חבר בכיר ב-XDA BadDaemon ומפתח מוכר XDA luca020400, הטפט "המקולל" מקודד במרחב צבע מיוחד הנקרא "Google/Skia/E3CADAB7BD3DE5E3436874D2A9DEE126" (זהו השם המלא של מרחב הצבעים, וסקיה מתייחסת ל- ספריית גרפיקה דו-ממדית תוצרת גוגל.) לעומת זאת, רוב תמונות הטפט האחרות מקודדות במרחב צבע הנקרא "sRGB".

בגרסאות אנדרואיד 10 ומעלה, כל התמונות מומרות ל-sRGB אלא אם צוין אחרת על ידי המפתחים. יש באג נדיר שיכול להתרחש בעת המרת התמונה ל-sRGB, שבו הקוד שמחשב את ערך ה"בהירות" של כל פיקסל מצליח לחרוג מהמגבלה המקסימלית של 255.

הבהירות מחושבת באמצעות הנוסחה הבאה:

בהירות = .2126f * r + .7152f * g + .0722f * b

כאן "r", "g" ו-"b" הם ערכי צבע אדום, ירוק וכחול המיוצגים בערך של 8 סיביות מ-0 עד 255.

הבעיה בחישוב הזה היא שכל חלק תמיד מעוגל כלפי מעלה לפני הסיכום הסופי. אחד הפיקסלים בטפט ה"מקולקל", כאשר בתהליך המרת התמונה מ-sRGB ולאחר מכן לגווני אפור, יש את ערכי ה-RGB הבאים: 255, 255, 243, שכאשר מחובר למשוואה שלמעלה נראה כמו:

r: .2126 * 255 = 54.213 => 55

g: .7152 * 255 = 182.376 => 183

ב: .0722 * 255 = 18.411 => 19

בהירות = r+g + b = 257

ערך זה גורם ל-SystemUI, ובעצם לכל מערכת ההפעלה, לקרוס מכיוון שהוא חורג מהערך המרבי. זה באג שהוא כל כך ספציפי מכיוון שהוא כולל שילוב של שגיאת עיגול ושגיאת המרת מרחב צבע.

באג זה אינו משפיע על אנדרואיד 11 מכיוון שמרחב הצבע "Skia" של התמונה אינו מומר ל-sRGB כברירת מחדל. לפיכך, שגיאת המרת מרחב הצבע הזו ושגיאת העיגול לא מתרחשות באנדרואיד 11.

עם זאת, רומיין גיא מצוות Android Toolkit בגוגל מאמין שהגורם העיקרי לבעיה זו הוא רק בדרך שבה מחושב עוצמת ההארה ולא בבעיות של המרת מרחב צבע. גוגל עורכת בדיקות פנימיות משלה, אז כנראה שנראה מה הם ימציאו בקרוב.

הסבר זה עודכן כדי להבהיר שאחד מהפיקסלים בטפט ה"מקולל" הוא הגורם לשגיאה ספציפית זו בחישוב עיגול הארה. כמו כן, הבהרנו שהעיגול מתרחש בכל שלב של חישוב הבהירות ולא בסופו.


עדכון 2: תוקן באוגוסט 2020 תיקונים

תיקוני האבטחה של אנדרואיד לחודש אוגוסט הרגע עלה לאוויר, ומפתח מוכר XDA luca020400 הבחין א להתחייב ב-AOSP שממזג תיקון עבור באג הטפט הזה.