Affiliate links on Android Authority may earn us a commission. Learn more.
The best secret codes for Android phones
While iOS has its advantages, the ace in Android‘s deck is customization. Because there are fewer walls in place, you can make it do more, sometimes in ways phone makers never intended. There is in fact a collection of “secret codes” for Android — and now that you’re curious, we’ll explain what they are, how to enter them, and the best ones to try.
What are secret codes for Android phones?
As you’d expect, these are codes that unlock hidden features on your device. Usually they’re not especially sexy, either triggering carrier functions, or diagnostics when a particular piece of hardware or software misbehaves. Some of these can be useful in your daily life however, and others are just fun to experiment with when you have nothing better to do.
There are two main categories. MMI (Man Machine Interface) codes are set by smartphone makers, and unlock features within Android itself. Some may only work with specific devices or forks of Android, but many will work on any version of the OS. USSD (Unstructured Supplementary Service Data) codes are associated with carriers, which means you need an active cellular connection.
Below are links to USSD codes for the three major US carriers. We’re avoiding anything carrier-specific in our best-of list, since of course someone using Vodafone in Europe or Telus in Canada isn’t going to find T-Mobile codes very helpful.
How to enter secret codes on Android
Regardless of whether it belongs to the MMI or USSD category, you can enter any secret code using the phone dialer app. The trick is that they typically start with an asterisk (*) and end with a pound sign (#), which tells the app that you’re not trying to call someone.
The best secret codes for Android phones
Realistically you’ll probably only care to know one or two of these, but that might change, in which case you can always come back here. We’ll be updating this list if we change our priorities and/or learn about any new codes. Android is continually evolving, after all.
Be aware that some of these codes might not work on your particular Android phone, but it shouldn’t hurt to try them.
Get your device’s IMEI number — *#06#
While it might not seem exciting at first, the IMEI (International Mobile Equipment Identity) for your phone can be extremely important. Think of it as your phone’s “fingerprint” on cellular networks, which can help with tasks like carrier activation or blocking a device if it ends up lost or stolen. You should try using Google’s Find My Device platform first, assuming that’s an option in your situation.
Show phone info and usage data — *#*#4636#*#*
This is one of the harder codes to remember, but it’s a way of gathering otherwise scattered pieces of info such as your IMSI (International Mobile Subscriber Identity) number, or the details of your cellular connection including precise signal strength and current upload and download speeds. Available usage data includes things like your battery and the last time various apps were used.
Show your MAC address — *#*#232338#*#*
A MAC (Media Access Control) address fingerprints your device on a local network. Normally this is something you don’t need to worry about, but some people like to hide or change their MAC addresses to maximize privacy and improve their defenses against hacking. The good news is that Android and iOS have been randomizing this info since Android 10 and iOS 14, but you might still want to know your MAC address to diagnose networking issues, say if your phone is unintentionally being blocked by your Wi-Fi router.
Toggle caller ID — *31#
Speaking of privacy, this code can prevent your caller ID from going out over the airwaves. Keep in mind that this can be a double-edged sword, since some people choose to block unidentified callers as a way of reducing spam. If someone you know has decided to do this, you won’t be able to call them until they change their settings or you flip your caller ID back on.
Toggle call waiting — *43#
There’s a good chance you’ve already got call waiting on, but if not, you should probably activate it to be notified when someone tries to call you while you’re in the middle of another conversation. On the other hand, some people can find the feature distracting or simply unnecessary, in which case you can use this code to disable it.
Perform a factory reset — *#*#7780#*#*
We can’t stress enough that you should always use other troubleshooting methods before resorting to a factory reset. You’ll have to set your phone up again as if it were new, which is made somewhat easier via Google accounts and backups, but remains a time-consuming process that omits any data created since your last backup sync. Even if you do want to perform a reset, there are built-in Settings options that are easier to remember than this code. It’s just nice to have a fallback.
Test vibration and backlight functions — *#*#0842#*#*
Really, there’s almost never a need for non-technicians to bother with this, but it could potentially trigger some entertaining vibration and lighting effects. It might also speed up repairs if it diagnoses an issue before you bring in your phone.
Test your Wi-Fi connection — *#*#232339#*#*
Concerned that your Wi-Fi isn’t operating properly? It’s probably better to test using a dedicated app from the Google Play Store, since the information will be clearer, but those apps are pulling data from the same sources this code uses. If there’s nothing obviously wrong with your phone, be sure to test your router and/or modem too.