InfoQ|目前尚无解决方法,一张壁纸使Android手机集体变砖

作者|李俊辰近日 , 一名网友在Twitter上传了一张壁纸并表示该壁纸会使他的三星手机崩溃 。 此前已经有日历Bug导致三星手机集体崩溃的事情发生 , 而这一次三星手机再次中招 。 只因为使用了一张风景壁纸就能导致手机崩溃?经该网友测试 , 不止是三星 , 包括谷歌亲儿子GooglePixel在内的众多手机品牌纷纷中招 。 事件回顾
5月31日 , 一位名为“Iceuniverse”的网友在Twitter中上传了一张壁纸并表示:“警告!切勿将此图片设置为壁纸 , 尤其是三星手机用户!它会导致你的手机崩溃!千万不要尝试!”
InfoQ|目前尚无解决方法,一张壁纸使Android手机集体变砖
文章图片
图为“肇事”的壁纸 , 大家不要轻易尝试!而后 , 该用户又发布了一条推文表示 , 不止是三星的手机 , 他的GooglePixel在更换为该壁纸之后也中招了 。 在他上传的视频中可以看到 , 将该图片设置为壁纸后 , 设备会崩溃 , 并不断在锁定屏幕上打开和关闭屏幕 , 且无法退出此循环 , 即使重启设备也会在开机后继续执行此循环 。 有网友测试 , 部分手机在崩溃后想要修复将十分棘手 , GooglePixel在安全模式下启动设备也无法修复 , 只能通过恢复出厂设置来使设备恢复正常 , 这样的话 , 手机中的全部数据都将会丢失 。
崩溃的原因这一问题没有影响到所有的Android设备 , AndroidAuthority表示 , 他们测试时发现华为Mate20pro并没有出现这样的问题 , 目前已知会受到影响的手机品牌包括三星、GooglePixel、小米、一加和诺基亚 。
那么问题究竟出在哪里?Android开发人员DylanRoussel在Twitter上分享了他寻找该问题原因的思路:
通过跟踪SystemUI崩溃的堆栈得知 , 这一问题发生在“getHistogram”中 。
在深入研究两个设备的getHistogram函数和调用getHistogram的函数之后 , 我注意到了一个问题:在使用Android11系统的Pixel4XL上 , 函数peekWallpaperBitmap有一个新参数 。
该参数将在某个时刻调用ColorManagementProxy的doColorManagement函数 , 用来检查设备是否支持图像的色彩空间 。 如果图像的色彩空间为sRGB , 则默认为支持;如果不支持 , 它会将图像的颜色空间替换为sRGB , 并记录其当前的颜色空间 。
这就是它不会在使用Android11系统的Pixel4XL上崩溃的原因 。 但是 , 在配备Android10的Pixel3XL上尚未验证 。 这意味着如果将其设置为墙纸 , 则不支持色彩空间的图像可能会导致该设备崩溃 。 那么这张图片的色彩空间是什么?RGB 。
简而言之就是这张壁纸图片使用了RGB色域标准 , 而Android10优先选择sRGB标准 , 无法在第一时间将图片进行色域转换的设备就会出现问题 , 从而导致系统崩溃 。
解决方式Dylan表示 , 目前没有很好的解决方法 , 只能通过更换壁纸或升级至Android11来解决这一问题 , 可一旦设备中招 , 就无法更换壁纸 。 祸不单行 , 近日Google表示 , 原计划于6月3日发布的Android11beta版本将无限期推迟 , 也就是说目前仍无法进行Android11的升级操作 。
如果你的三星设备已经不幸中招 , cnBeta提供了两个临时解决办法:
手机关机 , 按电源键开机 , 在开机页面出现三星LOGO画面时 , 按住音量下键不松手 , 直至左下角显示“安全模式”字样 , 进入后手速要快 , 抓紧时间随便拍一张照片 , 并设置为壁纸 。 可能需要多次才能成功 。
如果系统还未崩溃 , 快速下拉“设置”菜单 , 替换其他壁纸 。 同样要看手速 。
一直以来 , 我们总会在网上看到一些稀奇古怪的“整蛊方法”:给使用iPhone的朋友发送一串字符 , 对方的设备就会崩溃 。 这样的故事主要发生在iPhone用户身上 , 而现在 , Android用户也难逃厄运 , 如果有朋友给你发来这样一张图片并让你设置成壁纸 , 请一定不要尝试 。