一、问题描述
在plf文件中添加了ro.product.locale.language和ro.product.locale.region的sdm值,perso定制不生效
二、问题分析
在frameworks/base/core/jni/AndroidRuntime.cpp中,
const std::string productLocale = getProperty("ro.product.locale", "")
if(!productLocale.empty()) {
return productLocale;
}
return productLanguage + "-" + productRegion;
因为获取到的productLocale不为空,所以直接return,下面的return productLanguage + "-" + productRegion;不会执行,故定制不生效。修改如下:
if(!productLocale.empty() || productRegion.empty()) {
if(!productLocale.empty()){
return productLocale;
}else {
return "en-US";
}
}