Skip to content

System Language

This chapter describes how to modify the system language and the default language at factory reset in Android.

Runtime Modification

The following methods allow you to change the system language during runtime. After a factory reset, the system reverts to the default language.

Via ADB command

adb shell setprop persist.sys.locale zh-CN
adb reboot

Via System Settings

Settings → System → Languages & input → Languages

SDK Build Configuration

To permanently set the default language, you can modify the SDK source code. After building and flashing, the default language will be fixed.

For example, on K1 (RK3568), add the persist.sys.locale property in the corresponding configuration file:

--- a/device/rockchip/rk356x/rk3568_t/rk3568_t.mk
+++ b/device/rockchip/rk356x/rk3568_t/rk3568_t.mk
+
+PRODUCT_PROPERTY_OVERRIDES += persist.sys.locale=zh-CN

For other boards, find the corresponding configuration file in the table below and add the same line:

Model SoC SDK Configuration File
K1 / K1B RK3568 rk-android13.0 device/rockchip/rk356x/rk3568_t/rk3568_t.mk
K1 MINI RK3568 rk-android13.0 / rk-android14.0 device/rockchip/rk356x/rk3568_t/rk3568_t.mk
K2B / K2C H618 h618-android12.0 device/softwinner/apollo/apollo_p2.mk
K3 RK3562 rk-android13.0 device/rockchip/rk3562/rk3562_t/rk3562_t.mk
K3B RK3562 rk-android13.0 / rk-android14.0 device/rockchip/rk3562/rk3562_t/rk3562_t.mk
K5 / K5C A133 a133-android10.0 android/device/softwinner/ceres-c3/ceres_c3.mk
K7 / K7C / K7S_K7F RK3576 rk3576-android14.0 device/rockchip/rk3576/rk3576_u/rk3576_u.mk
K8 RK3588 rk-android13.0 device/rockchip/rk3588/rk3588_t/rk3588_t.mk
K8D RK3588S rk-android13.0 / rk-android14.0 device/rockchip/rk3588/rk3588s_t/rk3588s_t.mk
K9 T527 t527-android13.0 device/softwinner/saturn/t527-demo/device-common.mk
K10B A733 a733-android13.0 device/softwinner/jupiter/a733-demo-aiot/device-common.mk
K11C RK3566 rk-android13.0 / rk-android14.0 device/rockchip/rk356x/rk3566_t/rk3566_t.mk
TX66 RK3566 rk-android13.0 device/rockchip/rk356x/rk3566_t/rk3566_t.mk

Alternative Methods

The following methods also work but have lower priority and are usually not necessary to configure.

Using persist.sys.language and persist.sys.country

--- a/.../device.mk
+++ b/.../device.mk
+
+PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
+    persist.sys.country=CN \
+    persist.sys.language=zh

Using PRODUCT_LOCALES

--- a/build/target/product/full_base.mk
+++ b/build/target/product/full_base.mk
@@ -1,2 +1,2 @@

- PRODUCT_LOCALES := en_US
+ PRODUCT_LOCALES := zh_CN