A bug in the new "Adaptive Icons" feature introduced in Android Oreo has sent thousands of phones into infinite boot loops, forcing some users to reset their devices to factory settings, causing users to lose data along the way.
The bug was discovered by Jcbsera, the developer of the Swipe for Facebook Android app (energy-efficient Facebook wrapper app), and does not affect Android Oreo (8.0) in its default state.
The bug occurs only with apps that use adaptive icons — a new feature introduced in Android Oreo that allows icons to change shape and size based on the device they're viewed on, or the type of launcher the user is using on his Android device. For example, adaptive icons will appear in square, rounded, or circle containers depending on the theme or launcher the user is using.
The style of adaptive icons is defined a local XML file.
The bug first manifested itself when the developer of the Swipe for Facebook Android app accidentally renamed the foreground image of his adaptive icon with the same name as this XML file (ic_launcher_main.png and ic_launcher_main.xml).
Jcbsera did not catch the bug during development because he tested his app's new version only inside the Android emulator provided by the Android Studio application. The bug did not manifest in the same way in the emulator as on a real device.
It was only after the developer pushed the update to his users that he noticed and discovered the bug after users started flooding his Play Store page with crash complaints and bad reviews.
"[The two files with the same name] created a circular reference, which Android Studio didn't seem to pick up on," the developer wrote in a bug report to Google.
"What happened as a result was that SystemUI kept on crashing, as well as the phone's launcher (Pixel Launcher, as well as other launchers that support Adaptive Icons), not letting people even get to their launcher - let alone go into Settings to uninstall my app, eventually leading the phone to restart and the same thing would happen over and over again, causing a bootloop," he added.
"This did not require them actually opening my app, but simply having my app installed would cause the bootloop," Jcbsera said.
This behavior opens the bug to abuse from pranksters and Android ransomware developers.
"The only solution was to uninstall the app via adb (if you were lucky to get in there in time before the phone restarted AND also have USB debugging enabled), but eventually you would get prompted by Android to do a factory reset, which to the dismay several thousand users of my app - had to do," Jcbsera said.
In the meantime, the developer released a new version of the Swipe for Facebook app that does not crash Android Oreo devices.
Android developers told Jcbsera they plan to fix the bug in Android Orea's upcoming 8.1 release.
Days after Google released Android Oreo, users also found a bug in Google's new mobile OS that bypassed WiFi connections and kept using mobile data for Internet connectivity, creating additional financal costs to users.