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

作者 | 李俊辰近日 , 一名网友在 Twitter 上传了一张壁纸并表示该壁纸会使他的三星手机崩溃 。 此前已经有日历 Bug 导致三星手机集体崩溃的事情发生 , 而这一次三星手机再次中招 。 只因为使用了一张风景壁纸就能导致手机崩溃?经该网友测试 , 不止是三星 , 包括谷歌亲儿子 Google Pixel 在内的众多手机品牌纷纷中招 。 事件回顾
5 月 31 日 , 一位名为“Ice universe”的网友在 Twitter 中上传了一张壁纸并表示:“警告!切勿将此图片设置为壁纸 , 尤其是三星手机用户!它会导致你的手机崩溃!千万不要尝试!”
InfoQ|一张壁纸使Android手机集体变砖,目前尚无解决方法
本文插图
图为“肇事”的壁纸 , 大家不要轻易尝试!而后 , 该用户又发布了一条推文表示 , 不止是三星的手机 , 他的 Google Pixel 在更换为该壁纸之后也中招了 。 在他上传的视频中可以看到 , 将该图片设置为壁纸后 , 设备会崩溃 , 并不断在锁定屏幕上打开和关闭屏幕 , 且无法退出此循环 , 即使重启设备也会在开机后继续执行此循环 。 有网友测试 , 部分手机在崩溃后想要修复将十分棘手 , Google Pixel 在安全模式下启动设备也无法修复 , 只能通过恢复出厂设置来使设备恢复正常 , 这样的话 , 手机中的全部数据都将会丢失 。
崩溃的原因这一问题没有影响到所有的 Android 设备 , Android Authority 表示 , 他们测试时发现华为 Mate 20 pro 并没有出现这样的问题 , 目前已知会受到影响的手机品牌包括三星、Google Pixel、小米、一加和诺基亚 。
那么问题究竟出在哪里?Android 开发人员 Dylan Roussel 在 Twitter 上分享了他寻找该问题原因的思路:

  1. 通过跟踪 SystemUI 崩溃的堆栈得知 , 这一问题发生在“ getHistogram”中 。
  2. 在深入研究两个设备的 getHistogram 函数和调用 getHistogram 的函数之后 , 我注意到了一个问题:在使用 Android 11 系统的 Pixel 4 XL 上 , 函数 peekWallpaperBitmap 有一个新参数 。
  3. 该参数将在某个时刻调用 ColorManagementProxy 的 doColorManagement 函数 , 用来检查设备是否支持图像的色彩空间 。 如果图像的色彩空间为 sRGB , 则默认为支持;如果不支持 , 它会将图像的颜色空间替换为 sRGB , 并记录其当前的颜色空间 。
  4. 这就是它不会在使用 Android 11 系统的 Pixel 4 XL 上崩溃的原因 。 但是 , 在配备 Android 10 的 Pixel 3 XL 上尚未验证 。 这意味着如果将其设置为墙纸 , 则不支持色彩空间的图像可能会导致该设备崩溃 。 那么这张图片的色彩空间是什么?RGB 。
简而言之就是这张壁纸图片使用了 RGB 色域标准 , 而 Android 10 优先选择 sRGB 标准 , 无法在第一时间将图片进行色域转换的设备就会出现问题 , 从而导致系统崩溃 。
解决方式Dylan 表示 , 目前没有很好的解决方法 , 只能通过更换壁纸或升级至 Android 11 来解决这一问题 , 可一旦设备中招 , 就无法更换壁纸 。 祸不单行 , 近日 Google 表示 , 原计划于 6 月 3 日发布的 Android 11 beta 版本将无限期推迟 , 也就是说目前仍无法进行 Android 11 的升级操作 。
如果你的三星设备已经不幸中招 , cnBeta 提供了两个临时解决办法:
  1. 手机关机 , 按电源键开机 , 在开机页面出现三星 LOGO 画面时 , 按住音量下键不松手 , 直至左下角显示“安全模式”字样 , 进入后手速要快 , 抓紧时间随便拍一张照片 , 并设置为壁纸 。 可能需要多次才能成功 。
  2. 如果系统还未崩溃 , 快速下拉“设置”菜单 , 替换其他壁纸 。 同样要看手速 。
一直以来 , 我们总会在网上看到一些稀奇古怪的“整蛊方法”:给使用 iPhone 的朋友发送一串字符 , 对方的设备就会崩溃 。 这样的故事主要发生在 iPhone 用户身上 , 而现在 , Android 用户也难逃厄运 , 如果有朋友给你发来这样一张图片并让你设置成壁纸 , 请一定不要尝试 。


推荐阅读