In my previous post – Android Enterprise Device Reboots On Its Own!, we discussed the weird issue with Android devices rebooting randomly. However, there is more surprise; continue reading further to find the root cause for your devices going spooky!
Initial Root Cause
As we discussed previously, a few applications were crashing, causing the device to reboot. On a detailed analysis of the logs, we found “mainline_update” as the reboot reason. This “mainline_update” is a request for a reboot due to an update of the Google main line, which is triggered by “vending(Play Store)” when there is a pkg to update.
This fixed the problem initially for us, but again after a few weeks, the Samsung phones continued to restart on their own!
Let’s Dig It Out
Alright, something is forcing this reboot, and the only way to find it is to wait for the device to reboot and capture the logs. So wait for a phone to reboot….⏱⏰⌚⏱
Luckily one of the Samsung phones rebooted while I was trying out something on it. And the time starts now! ⌛⏳
You have only 15 minutes to capture the dumpstate logs after a device has restarted. Below are the steps to collect the logs:
1. In the Phone Application, enter *#9900#
2. Set the Debug Level to Mid.
3. Wait for the device to restart.
4. Open the app you want to debug and reproduce your issue.
5. After reproducing your issue, enter *#9900# again in the Phone Application
6. Select Run dumpstate/logcat
7. Select Copy to sd card Navigate to the log directory created on the device using the My Files app or a Windows PC with a USB cable connection.
8. After you have finished, follow steps 1-3 again, delete dumpstate/logcat and return the Debug Level to low.
Step 1: Enable developer options on the Android device:
1. Go to Settings -> About phone.
2. Tap the Build number button seven (7) times.
3. Return to the previous screen to find Developer Options at the bottom. The Developer Options screen might be located or named differently on some devices.
4. Open the Developer Options page and scroll until you find USB Debugging and toggle it Enabled.
5. Once complete, connect a USB cable from your PC to the device. If this is the first time the device has been connected, a popup will appear asking if it’s OK to allow debugging. Select Allow and select the box to Always allow.
6. This will enable a connection between your computer and the connected Android device.
Step 2: Collect the ADB log through a windows machine:
2. Select Download SDK platform -> Tools for Windows.
3. Unzip the downloaded package.
4. Open a Command Prompt as administrator (Run as administrator).
5. Type cd “<location of unzipped package>.” It should look something like this:
6. Run the following command in the ADB console to enable verbose logging (single line):
adb logcat -G 32M; adb shell setprop persist.log.tag.dpcsupport VERBOSE; adb shell
setprop persist.log.tag.clouddpc VERBOSE; adb shell setprop persist.log.tag.Finsky
VERBOSE; adb shell setprop persist.log.tag.Auth VERBOSE; adb shell setprop
persist.log.tag.Volley VERBOSE; adb shell setprop persist.log.tag.PackageManager
7. adb devices <—- Copy the device ID.
8. Run adb -s “<paste device id>” bugreport <path for copying the bug report on your PC>. It should look something like this:
adb -s abc123xyz bugreport E:\bugreport
- The first step in the troubleshooting was to check for the reason for the device reboot. This time the dumpstate logs had some interesting error messages, but none of them was clear enough to state the reason for the reboot:
2. We know that some application or service is crashing and eventually rebooting the phone. So we have to find that service that crashes with the error code “debug0x494d” or “enterprise“.
3. We now know the error code, boot reason, and the entire sequence of steps when the service crashes. But what is causing is still not known. When looking for the debug logs, I was able to find that the user toggled the flight mode, and then it started crashing:
4. I thought, “Seriously???” can Wi-Fi cause the device to reboot?
But when I checked another device’s log, it was the same. So it was evident that it is random behavior that when the device(s) tries to change the Wi-Fi connection, it goes through a SOFT REBOOT.
When I researched further into this, I found out that it has been a problem with Android 12 since starting, and a few patches were released as OTA, but it didn’t help.
What confirms this more is the recent release notes of Android 13, which confirm that this was a problem and has been fixed in the new release.
Please try to find the logs in your Android devices, and please let me know if you also find the same.