Android Developer Options Complete List (Explained)
Anytime you search for a rooting guide for an Android device, you’ll almost always see instructions to unlock the hidden Developer Options, and then enable USB Debugging or OEM Unlocking. But what about all the other options in this menu? The Android settings don’t explain these features in detail—so that’s exactly what I want to cover today. Below is a comprehensive, plain-English overview of the settings you’ll find in Developer Options. I’ll explain what they do, and how they could help—or potentially harm—your phone.
I’ve tried to include as much as possible, but the options may differ depending on your phone model or brand. If you notice a Developer Option on your device that isn’t listed here, please mention it in the comments so I can include it after further research.
Main Options
- Take bug report: Pressing this gathers your device’s current log files and packages them so you can send them, for example, by email to someone who can help troubleshoot your issue.
- Desktop backup password: This sets a password for any backups you create through ADB (Android Debug Bridge). Without this password, the backup can’t be restored on your device.
- Stay awake: This keeps your screen on while charging, which can be helpful for testing but might shorten your screen’s lifespan or cause screen burn-in over time.
- OEM unlocking: This allows your bootloader to be unlocked—a necessary step if you want to root your phone or install a custom ROM. However, if your carrier or manufacturer has locked the bootloader, simply turning on this option may not be enough. But it’s usually the first step in the process.
- Enable Bluetooth HCI snoop log: This is mostly for developers and security experts. It records Bluetooth data exchanged between your device and other devices so you can analyze it later. You’ll find the log file in a folder like
/sdcard/btsnoop_hci.log
. - Select USB Configuration: This lets you set the default USB connection mode, though it’s usually overridden by other settings. One option you may notice is “Audio Source.” Setting “USB Configuration: Audio Source” allows your phone to connect to USB audio devices, like a USB DAC (digital-to-analog converter). It doesn’t send audio to your PC over USB; it’s only for connecting to compatible audio accessories.
Debugging Options
- USB debugging: This lets your Android phone communicate with your computer through the Android Debug Bridge (ADB). Without USB debugging enabled, you won’t be able to send ADB commands from your computer to your device.
- Revoke USB debugging authorizations: Using this will remove all saved computers that you’ve trusted for USB debugging. It’s similar to clearing a WiFi password so your phone “forgets” that network.
- Power menu bug reports: With this on, you’ll see an option in your phone’s power menu to collect and send a bug report.
- Allow mock locations: This allows you to use fake location data on your device, which can trick most apps into thinking you’re somewhere else. Some apps (like Google Play) may still detect your location using your SIM card or mobile data, especially if you aren’t using a VPN.
- Select mock location app: Instead of “Allow mock locations,” some devices will have this. It lets you pick a specific app to control your device’s fake location.
- Select debug app: This option lets you choose an app to debug. It’s useful for developers who want to test their own apps more thoroughly.
- Wait for debugger: After selecting a debug app, turning this on will keep the app from running until you attach a debugger tool. This is useful when testing apps for errors.
- Verify apps over USB: This allows Google to scan apps you install from your computer (using ADB) for harmful behavior. It’s a helpful security feature if you’re installing apps that aren’t from the Play Store.
- Show touches: When enabled, a visual circle will appear wherever you touch the screen. It’s great for troubleshooting touch issues or making how-to videos.
- Pointer location: Displays a bar at the top showing the coordinates of where you last touched the screen.Helpful for testing touch accuracy.
- Show surface updates: This flashes the edge of app windows when their contents update, useful for developers to spot screen changes.
- Show layout bounds: Marks the edges of every on-screen layout so you can see precisely where touches are being registered. Handy for spotting hidden widgets or layout errors.
- Force RTL layout direction: Forces the layout direction to right-to-left for testing how apps work in languages like Arabic or Hebrew.
- Window animation scale: Adjusts how quickly window animations play. Lower values speed things up; some retail demo phones use very low settings to make devices feel snappier.
- Transition animation scale: Similar to window animation scale but for screen transitions. Again, lower values make transitions faster.
- Simulate secondary displays: Developers can use this to test how their apps look on devices with different screen sizes. It can be a bit unstable.
- Force GPU rendering: Forces apps to use your device’s graphics processor (GPU) for 2D drawing, which can improve performance for some apps but cause issues for others.
- Show GPU view updates: Highlights areas where the GPU is redrawing the screen by flashing them red. Mainly for diagnosing performance issues in apps.
- Show hardware layer updates: Shows when different layers of an app’s view are updated using hardware. Useful for app development and troubleshooting.
- Debug GPU overdraw: Overdraw is when your device draws the same screen area multiple times, which can slow things down. This option helps you see where that might be happening.
- Force 4x MSAA: Turns on 4x multisample anti-aliasing in OpenGL ES 2.0 apps, smoothing out jagged edges in 3D graphics but possibly lowering performance.
- Strict mode enabled: Flashes the screen when an app does too much work on the main thread, helping developers spot performance bottlenecks.
- Show CPU usage: Adds a small overlay to your screen displaying current CPU usage, useful to see if an app is using too much power or slowing things down.
- Profile GPU rendering: Adds a bar graph that shows how hard the GPU is working, either on screen or in a file. Interesting for measuring graphics performance.
- Enable OpenGL traces: Logs OpenGL activity and errors for debugging. Regular users don’t usually need to use this.
- Don’t keep activities: Forces apps to close completely as soon as you leave them. This is mainly for testing, but it can really hurt performance and battery life, since apps have to restart every time instead of running in the background. It’s similar to why “RAM cleaner” apps are generally not recommended.
- Background process limit: Lets you set how many background processes can run at once. If you aren’t sure what this does, it’s best to leave it at the default setting.
- Show all ANRs: Makes every app—foreground or background—show “App Not Responding” (ANR) messages when they freeze up. This can help spot if one app is hanging up others.
Networking Options
- Aggressive Wi-Fi to Cellular handover: With this enabled, your device will quickly switch to mobile data whenever it detects a weak Wi-Fi signal, which can help keep your connection stable.
- Always allow Wi-Fi Roam Scans: Your device will continuously look for open Wi-Fi networks, even when the screen is off. This is useful if you want your phone to automatically connect as you move through different areas, such as when you’re traveling down a street full of open Wi-Fi hotspots.
- Cellular data always active: Keeps your mobile data connection active at all times, even if you’re connected to Wi-Fi. It works well with “Aggressive Wi-Fi to Cellular handover” for seamless internet switching.
Media Options
- Disable USB audio routing: Turns off automatic routing of audio through USB peripherals like a USB DAC, so sound will continue to go through your device’s regular speakers or headphone jack unless you manually select a USB audio device.