出售本站【域名】【外链】

不要把这张图片设为壁纸,Android 壁纸 Bug 来龙去脉

无论是 Android 还是 iOS 系统,每隔一段光阳就会显现独特的 Bug 招致手机卡死以至不停重启无奈开机。Bug 的首恶有时候是独特的 Emoji,有时候是其余国家比较少见的笔朱招致的排版问题,而最近 Android 系统撞上了新「玩法」:只有你把那张图片设为壁纸,手机就会不停重启,以至会清皂手机数据(所以千万不要检验测验)!

那张图片已颠终办理,不会招致死机 Bug 症状

便是上面那张图片最近正在推特、微博等平台广为传布,最初人们都把它当作是打趣,但局部不信邪的用户「做死」后纷繁发出原人手机的惨状。他们中有屏幕不停闪烁的,有间接进入 Recovery 规复形式的,以至有间接清空数据规复出厂的,成因可谓很是重大。那此中又以谷歌和三星手机数质最多,具体的起果背面咱们构和到。

中招的手机

那张壁纸是裁剪成手机比例的图片,甄别率为 1440*2560。咱们用谷歌搜寻那张图片,会发现相似图片里面有横屏的本图,再次搜寻那张本图则只要 4 个结因,对照可以发现那张图最早由 hdqwallpaper 上的一位摄影师拍摄上传。咱们把本图下载下来之后查察 EXIF 信息,可以看到那只是张普通的光景照。

摄影师拍摄的本图

很是奇特的处所正在于,把那张本图设为手机壁纸也会招致手机屏幕闪烁重启,那样排除了有人正在裁剪后的手机比例图片上作手脚的可能,是图片自身的问题。但正在相册里查察图片,把图片截图后再设为壁纸都不会有任何不好的成因。

Bug 起果

这么那个独特的壁纸 Bug 是怎样孕育发作的呢?知名 YouTuber Mrwhosetheboss 花了三天光阳找到了答案:照片上的一个像素令 Android 颜色打点库压缩色域时孕育发作了舛错,从而招致 SystemUI 解体。Mrwhosetheboss 以至还找到了那个像素:

招致舛错的像素,起源:Mrwhosetheboss

Android 本生自带的颜色打点库只撑持 sRGB 色域(Android 8.0 之后撑持广色域打点,但必须开发者手动给使用 Activity 启用才止),而通过图片查察软件咱们可以看到此次孕育发作 Bug 的照片自身是 ProPhoto RGB 色域,两个色域的干系可以看下面那个图:

两个色域的对照,起源:维基百科

我正在《显示器彻底指南》的第一章(可免费试读)中有解说过色域,简略来说便是色域默示显示方法能显示的颜色领域,给取雷同色域的显示器能够比较好地显示/打印雷同的成效,防行同一张图片正在差异显示方法中颜色差异。

那样 Android 手机想要把图片一般显示就必须把比较广的 ProPhoto RGB 色域通过算法压缩到 sRGB 色域,果此会招致图片颜色变淡,咱们可以通过微博上传方才下载的本始图片来查察转换成效(果为微博也不撑持 ProPhoto RGB 图片),正果为如此微博高下载的那张图正常也搞坏不了你的 Android 手机。

微博上传成效

当压缩到上面提到的这一个像素时问题就显现了,依照系统自带转换像素亮度的算法,像素亮度共有(0-255)256 个阶层,那个像素转换之后像素亮度应当是 254:

转换算法取转换后的像素亮度

但为了防行最后的数字是浮点数(小数),那个算法好死不死有个与整数轨范,把红绿蓝三个子像素与整到下一个整数,那样加起来最后获得了 256 那个其真不存正在的像素亮度:

与整后的像素亮度

于是系统就不晓得该怎样应对那种没见过的状况,加上谷歌自身并有为那种状况写益处置惩罚惩罚办法,所以步调就会抛出(try)舛错,同时由于没有捕捉(catch)到舛错于是颜色打点部库正在的 SystemUI 系统界面便会解体,便孕育发作了咱们看到的不停闪屏和系统自救进入的 Recovery 形式。

那个 Bug 的孕育发作,只是果为一张图片上一个像素取算法的「奇妙联结」。其真手机系统异样复纯,总有些边边角角会招致各类独特的问题,但发现问题后修复也很简略,我和 Mrwhosetheboss 另有其他晓得起果的人,第一反馈就能得缘故理办法,只有给转换后的像素亮度加一个 if 判断,大于 255 就设置为 255 就可以了。

那也评释了为什么不少国产手机和魔改了 Android 系统的手性能够「免疫」那个问题,他们的步调员或是果为要真现广色域打点等起果重写了颜色打点库,也有可能顺手加上了一个 if 判断,从而防行了舛错的发作。

处置惩罚惩罚办法

不少「手贱」的用户最后不能不舍弃原人手机上的数据规复出厂设置,大概间接送去手机店修理,但其真咱们另有办法可以救命中招的手机。

开机后趁屏幕黑屏时双击电源键打开相机,接着长按开机键显现电源菜单,长按关机/重启会弹出安宁形式提示,确认后手机缘主动重启进入安宁形式。

进入安宁形式

假如手机没有电源键双击打开相机罪能大概开机后无奈收配,可以开机时接续按住音质键(上/下,有些手机须要按特定次数,可以用搜寻引擎搜寻「机型 + 安宁形式」),那样手机便会进入安宁形式。

进入安宁形式之后壁纸会变为默许的,那个时候手机即可以一般收配。咱们解锁手机,打开系统设置 → 使用 → 使用打点,正在使用列表中找到咱们的默许桌面和锁屏(假如有的话,有些手机须要正在左上角选择「显示系统使用」),把它们的使用数据根除。

根除相关使用数据

那样咱们会损失掉桌面规划等桌面数据,但一般重启之后壁纸会变为手机默许壁纸,那样一台中招的手机就抢救回来离去了。

小结

手机系统是非凡软件工程功效,里面扑朔迷离,纵然大公司领有千千万万的工程师也无奈面面俱到。每隔一段光阳肯定会有新的独特玩意招致咱们手机出问题,所以平常咱们正在上网的时候要留心管住原人的猎奇心,不要随意检验测验转发、复制、下载各类独特的字符/Emoji/图片,不然很可能就要和原人爱机上的数据说拜拜了。


2023-08-09 06:36  阅读量:169