Change Android System Language Using ADB – No Root Required

10 min read Learn a safe, step‑by‑step method to switch your Android device’s system language using ADB, without needing root access. September 26, 2026 21:00 How to Change Android System Language with ADB Without Root

Sometimes you pick up a new Android phone that ships with a language you don’t understand, or you travel abroad and want the UI in your native tongue. While the Settings app lets you change the language, the process can be hidden behind multiple menus on some OEM skins, and in a pinch you may not have time to navigate them. Using the Android Debug Bridge (ADB) you can switch the system language directly from a computer, without rooting the device.

Before you start

  • Charge your phone to at least 50 % – a reboot is required after the change.
  • Back up important data. Changing the locale does not erase data, but a failed reboot could leave the UI in an unexpected state.
  • Install ADB on your computer. You can download the platform‑tools package from the official Android developer site and extract it to a folder you can access from the command line.
  • Enable USB debugging on the device: Settings > About phone > tap Build number seven times, then go to Settings > System > Developer options and toggle USB debugging on.
  • Use a USB‑C or micro‑USB cable that supports data transfer, not just charging.
Note: The steps below work on Android 7.0 (Nougat) and newer. Older versions may require a different property name (persist.sys.language and persist.sys.country).

Step 1 – Verify ADB connectivity

  1. Open a terminal (Windows Command Prompt, PowerShell, macOS Terminal, or Linux shell) and navigate to the folder containing adb.
  2. Run adb devices. You should see a line like XXXXXX device. If the device shows as unauthorized, check the phone for a prompt asking to allow USB debugging and tap Allow.
  3. If no devices appear, try a different cable, enable “USB for file transfer” mode, and ensure the correct drivers are installed (Windows users may need the Google USB Driver).

Step 2 – List the locales supported by your device

Android stores a list of locale identifiers (e.g., en-US, fr-FR) that the system can switch to. Knowing the exact code prevents typos.

  1. Execute the command:
    adb shell "pm list locales"
    This prints a long, comma‑separated list of locale tags.
  2. Copy the tag that matches the language you want. For example, es-ES for Spanish (Spain) or de-DE for German (Germany).

Step 3 – Apply the new locale

The core command uses the setprop system property persist.sys.locale. Changing this property tells Android which language resources to load on the next boot.

  1. Run the command, replacing YOUR_LOCALE with the tag you copied:
    adb shell setprop persist.sys.locale YOUR_LOCALE
    Example for French (France):
    adb shell setprop persist.sys.locale fr-FR
  2. Immediately follow with a reboot so the system reads the new property:
    adb reboot

After the device restarts, the UI should appear in the selected language.

Step 4 – Verify the change

  1. When the phone boots, glance at the status bar, notification shade, or any system app (Settings, Clock). The text should be in the new language.
  2. If you want to double‑check via ADB, run:
    adb shell getprop persist.sys.locale
    The output should match the locale you set.

Alternative method for Android 6.x and older

Older releases store language and country in two separate properties. Use the following two‑step approach if persist.sys.locale has no effect.

  1. Set the language code (two‑letter ISO 639‑1):
    adb shell setprop persist.sys.language en
  2. Set the country code (two‑letter ISO 3166‑1):
    adb shell setprop persist.sys.country US
  3. Reboot the device with adb reboot.

Why this works without root

System properties prefixed with persist. are writable by the shell user, which ADB runs as. Android deliberately allows these properties to be changed for debugging and testing purposes. Because the change is stored in the persist namespace, it survives reboots, yet it does not require the elevated privileges that a true root user would have.

Common pitfalls and troubleshooting

  • Device reboots into a language you don’t understand – If you typed the wrong locale tag, the system may fall back to the default language (often English). Re‑run the steps with the correct code.
  • Property change is ignored – Some OEM skins (e.g., Samsung One UI, Xiaomi MIUI) block setprop for security. In that case, you may need to use the device’s own language picker or flash a custom ROM that respects the property.
  • ADB reports “permission denied” – Ensure you are using the adb shell prompt as shown. On some devices, the adb daemon runs in restricted mode; enabling “USB debugging (Security settings)” in Developer options can lift the restriction.
  • Phone gets stuck on boot screen – Rare, but a malformed locale can cause the framework to fail loading resources. Power off the device, then boot into recovery (usually Volume Up + Power) and select “Reboot system now”. The device will revert to the default locale.

Safety warnings

Warning: Changing system properties is safe when using the documented persist.sys.locale key, but experimenting with other setprop keys can render the device unusable. Stick to the commands in this guide.
Warning: If you rely on a language for accessibility (e.g., TalkBack), verify that the new locale still provides the needed support before discarding the old one.

Edge cases and advanced tips

  • Multiple language variants – Some languages have regional variants (e.g., pt-PT vs pt-BR). Choose the one that matches your keyboard layout and date formats.
  • Setting a language for a specific user – Android supports multiple users on a single device. To target a non‑primary user, first list users with adb shell pm list users, note the user ID, then prefix the setprop command with --user USER_ID.
    adb shell --user 10 setprop persist.sys.locale it-IT
  • Automating the switch – You can create a small batch or shell script that accepts a locale argument, runs the two commands, and reboots. This is handy for developers testing localization.
  • Verifying resource availability – Not all apps ship translations for every locale. After changing the system language, launch a few apps to see if they fall back to English; if they do, the app simply lacks that language pack.

Summary

Changing an Android device’s system language via ADB is a quick, root‑free method that works on most modern phones. By enabling USB debugging, listing supported locales, setting the persist.sys.locale property, and rebooting, you can switch to any language the device supports. The guide also covers older Android versions, common troubleshooting, and safety considerations, giving you a reliable workflow for on‑the‑fly language changes.

User Comments (0)

Add Comment
We'll never share your email with anyone else.