back to article Nice wallpaper you've got there. It would be a shame if it bricked your phone

A picturesque Android wallpaper image is exhibiting some unwelcome side effects on most Android phones, effectively "soft-bricking" them until the user manages to perform a factory reset. Soft-bricking is the nicer, less permanent version of hard-bricking (the latter irreparably damages the physical hardware or firmware). …

  1. BenDwire Silver badge
    Facepalm

    It's a bit ironic...

    It's a bit ironic that a 'Mountain View' causes so much grief to the unwary.

    1. jake Silver badge

      Re: It's a bit ironic...

      "It's a bit ironic that a 'Mountain View' causes so much grief to the unwary."

      Not really. It's been done before ...

    2. Sven Coenye

      Re: It's a bit ironic...

      Even more ironic: although TFA says the image uses "plain RGB" instead of sRGB, the original's color profile references Google/Skia. If that is genuine, Google is the cause all-round.

  2. IGotOut Silver badge

    Blimey...

    It's 2020 and a wallpapers are sticking bricking devices?

    Makes me want to fire up Win95 and load a .scr file on a diskette I got from a computer fair.

    1. RyokuMas
      Joke

      Almost...

      The correct terminology is: "It's 2020 and you can still pwn Android with a JPG"

      #ElRegAutoHeadlineGenerator

      1. Teiwaz

        Re: Almost...

        The correct terminology is: "It's 2020 and Android is still a pile of trojan advertising malware trying to pretend to be a useful Phone OS."

        Signed.

        Not an Android fan (obvs).

        1. MrMerrymaker

          Re: Almost...

          Android is better than anything else. Maybe you haven't used it in ten years.

          Caveat: rooted Xiaomi, can't stand bloat. Samsung are iffy and likely to blame here.

          You're biased.

          1. Psmo
            Megaphone

            Re: Almost...

            Altogether now:

            Windoooows Phoooooone!

            1. Captain Scarlet
              Unhappy

              Re: Almost...

              For the 3 people who used it:

              BB10

          2. sabroni Silver badge
            Facepalm

            Re: Android is better than anything else. You're biased.

            On an article about how a wallpaper image in a legal format makes Android phones unusable.

            Good grief.

          3. KittenHuffer Silver badge

            Re: Almost...

            To misquote Churchill - Android is the worst smart phone OS, except for all the others.

            1. Tigra 07
              Devil

              Re: Almost...

              To misquote Gandhi - "Fuck off, or i'll punch you in the throat."

        2. Captain Scarlet

          Re: Almost...

          I always thought of it as an app on top of the Linux Kernel.

          Much like Windows 1.0 - ME ran on top of DOS.

      2. juice

        Re: Almost...

        > The correct terminology is: "It's 2020 and you can still pwn Android with a JPG"

        Meanwhile, over in Apple land...

        https://arstechnica.com/information-technology/2020/06/apple-fixes-bug-that-could-have-given-hackers-unauthorized-to-user-accounts/

        Software is growing ever more complex, and a lot of this stuff is buried under countless layers of abstraction.

        Sadly, since no-one has an army of infinite flying monkeys to thrash their way through every possible permutation of data and actions, some things are always going to be found reactively.

        And so we fix them, check to see if anything else has a similar issue, update our processes to catch any future examples, and move on.

        Or at least, that's the theory. Over in the real world, time and resource constraints can lead to some or all of the post-fix actions being skipped.

        And that's when we need to take note, or at least point and laugh.

        Because as the old saying goes, "fool me once..."

        1. RyokuMas
          Trollface

          Re: Almost...

          "Sadly, since no-one has an army of infinite flying monkeys to thrash their way through every possible permutation of data and actions, some things are always going to be found reactively."

          Can I quote you on that next time a WIndows vuln is reported then?

  3. iron Silver badge
    FAIL

    So effectively this is a memory overflow caused by not vallidating user input.

    What the hell do they teach programmers these days if they don't know not to trust user input.

    1. Anonymous Coward
      Anonymous Coward

      @iron - they teach them

      to copy and paste code from the Internet. Oh, and also how to look for and use the coolest languages, IDEs, frameworks and so on.

    2. the spectacularly refined chap

      Amazing how you can come to that conclusion completely on your own and then start criticising based on what is essentially an uninformed wild guess.

      User input has already been checked: the file has to have been parsed to identify the need for a colour space conversion. And based on the brief description in the article it doesn't sound like a buffer overflow. My hunch would be a maths issue, a division by zero or something like that.

      1. This post has been deleted by its author

    3. Terry 6 Silver badge

      Not even "user input" in as much as an error condition could be accidental and should be trapped. But shouldn't make a device fall over.

      1. Anonymous Coward
        Anonymous Coward

        @Terry 6

        That says a lot about the developer's skills. I'm sure he has an impressive CV but I would no longer trust him to touch anything in a source file except maybe the comments.

    4. Gene Cash Silver badge

      It's not a problem with validating user input... it's trying to convert a file to a format that it doesn't convert to, and not handing the resulting error.

      The original file is a perfectly good JPEG file, and it's not a user error to try to use it as a wallpaper.

    5. Anonymous Coward
      Anonymous Coward

      Gee, and I've been laughing at Javascript having an arcane thing like "Uint8ClampedArray". I mean, how would that help a decent programmer... oh.

    6. heyrick Silver badge

      "What the hell do they teach programmers these days"

      It's a methodology called "Agile", which when translated into plain English means "write any old crap that sort of works, and fix the bugs when they are found".

  4. Claptrap314 Silver badge

    Let's break this down

    1) Android uses a format for the background for which not all strings are valid.

    2) Android fails to validate inputs for the background.

    3) ????

    4) Profit!

    Yeah, Google's claim to hire the best programmers has gotten super-thin.

  5. Throatwarbler Mangrove Silver badge
    Coat

    Pics or it didn't happen

    n/t

    1. doublelayer Silver badge

      Re: Pics or it didn't happen

      Not to worry. You can determine the voracity yourself. Just download the image and try to use it as a wallpaper. You can get it from the linked tweet. I urge you to enable USB debugging and approve your computer before you try it though--it might help with the reset process. In fact, it's possible you might be able to use ADB to reset the wallpaper setting depending on how much access you have. No guarantees though.

      1. IGotOut Silver badge

        Re: Pics or it didn't happen

        Wooosh

  6. jake Silver badge

    "When Android tries to convert this image, the Y axis on the image histogram exceeds the limit of 256, creating a fatal exception and causing SystemUI to crash."

    Bounds checking? The goo kids have heard of it ...

    1. Brewster's Angle Grinder Silver badge

      In the good ol' days, we'd have written all over the stack and it'd've worked fine - mostly...

      Well there's this new-fangled thing called automatic bounds checking. If you try to access an out of range index it throws an exception and your code catches... Oh.

      Well, the worst that can happen is it safely takes out the process without corrupting memory. It can then be restarted and... Oh.

      Maybe we do need to think about this a bit more carefully. This error checking stuff is quite hard, isn't it?

  7. Anonymous Coward
    Facepalm

    Paint it Black

    Wallpaper is stupid. It makes icons harder to distinguish and any icons or widgets block parts of the wallpaper.

    Besides, it uses up resources better spent accessing El Reg and PornHub.

  8. Packet

    Fully enjoying the schadenfreude here on the absolute waste matter that is Android

  9. ThatOne Silver badge
    Facepalm

    So, a simple JPG can crash Android?

    Did I get it right, any JPG picture using a RGB color space crashes all Android versions?

    It's below script kiddie difficulty, it's "little sibling" level stuff. I expect floods of stunning "backgrounds for your phone" appearing as it must be the easiest way to ruin peoples' phones (and thus lives)...

    (Yes I know, it doesn't actually ruin the phone, but by resetting it you'll lose everything you had on it, which for most younger people is "everything".)

    1. YetAnotherJoeBlow

      Re: So, a simple JPG can crash Android?

      That is precisely why patches need to be taken away from the carriers and pushed by Google instead.

      Wow, that statement really pains me.

      1. Anonymous Coward
        Anonymous Coward

        Re: So, a simple JPG can crash Android?

        What?, the same Google who can't be arsed keeping their own products fully patched, and who've deliberately timebombed support for Chromebooks running Chrome OS (they don't tell you about the AUE on those updates you don't have to worry about in their shitty shiny ads for the things)

      2. heyrick Silver badge

        Re: So, a simple JPG can crash Android?

        Aren't they sort of doing that by stuffing all sorts of things into Google Play Services which updates itself (and happily ignores "only do this on WiFi"), in lieu of the carrier pushing out updates...?

      3. Anonymous Coward
        Anonymous Coward

        Re: So, a simple JPG can crash Android?

        I used to have a "prototype" phone - IMEI contained country code "testing" or something similar. (It was a pain to get Verizon to activate it, their systems said it didn't exist.) As it wasn't intended to be used by a consumer, the carrier didn't ever have patches for it. Ever. Not one single patch in the couple of years I used it. Having Google provide the patches would have been a significant improvement, and they're better about keeping an OS up to date than a carrier that just wants to sell you the newest phone.

        Pity it got broken, it was much better than my current phone.

    2. heyrick Silver badge

      Re: So, a simple JPG can crash Android?

      "any JPG picture using a RGB color space crashes all Android versions?"

      I wouldn't have thought it is that simple, there have been many Android versions and billions of phones and many many backdrops. And this has only turned up now in 2020.

      So, either its an unexpected side effect of COVID, or the JPEGs need to be a specific sort with colour values that, when translated to sRGB go out of range.

      Of course, now that the problem is known...

  10. myhandler

    Ah the Tweet thread is fun - full of people defying the instructions and seeing if it really 'works'.

    And then they video the result.

  11. Elledan
    IT Angle

    The cardinal sin of programming

    As they phrase it in software development courses, provided example code is usually devoid of all the error and bound checking that would be required in production code.

    Also, does this mean that nobody at Google ever in the history of Androd tried to test this 'app' with an RGB image? For a core service whose functioning determines whether a phone works or is just a useless brick stuck in an endless reboot loop?

    That seems hard to swallow, but then again, we are talking about software development here...

    1. doublelayer Silver badge

      Re: The cardinal sin of programming

      It looks like most RGB images will work because they will translate successfully. Only ones that go out of bounds during an RGB-SRGB conversion will cause the crash. I don't know what the conversion process looks like, but you can probably find the algorithm out there. Any RGB picture that pushes one of the components over 256 should do it.

      If you do find that algorithm, please replace any mathematical formulas with min(255,[original_formula]) and send that in to Google. I think that might earn you a nice job as best programmer on the core system UI team. If you want to go for the ultimate job security, you might prove to them that you can think ahead by doing a max(0,...) check as well.

  12. This post has been deleted by its author

  13. Anonymous Coward
    Anonymous Coward

    Does nobody else remember the SMS of Death (vintage 2010 or so)?

    https://www.theregister.com/2011/03/21/sms_of_death_explained/

    Compare and contrast.

    But not too much contrast otherwise the JPEG conversion might.... well, y'know.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like