چگونه والپیپرها باعث کرش کردن گوشی می‌شوند؟

صبح امروز خبری مهم در فضای مجازی پیچید: انتخاب عکسی خاص به عنوان والپیپر گوشی های اندرویدی باعث کرش کردن آن ها می شود. تصاویر چگونه باعث کرش کردن گوشی می شوند؟

به گزارش گروه فناوری ایمان نیوز، تصویری ساده چگونه می تواند باعث کرش کردن گوشی های اندرویدی شود؛ برخی از کاربران گزارش دادند انتخاب تصویری خاص به عنوان والپیپر گوشی شان باعث کرش کردن آن می شود. زومیت پس از بررسی های بیشتر، متوجه شد این موضوع حقیقت دارد. درواقع، اگر تصویر یادشده را به عنوان والپیپر انتخاب کنید، گوشی اندرویدی به طورمداوم خاموش و روشن می شود؛ به گونه ای که نمی توانید از آن استفاده کنید.

تاکنون بسته به تأثیری که والپیپر روی گوشی می گذارد، راهکارهای متعددی برای حل این مشکل ارائه شده اند. شماری از کاربران می گویند توانسته اند در بازه ی زمانی کوتاه بین خاموش و روشن شدن صفحه ی گوشی، به سرعت والپیپر را عوض و مشکل را رفع کنند و تعداد دیگری از کاربران موفق شدند با بهره گیری از ابزار ریکاوری TWRP والپیپر را حذف کنند. بااین حال، بررسی ها نشان می دهد در بسیاری از مواقع، تنها راه حل این است که گوشی را به تنظیمات کارخانه برگردانید و تمامی داده های آن را حذف کنید. با برگرداندن گوشی به تنظیمات کارخانه، داده های را از دست می دهید که از آن بکاپ نگرفته باشید.

نخستین بار یکی از حساب های کاربری توییتر با نام Ice Universe به این مشکل عجیب اشاره کرد. Ice Universe یکی از افشاگران نام آشنای صنعت فناوری است که تاکنون توانسته اطلاعات زیادی از محصولات معرفی نشده ی سامسونگ فاش کند. براساس گزارش کاربران، شمار درخورتوجهی از گوشی های سامسونگ و گوگل تحت تأثیر این مشکل قرار می گیرند و اگر والپیپر اعلام شده ی Ice Universe را روی آن ها تنظیم کنید، کرش می کنند.

به علاوه برخی دیگر از کاربران در توییتر گفته اند چندین مدل از گوشی های وان پلاس و نوکیا و شیائومی نیز دربرابر این باگ آسیب پذیر هستند. فعلا مشخص نیست دستگاه های تحت تأثیر وان پلاس و نوکیا و شیائومی از اندروید خام استفاده می کرده اند یا نسخه ی سفارشی اندروید. آن طورکه بررسی ها نشان می دهد، ظاهرا گوشی های ساخت هواوی تا این لحظه کمتر از تمامی گوشی های دیگر تحت تأثیر باگ جدید قرار گرفته اند.

مشکل جدید اندروید گوشی هایی را تحت تأثیر قرار می دهد که از نسخه ی به روز اندروید ۱۰ استفاده می کنند. بااین حال، از قرار معلوم این باگ مسئله ی جدیدی نیست و کاربران چندین سال است مشکلات مشابهی گزارش می کنند. برای مثال ماه گذشته، خبرگزاری اندرویدپلیس در گزارشی اعلام کرد گوشی های سری پیکسل با مشکلی تقریبا مشابه مواجه شده اند. گوشی هایی که تحت تأثیر آن باگ قرار گرفته بودند، اپلیکیشن Google Wallpapers را روی خود داشتند.

باگ جدید اندروید در نوع خود بسیار عجیب و غریب است و قطعا ظرفیت زیادی برای همه گیرترشدن دارد؛ به خصوص اگر ترول ها وارد ماجرا شوند. درواقع، این افراد می توانند به سادگی والپیپر یادشده را برای افراد بی خبر از باگ جدید بفرستند و باعث کرش کردن گوشی های آن شوند. تاکنون، از کاربران مختلف توضیحات متعددی برای دلیل اصلی بروز این اتفاق شنیده ایم. بسیاری از این افراد به فضای رنگی والپیپر اشاره می کنند و می گویند این فضای رنگی فراتر از فضای رنگی تحت پشتیبانی رابط کاربری سیستمی اندروید (Android SystemUI) است و همین موضوع باعث کرش کردن گوشی های هوشمند مبتنی بر این سیستم عامل می شود.

در پی رسانه ای شدن باگ جدید، خبرگزاری Android Authority برای فهمیدن دلیل اصلی بروز آن با داویده بیانکو، یکی از توسعه دهندگان ارشد پروژه ی ROM سفارشی Potato Open Sauce Project (موسوم به POSP)، ارتباط برقرار کرد. بیانکو توانسته است فایل به روزرسانی جدیدی برای رفع مشکل جدید اندروید بسازد. داویده بیانکو به این موضوع اشاره می کند که چگونه تصویری ساده می تواند باعث غیرممکن شدن امکان استفاده از گوشی های اندرویدی شود. داویده بیانکو تأکید می کند گفته هایی که درادامه می آیند، همگی برداشت شخصی او هستند و ممکن است حقیقت نداشته باشند.

درادامه، توضیحات داویده بیانکو را درباره ی این موضوع می خوانید:

مشکل اصلی این است که SystemUI اندروید برای بخش والپیپر، تنها می تواند تصاویری را نمایش دهد که رنگ های آن ها در فضای sRGB قرار می گیرند و نمی تواند ازپس استفاده از والپیپرهای غیر sRGB بربیاید. این موضوع می تواند باعث بروز کرشی خاص در دسته ی ImageProcessHelper شود. ImageProcessHelper نوعی متغیر است و به منظور دسترسی به آرایه ای استفاده می شود که از محدودیتِ تعیین شده برای آرایه ها عبور می کند. برای جزئیات بیشتر درباره ی آرایه ها و نحوه ی کارکرد ImageProcessHelper می توانید اینجا را ببینید.

متغیر یادشده y نامیده می شود و آن را می توان مجموع مقادیر rgb پیکسل اسکن شده ی فعلی به حساب آورد. این پیکسل ازطریق اسکن کردن تک تک ردیف ها و ستون های سطحِ تصویرِ گری اسکیل شده (Grayscale) ایجاد شده است. هربار که پیکسلی به دست می آوریم، مجموع مقادیر rgb آن را به متغیر y نسبت می دهیم (بیشترین حد این مقادیر معمولا ۲۵۵ است). پس از این کار از متغیر مذکور به منظور دسترسی به یکی از مؤلفه های آرایه ی بافت نگار (هیستوگرام) استفاده می کنیم که معمولا اندازه اش حداکثر ۲۵۶ است. به دنبال این کارها با مؤلفه ی یادشده کارهای خاصی انجام می دهیم.

در تصاویر معمولیِ گری اسکیل شده، مجموع مقادیر rgb همواره ۲۵۵ است؛ اما تصویری که باعث بروز باگ در اندروید شده، تصویری معمولی نیست. در این تصویر، مقدار متغیر y از ۲۵۵ عبور می کند. عبور مقدار متغیر y از ۲۵۵ باعث ایجاد نوعی اکسپشن (استثنا) در خارج از محدوده ی تعیین شده می شود. بروز هرگونه اکسپشن در SystemUI اندروید اتفاقی مهلک به حساب می آید و باعث واردشدن گوشی به چرخه ای نامتناهی از کرش های پشت سر هم می شود. دلیل کرش های پشت سر هم این است که هرگاه SystemUI آغازبه کار کند، روند پردازش تصویر آغاز می شود. در این بین به عنوان راه حل می توان کدی جدید اضافه کرد که بتواند هروقت مقدار متغیر y از ۲۵۵ عبور کرد، آن را به صورت خودکار روی ۲۵۵ قرار دهد. این روش جواب می دهد؛ اما بنابه برخی دلایل استفاده از آن باعث می شود کیفیت تصویر کاهش یابد.

توسعه دهندگان لینیج اواس (LineageOS) پیش تر توانسته اند بفهمند این مشکل خاص به دلیل ناکارآمدبودن روش گردکردن در SystemUI رخ می دهد. در SystemUI، مقادیر rgb به جای اینکه به شکل معمولی گرد شوند، همیشه به سمت بالا گرد می شوند. توسعه دهندگان لینیج OS با گردکردن دستی مقادیر موفق شدند مشکل یادشده را رفع کنند، به نظر می رسد این روش باعث حفظ کیفیت عکس می شود؛ اما نمی دانم دقیقا چگونه؛ چون به نظر می رسد SystemUI همیشه تصویر را به sRGB تبدیل می کند. بدین ترتیب، اگر فضای رنگی اولیه ی عکس گسترده تر باشد، پس از اتکا به این روش رنگ های کمتری در تصویر به نمایش درمی آیند.

همچنین یکی از توسعه دهندگان وب سایت 9to5Google متوجه شد مشکل مذکور در سیستم عامل اندروید ۱۱ رخ نمی دهد؛ زیرا اندروید ۱۱ پیش از پردازش تصاویر به هر نحو، آن ها را به sRGB تبدیل می کند. همچنین، تلاش کردم خودم تصویری مشکل دار ازطریق فتوشاپ یا گیمپ بسازم؛ اما SystemUI همیشه به صورت خودکار تصویر را به گونه ای تغییر داد که رنگ های آن در فضای رنگی ارائه شده ی سیستم قرار گیرد؛ اتفاقی که باعث بروز هیچ گونه کرشی نشد؛ اما طبیعتا بخشی از رنگ های تصویر از دست رفت. حتی تلاش کردم پروفایل رنگی تصویر مشکل دار را استخراج کنم و به استفاده از آن در تصویری جدید روی بیاورم؛ اما همچنان نتوانستم باعث کرش کردن SystemUI شوم.

خبر ناراحت کننده این است که والپیپر یادشده در این مقاله که باعث کرش کردن گوشی های اندرویدی می شود، به شکل بسیار وسیعی در فضای وب پخش شده است و شکی نداریم برخی افراد ازطریق آن دوستانشان را اذیت خواهند کرد. نکته ی نگران کننده تر این است که به نظر می رسد این باگ یا حتی باگ های مشابه آن چند سال است در اندروید مشاهده می شوند و در این سال ها، شاهد اقدامی عمومی گوگل نبوده ایم و احتمال دارد این شرکت در پشت پرده کارهایی انجام داده باشد.

مقاله ی مرتبط:

  • تصویر زمینه ای که گوشی های اندرویدی را از کار می اندازد

اگر قربانی این باگ شوید، راه حل ساده و سریعی برای خلاص شدن از آن ندارید. درحال حاضر، بازگشت به تنظیمات کارخانه آخرین گزینه ای است که مطرح می شود؛ اما پیشنهاد می کنیم اگر با این مشکل مواجه شده اید، اندکی صبر کنید تا شاید راه حلی بهتر پیدا شود؛ راه حلی که با استفاده از آن بتوانید بدون از دست رفتن داده های گوشی مشکل را رفع کنید. بااین حال، همواره باید نیمه ی پر لیوان را دید. آن طورکه به نظر می رسد، باگ جدید بسیار ساده است و در دسته ی بدافزارها قرار نمی گیرد. البته همان طورکه در جمله ی قبل خواندید، به نظر می رسد این باگ ساده است. فعلا تا زمانی که گوگل رسما واکنش نشان ندهد، هیچ چیز مشخص نیست. خبر خوشحال کننده این است که باگ مذکور اندروید ۱۱ را متأثر نمی کند که در آینده ای نزدیک از راه می رسد.

شما کاربران زومیت چه دیدگاهی در این زمینه دارید؟

افزودن نظر