DEV Community

Cover image for How did this image brick Android phones?

How did this image brick Android phones?

Akhil on June 06, 2020

Few day's ago this tweet went viral, People tried it anyway and this was the aftermath : So why is this beautiful landscape picture bricking A...
Collapse
 
steveblue profile image
Stephen Belovarich

Excellent write up! That’s interesting. Probably just a bug and considered an edge case, which is why it wasn’t caught. Very few people work with such wide color spaces, probably professional photographers. When photographers print, the color space has to be converted to whatever is most compatible for the printer / material, so there happens to be a long history of algorithms that convert color spaces.

I see this as a symptom of a much larger problem in user interface engineering. What do you expect from engineers that often ignore design / UX, where the engineers often have zero grounding in graphics processing despite coding user interfaces?

Collapse
 
nicobistolfi profile image
Nico Bistolfi

If developers use more defensive programming this would have never happened.

Collapse
 
akhilpokle profile image
Akhil

Color spaces are usually used so that what photographers/printers see on screen is exactly printed on paper.

I guess this was more of carless rounding of numbers.

Collapse
 
joeyprogramy profile image
Joey Programy

Amazing, how just one pixel can create such a huge madness. I saw this one thing on twitter, I was a little skeptical, but then I remembered that character that broke iPhone's some time ago.

Cool post and great explication!

Collapse
 
akhilpokle profile image
Akhil

Yea, and to make it even worse errors like these occur very rarely and it's tough to replicate them. Thanks for reading :)

Collapse
 
munafsheikh profile image
Munaf Sheikh • Edited

Hi Akhil,

Very interesting article and great write-up.. Obviously I tried it for myself and can verify it did the same on my Samsung Note 9.

I was able to resolve it although it was challenging. It was a race against the device's startup services.

As your device boots up,

  1. Delete the image from your gallery,
  2. change the wallpaper on home screen.

I suppose I was very lucky I applied that image as wallpaper on the homescreen only - not both home screen and lock screen. I will not be doing this again.

This experience also raised a question for me on how to log in to Android via a terminal (on the device or off) and avoid starting the GUI manager up..

Cheers

Collapse
 
akhilpokle profile image
Akhil

Awesome man ! Smart that you applied only to the home screen.

Collapse
 
msfjarvis profile image
Harsh Shandilya

Interesting read. This was patched in Android 11 properly and since backported by a LineageOS developer here, clamping down the value simply hides the problem.

Collapse
 
ctinguria profile image
Chetan Tinguria

Hey Akhil - nice article, easy to understand.
I feel that the fix will be in two parts:

  1. the one you are proposing, after the summation
  2. the rounding off should be proper, like 54.213 should be 54 and not 55, while 17.5446 can be 18.
Collapse
 
devworkssimone profile image
DevWorksSimone

Here the dumbest question 😅 how you show original color in dev.to if dev.to converts it? Very interesting article.

Collapse
 
akhilpokle profile image
Akhil

There's an interesting happening in the background.

If you directly apply this wallpaper then it will crash your phone, but if you take a screenshot of the image and then set it as wallpaper, it works fine. that's because, in gallery, android converts the photo to sRGB.

Tech becomes crazy as we deep dive into it.

Now what I did was, upload this image on a website that supported the ProPhoto color space, then I uploaded the image converted by dev.to, combined and downloaded as sRGB.

Due to this original colors were preserved.

Collapse
 
jmojico profile image
Julian Mojico

I love to read this kind of stuff in dev.to....it's much more different that the rest of the articles like "Top 5 frameworks in javascript".

I was wondering... Is there any quick fix for this bug?
Once you setup a wallpaper, the only way to change that is successfully boot Android OS, and only then, you would be able to change the buggy wallpaper. :O

Collapse
 
akhilpokle profile image
Akhil

Thanks for reading the article :), I like to write about how tech works and real-life applications of algorithms etc.

And yep you're correct. Unfortunately, the fix for this was to reset the phone. Google is planning on releasing its fix soon in future updates.

Collapse
 
nicobistolfi profile image
Nico Bistolfi

I agree with @jmojico , great and entertaining article @akhilpokle

Thread Thread
 
akhilpokle profile image
Akhil

Thanks for reading my article :)

Collapse
 
thekashey profile image
Anton Korzunov

Why when white color (255,255,255) is not crashing anything?

Collapse
 
akhilpokle profile image
Akhil

Interesting catch. Need to dig deeper regarding this. Thanks for pointing out :)

Collapse
 
pilskalns profile image
Andžs

If this article gets 256 likes, will it crash dev.to?

Collapse
 
akhilpokle profile image
Akhil

Share it to reach the 256 goal :P

Collapse
 
cartinez profile image
F. • Edited

You might also say that.. a pixel is killing Pixels.

I'll see myself out.

Collapse
 
paularah profile image
Paul Arah

wow. thanks for sharing!

Collapse
 
akhilpokle profile image
Akhil

Thanks for reading :)

Collapse
 
meatboy profile image
Meat Boy

Awesome analyze and weird Bug :D great article

Collapse
 
akhilpokle profile image
Akhil

Thanks man ! :)

Collapse
 
l04db4l4nc3r profile image
Angad Sharma

Amazing read!

Collapse
 
akhilpokle profile image
Akhil

Thanks alot !!

Collapse
 
arnabdeypolimi profile image
Arnab Dey

careless use of round function

Collapse
 
akhilpokle profile image
Akhil

Yea. This issue used to appear rarely on Reddit and it's apparently it's hard to miss the bug, but this time they caught it.

Collapse
 
christophe profile image
Christophe T

Amazing ! I think this article will be my new reference when explaining the difference between rounding each term and rounding the total ;-)

Collapse
 
akhilpokle profile image
Akhil

Thanks for reading the article :)

Collapse
 
dansimiyu profile image
dan-simiyu • Edited

This is really a good piece. Thanks.

Collapse
 
akhilpokle profile image
Akhil

Thanks alot for reading :)

Collapse
 
tilakmaddy_68 profile image
Tilak Madichetti

this blew my mind

Collapse
 
proxcentaur profile image
Proxima

Awe-inspiring!