I was looking forward to using per-app languages with Android 13.

However, my OnePlus 8T does not feature the necessary settings item for that on OxygenOS 13.

Is it possible to set a different language with an adb shell command?

adb shell settings get global settings_app_locale_opt_in_enabled returns null, so I'm not sure if it's even implemented at all.

Smartphone is rooted with Magisk.

2 Answers 2


9R user here. my native lang is ua, but I mainly use en. wanted to set ua for one particular app and also was seeking for this option. it seems that oneplus turned it off


$ ~/w/own [255]> adb shell settings put global settings_app_locale_opt_in_enabled false

Exception occurred while executing 'put':
java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:2562)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1562)
    at com.android.providers.settings.SettingsProvider.insertGlobalSetting(SettingsProvider.java:1516)
    at com.android.providers.settings.SettingsProvider.call(SettingsProvider.java:495)
    at android.content.ContentProvider.call(ContentProvider.java:2511)
    at android.content.ContentProvider$Transport.call(ContentProvider.java:525)
    at com.android.providers.settings.SettingsService$MyShellCommand.putForUser(SettingsService.java:384)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:280)
    at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
    at android.os.ShellCommand.exec(ShellCommand.java:38)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:1073)
    at android.os.Binder.onTransact(Binder.java:901)
    at android.os.Binder.execTransactInternal(Binder.java:1331)
    at android.os.Binder.execTransact(Binder.java:1268)
$ ~/w/own [255]> 
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Jan 6, 2023 at 16:40
  • Alright, that confirms it. My solution in the meantime has been LineageOS 20.0, which was release just before 2023. It supports the native per-app-language which works well one you disable the opt-in setting.
    – towe
    Jan 6, 2023 at 17:11

just attempt to delete the setting and create it afterwards.

delete settings:

adb shell settings delete global settings_app_locale_opt_in_enabled                                                                       
Deleted 0 rows

create it and assign the value:

adb shell settings put global settings_app_locale_opt_in_enabled false

confirm it's in place:

adb shell settings get global settings_app_locale_opt_in_enabled                                                                                

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .