Most Samsung Galaxy owners think they know their phone inside and out. They've tweaked the display settings, turned on Dark Mode. And maybe even enabled Developer Options. But there's a hidden layer of control that few users ever discover: the secret dial codes. These numeric sequences, entered into the Phone app just like a number, unlock diagnostic menus, hardware test suites. And system‑level toggles that are otherwise buried. One code alone can reveal your battery's true health, another lets you bypass Android's USB mode restrictions - and neither requires root access.
In this article, I'll walk you through six of the most useful Samsung hidden dial codes I rely on daily. Some are well‑known among repair technicians, others are obscure even to power users. But every single one has saved me time, opened up debugging capabilities. Or exposed information I couldn't find anywhere else in the settings. I'll also explain exactly what each code does, when you should use it. And - equally important - when you should avoid it.
Before we dive in, a quick word of caution: these codes are not toys. They talk directly to the modem, the bootloader, and the radio stack. Using them carelessly could trigger unintended side effects - like a crash dump or a modem reset. That's why you should treat them like any other developer tool: know what you're doing. Or test on a device you can afford to clean‑flash. Let's start.
1. The All‑in‑One Hardware Test Suite: #0#
If you only learn one Samsung dial code, make it this one. #0# launches the Advanced Service Menu, a graphical interface that lets you test almost every hardware component on the device. You can check the LCD for dead pixels, verify the multi‑touch sensor (up to 10 touches), test the front and rear cameras, the speaker and earpiece, the microphone, and even the vibration motor.
I've used this code countless times when diagnosing second‑hand phones or verifying repairs. After replacing a cracked display, running #0# is the fastest way to confirm that the new panel has no stuck pixels and that the touch digitizer registers inputs across the entire screen. The menu also includes a sub‑test for the proximity sensor - useful if you suspect the phone isn't dimming during calls correctly.
Pro tip: While inside the service menu, you can toggle the phone into "Speaker ON" mode to test the receiver and loudspeaker simultaneously. There's also a "Receiver" test that isolates the earpiece. If any component fails, you'll see a clear red indicator, making this an invaluable first step before flashing firmware or claiming warranty service.
2. Battery Health at Your Fingertips: #0228#
Android's built‑in battery settings only show a rough percentage and estimated usage. For real telemetry - voltage, temperature. And wear level - you need #0228#. This code opens the Battery Status menu, displaying the current battery voltage (in millivolts), the charging source (USB, AC. Or wireless). And a "Cycle" counter that measures the battery's health.
I always run this code on a new Galaxy phone to establish a baseline. A healthy Li‑ion battery should read around 3. And 8-42 V when fully charged. If the voltage is above 4, while 3 V or below 3. 3 V, the battery may be degraded or have an unbalanced cell. The "Cycle" value is less documented: it increments each time the battery discharges below a certain threshold and charges again. Manufacturers don't publish the exact algorithm, but in my experience, values above 500-700 cycles indicate significant wear.
⚠️ Note: Do not tap "Quick Start" in this menu unless you're ready to recalibrate your battery gauge. It triggers a full reset of the fuel gauge chip. Which can cause the phone to misreport charge for several charge/discharge cycles. I've bricked a friend's Galaxy S21 by accidentally tapping it - the phone dropped from 70% to 5% in seconds and then shut down. Only after three full charge cycles did the gauge stabilise.
3. Firmware Versions Without ADB: #1234#
Most users who flash custom ROMs or official updates rely on "About Phone" to see the build number. But that screen often lumps AP, CP. And CSC into one opaque string. #1234# (or alternatively #12580369#) displays each firmware component separately: the application processor (AP), the modem/baseband (CP), the consumer software customisation (CSC). And the bootloader (SECURE CHECK). I use this code before and after every firmware update to verify that all three components match the intended build.
For instance, after flashing a new One UI version with Odin, the CSC sometimes fails to update if you skip the "HOME_CSC" step. Running #1234# immediately shows if the CSC is still on the old revision. A mismatch can cause boot loops or missing carrier features. Developers contributing to LineageOS for Samsung devices rely on this same menu to confirm the bootloader version before attempting to unlock it.
4. Swapping USB Modes on the Fly: #0808#
Every Samsung Galaxy has a hidden USB Configuration screen behind #0808#. Here you can change how the phone talks to your computer without digging into Developer Options. The menu lists presets like "MTP + ADB," "CDC ACM" (for serial debugging), "Modem," and even "RNDIS" (USB tethering without a native driver).
This code is a lifesaver when ADB stops working because Windows misidentified the device as a generic media player. I've used it in the field while debugging a custom kernel that had broken MTP. By switching to "Modem" mode and then back to "MTP + ADB," the system reloads the USB driver stack - fixing the connection instantly. It's also the recommended method for enabling the "DM+Modem" port used by Samsung's proprietary tool SamFirm to read / write firmware partitions.
Developer note: If you're building AOSP‑based custom ROMs and your Galaxy phone's MTP isn't recognised, try setting the USB mode to "MTP only" (without ADB) via this menu. I've seen cases where ADB overrides MTP enumeration on the Windows side, and disabling ADB in this menu forces the system to initialise a clean MTP device stack.
5. Debugging with the System Dump: #9900#
When your Galaxy phone starts acting up - random reboots, app crashes, or kernel panics - the most actionable tool is a system dump. #9900# launches the sysdump menu, which copies critical log files (logcat, kernel logs, crash reports, and radio buffers) to the internal storage. From there you can pull them via ADB or transfer them to your PC for analysis.
In my role maintaining an Exynos‑based Galaxy for a test farm, I've used this code more than any other. When a specific app triggers a modem crash, the radio log (rild log) captured by this dump reveals the exact AT command that caused the stack to fall over. I've even found that the dump file includes the output of dmesg, which can show memory allocation failures or I²C bus errors that aren't visible to userspace logs.
Two warnings: (1) The dump can be large - expect files between 50 and 200 MB - so ensure you have enough free space. (2) Do not enable the "Dump mode" sub‑option unless you intend to trigger a purchase or debug a modem hang. It forces the modem to enter a diagnostic state that requires a reboot to exit, and can break your mobile data until the phone restarts.
6. Touch Firmware Client Info: #2663#
Ever wondered which touch controller driver your Galaxy S23 is running? #2663# opens the Touch firmware version screen. It shows the current firmware version of the touch IC (from Synaptics or Goodix, depending on the model). This is obscure but invaluable when you're hunting down phantom touches or unresponsive areas.
I once had a Galaxy Note20 Ultra that would occasionally register random taps in the navbar region. After consulting Samsung's OTA changelogs, I discovered that an update had shipped a buggy touch firmware. Using #2663#, I verified that my device was still on the old version. I then forced a firmware update via Samsung Members (it downloads the latest touch FW on the next restart). The problem vanished. Without this code, I would have blamed the digitizer hardware and sent the phone for repairs unnecessarily.
Frequently Asked Questions About Samsung Dial Codes
1, and will dial codes void my warranty
No. Dial codes that read system information without modifying any parameters don't void the warranty. Codes like #0# and #1234# are intended for service centres. However, modifying USB modes or triggering a sysdump may be logged in the phone's internal non‑volatile memory. Samsung typically only checks warranty eligibility based on Knox tripping, not dial code usage,
2Do these codes work on all Samsung Galaxy models?
Most codes work on Exynos and Snapdragon variants of Galaxy S, Note, A. And M series. Older models (pre‑Android 9) may use slightly different codes for some functions. The list above has been tested on One UI 5. 1 and 6. And 0 (Android 13-14)If a code doesn't respond, it may be carrier‑locked or disabled in the region's firmware.
3. Can I access dial codes from a non‑Samsung dialer?
Yes. The codes are processed by the Android Telephony framework, not by the Samsung Phone app specifically. Google Dialer - Google Voice. Or custom dialer apps will work as long as they support USSD / MMI codes. Simply tap the keypad and enter the code as you would on the stock dialer.
4. I entered #0228# and now my battery percentage is stuck. What happened?
You likely tapped "Quick Start" or "Battery Calibration. " This resets the fuel gauge's state‑of‑charge algorithm, causing a temporary mismatch between reported percentage and actual charge. Let the battery drain fully (until the phone shuts down) and then charge uninterrupted to 100%. Repeat two or three times to restore normal behaviour. If the issue persists, a factory reset may be required.
5. Are there any dial codes that can damage my phone.
Yes, a few codes
Need a Custom App Built?
Let's discuss your project and bring your ideas to life.
Contact Me Today →