敢用这张图片做“壁纸”手机秒变砖!

news/2024/12/23 7:18:08/

码个蛋(codeegg) 第 991 次推文

作者:依然范特稀西

链接:https://juejin.im/post/5edd9e33f265da76bf3dde8e

想象一下,你正在网上搜索一些精美的壁纸,并且找到了一张风景如画的风景图。它拥有一切:茂密的森林、原始的湖泊、还有一个小岛,背后是漂亮的雪山,厚厚的云层覆盖着阳光,阳光从云缝中渗入。你被深深的吸引,然后立即下载图片,将其设置为你的手机壁纸,然后开始使用了,然后你的Android手机就陷入了启动->崩溃->启动->崩溃...的循环中。听起来不太可能,但这确实是一个真实的事,并且罪魁祸首就是下面这张图片:

三星手机崩溃事件梳理

5月31日,名叫Ice Universe的用户在Twitter上分享了上面这张壁纸,他声称该壁纸“将导致你的手机崩溃”,尽管有警告大家不要试,这不是在开玩笑,但仍然有很多用户下载了该壁纸,以验证他说的是否是真的-是否会让手机崩溃

Twitter讨论地址如下:https://twitter.com/UniverseIce/status/1266943909499826176

设置壁纸导致三星系统崩溃如下:

然后评论区一片哀嚎:

Sebastian:非常不幸,这是一个Android的bug,Google的 Pixels系列手机也中招了!

Dawood: 这是我见过的最扯淡的bug,我甚至开启了安全模式,但是仍然没能幸免,必须恢复出厂模式,来做一些事情。

Jason Ashley:呵呵,我在模拟器中对此进行了测试。导致SystemUI崩溃。试着检查图像header是否有任何奇怪的问题,由于我有限的JPEG知识,没有发现任何问题。它也确实正常结束了。

vl1:刚刚试了,现在不得不恢复出厂设置。

Passerby: 诺基亚手机也有同样的问题。我的诺基亚7 plus已经崩溃,并反复重启。有人知道如何解决吗?我需要帮助,谢谢

Ahmed Alkaab:该死,它确实损坏了我的三星Note 9

从该Twitter的评论区反馈来看,三星、Google Pixels、诺基亚等部分手机存在该问题,国内厂商如华为、小米、OnePlus不受影响。

问题追踪

到底是什么问题导致了手机崩溃呢?图片被施了魔法?显然不是。根据Davide Bianco(基于AOSP自定义ROM的开发负责人)的说法,这种"特殊"的壁纸会导致某些Android设备崩溃,是因为它使用了RGB颜色空间,而不是Android原生支持的sRGB颜色空间。

Bianco 已经提交了一个补丁,据报道该补丁已经解决了该问题,补丁的描述指出:当用户尝试将非sRGB的图像设置为壁纸时,就会引发此问题。发生的情况是变量y的值高于histogram的范围,从而使SysUI崩溃。一种可能的解决方法是将y值始终限制为小于256。

著名的LineageOS定制ROM团队与Xian Bianco一起,由XDA高级会员BadDaemon和XDA公认的开发人员luca020400共同开发了独特的解决方案。

一份来自9to5Google的报告对此事进一步表明,问题仅限于运行Android 10以上的设备,它不影响运行在Android 11开发者预览版上的设备。这是由于:在Android 11上,如果不支持,系统会转换颜色空间,但在Android 10上则不会

Google最新回应

正如XDA高级会员BadDaemon和XDA公认的开发人员luca020400所解释的那样, 是扩展导致了这个bug。那张“被诅咒”的图片在一个特殊的颜色空间中编码,该颜色空间被称为"Google / Skia / E3CADAB7BD3DE5E3436874D2A9DEE126"这是颜色空间的全称,Skia指的是Google制作的2D图形库。)。相反,大多数其他壁纸图像均在称为“ sRGB”的色彩空间中编码。

在Android 10及更早版本中,除非开发人员另行指定,否则所有图像都将转换为sRGB。将图片转换为sRGB时,可能会发生一个罕见的错误,其中计算每个像素的“luminance(亮度)”值的代码设法超过了最大限制255。

使用以下公式计算亮度:

Luminance = .2126f * r + .7152f * g + .0722f * b

这里,“ r”,“ g”和“ b”是红色,绿色和蓝色,以0到255的8位值表示。

该计算的问题在于,它总是将最终值四舍五入。在将图像从sRGB转换为灰度的过程中,“被诅咒”墙纸中的像素之一具有以下RGB值:255、255、243,将其插入上述公式时,如下所示:

Luminance = .2126 * (255) + .7152 * (255) + .0722 * (243)
Luminance = 256

Luminance 超过了255,此值导致SystemUI崩溃,并且基本上导致整个OS崩溃,因为它超过了最大值。这个错误非常具体,因为它涉及到舍入错误和颜色空间转换错误。

此错误不会影响Android 11,因为默认情况下,图片的“Skia”颜色空间不会转换为sRGB。因此,在Android 11上不会发生此颜色空间转换错误和舍入错误。

但是,来自Google Android Toolkit团队的Romain Guy认为,此问题的根本原因仅在于计算亮度的方式,而与任何颜色空间转换问题无关。Google正在进行自己的内部测试,因此我们可能很快就会看到他们最终的结果。

如何恢复

请注意,尽管该问题并不影响所有Android设备,但我们强烈建议您不要尝试在手机上使用壁纸。如果已经尝试了,试着用下面的方式:

  • 1、进入安全模式并更改墙纸来恢复设备。三星手机操作是:在开机界面出现三星Logo画面时,按住音量下键不松手,直到出现“安全模式”字样,进入后快速抓拍一张照片设为壁纸。(不过有Twiiter用户表示此方法也无法恢复。)

  • 2、恢复出厂设置(数据丢失)

暂时只能通过这两种临时方案解决,Google已经在修复这个问题,可能会伴随着后面的系统更新来发布。因此最好不要使用确切的图片作为墙纸。如果您真的喜欢墙纸,只需对图像进行截图,然后将其用作墙纸即可。

最后再提醒一下同学们,千万不要好奇尝试!

近期文章:

  • Android 11功能:到目前为止我们所知道的最大变化!

  • 反编译所有图片加载库,让OOM无所遁形!

  • 互联网人,不配有性生活

今日问题:

有想尝试一下的嘛?


http://www.ppmy.cn/news/275668.html

相关文章

程序员专属手机壁纸,有你想要的……

微信公众号:javafirst 之前发布过一篇文章17 张程序员壁纸推荐,但这篇文章分享的壁纸都是 PC 版本,很多小伙伴留言要手机版的壁纸,昨天刚好碰到一个设计大神,让他帮忙重新设计下,原本大神还要上班赶稿&…

非主流

非主流SEO seo培训 seo工具 seo网站优化 什么是seo PR预测 Robots seo工具 pagerank查询 关键字查询 收录查询 网站排名优化 seo搜索引擎优化 百度排名优化 网站推广工具

程序员专属手机壁纸来了。。。

之前发布过一篇文章17 张程序员壁纸推荐,但这篇文章分享的壁纸都是 PC 版本,很多小伙伴留言要手机版的壁纸,昨天刚好碰到一个设计大神,让他帮忙重新设计下,原本大神还要上班赶稿,但为了大家福利&#xff0c…

众多非主流壁纸素材一键即可获取

非主流壁纸素材,我常用的这个网站就挺好的,免费下载,资源多,品质优,而且资源类型都很齐全,要是大家需要可以看一下,真的不骗人!一键打包下载,快捷方便! 免费资源最多&am…

HTTP协议加强

文章目录 一、HTTP协议简介1、什么是通信2、什么是通信协议3、HTTP 协议(1)什么是HTTP协议(2)HTTP协议的交互模型 二、 HTTP请求消息1、什么是HTTP请求消息2、HTTP请求消息的组成部分(1)请求行(…

Vue.js中的Render函数和模板语法

Vue.js中的Render函数和模板语法 在Vue.js中,有两种主要的方式来构建组件:使用模板和使用render函数。模板语法是Vue.js中最常见的方式,它是一种基于HTML的语法,能够直接在HTML文件中定义组件的结构和行为。而render函数则是一种…

PAGFile手动设置速度失效问题处理

背景 在Android中设计给了原PAG动画,但是运动速度太快,想通过代码修改。原运动速度为1s总时长,想改为2s 代码 pagFile.setTimeStretchMode(PAGTimeStretchMode.Scale) pagFile.setDuration(2000L)结果发现设置完并不管用 官方文档 区间播…

《权力的游戏》电脑高清壁纸 无水印

《权力的游戏》电脑高清壁纸 无水印 斯塔克家族 兰尼斯特家族 拜拉席恩家族