Android8.1 MTK平台 修改系统默认语言和默认输入法

一、默认语言

方法一

路径 \device\公司名字\项目名字\full_项目名字.mk

公司名字 看你的平台 mtk、rk

项目名字 看你的out/target/product/ 文件夹名称

PRODUCT_LOCALES := en_US zh_CN zh_TW es_ES pt_BR ru_RU fr_FR de_DE tr_TR vi_VN ms_MY in_ID th_TH it_IT ar_EG hi_IN bn_IN ur_PK fa_IR pt_PT nl_NL el_GR hu_HU tl_PH ro_RO cs_CZ ko_KR km_KH iw_IL my_MM pl_PL es_US bg_BG hr_HR lv_LV lt_L

将你要设置的默认语言移到第一位,一般大多是 zh_CN

方法二

路径 \build\tools\buildinfo.sh

找到变量 ro.product.locale 将其修改为你要默认的语言

if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
  echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
fi

这是系统原来的写法,就是读取默认的语言,直接将其注释进行赋值

echo "ro.product.locale="zh-CN""

注意中间是中横线,不是下划线,不然不生效的

方法三

此种方法我并未进行验证

路径 \build\target\product\full_base.mk

# Put en_US first in the list, so make it default.
PRODUCT_LOCALES := en_US

看注释就知道是将第一位的语言设置为默认语言

相对应的语言列表文件为

\build\target\product\locales_full.mk

\build\target\product\languages_full.mk

若你烧录的是工程版本,可通过 修改 build.prop 文件,重启查看效果

adb pull /system/build.prop
修改 ro.product.locale=zh-CN
adb push
adb shell chmod 0755 /system/build.prop
adb shell setprop ro.product.locale “zh-CN”
adb reboot
查看设置的语言值 adb shell getprop ro.product.locale

二、默认输入法

修改如下两个位置

vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml


com.android.inputmethod.latin/.LatinIME:com.bingime.ime/.BingIme

com.bingime.ime/.BingIme

ps:com.bingime.ime/.BingIme 这个串取决于你用的输入法,我这里是必应输入法,你可以通过反编译输入法apk,从 AndroidManifest.xml 中获取这个串,对应 service 的类名


    
        
    
    

vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadSecureSettings(SQLiteDatabase db) {
    SQLiteStatement stmt = null;
	try {
        stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)"
                + " VALUES(?,?);");
	....

	loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS, R.string.enabled_input_methods);
    loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD, R.string.config_default_input_method);

	} finally {
        if (stmt != null) stmt.close();
    }
}

你可能感兴趣的:(Android8.1,源码修改)