MIUI国际版本地化(添加银联,公交卡,负一屏)

MIUI作为一个老牌国产UI拥有优秀的本地化功能(PAY,骚扰拦截,节假日提醒,etc.)以及流畅的过渡动画和较为舒适的操作逻辑(见仁见智)
但其大量的广告及怪异的非原生设置是有些人无法忍受的.于是,在取舍舒适与便利的时候,我们发现了一个成年人的选项:
我全都要


随着 MIUI 版本迭代,文中大部分软件已经老旧,如有需求可在官方包中自行提取
本文蓝奏云密码皆为 MIUI


ROM 推荐 (2020.03.13 更新)


对于本地化支持较好的MIUI官改为MIROOM,对 build.prop 中的改动也全部支持;而 EU ROM则更贴近原生,注意 build.prop 中不要修改 ro.product.mod_device=xxx 这一行 (应该找不到该选项).

注意, MIROOM 的刷入请配合 MIROOM 开发组自己的 TWRP 否则会报错

(2020.03.17 更新) 正确顺序:刷入MIROOM后,重启至Bootloader将 TWRP 切换为官方版本,重启至 TWRP ,刷入 Mipay & 负一屏 ,重启至系统.否则刷入本地化相关组件时会报错


本地化相关储备 (2020.07.09 更新)


制作 Magisk 模块

下载 Magisk 模块模板,解压后得到系列文件
将需要刷入的文件如下图放入 /system 中:

修改 config.sh 文件,其中 print_modname 决定在刷入 Magisk 模块时会显示的内容,可以自行修改
将文件第 57 行的 REPLACE 修改为 REPLACE_EXAMPLE(这里应该是汉化时的失误),然后在最后【自定义函数】的位置插入如下内容:

on_install() {
ui_print "- Extracting module files"
unzip -o "$ZIPFILE" 'system/*' -d $MODPATH >&2
}

到此,将整个模板目录打包为 .zip 格式刷入即可,为避免错误建议选择不压缩,如果有兴趣可以修改 module.prop 更改模块在 Magisk Manager 中的展示效果

注意,文件的放入要根据其在 ROM 包中的具体位置决定,例如 Mipay 在 /system/app 中而负一屏在 /system/priv-app中,且只要遵循相关路径,文中所提供的一切本地化文件皆可用 Magisk 形式完成刷入

部分资源下载

MIUI12 开发版
MIUI12 MI-room 开发版
Windows下直接查看 .img 文件工具
MIUI 解包工具(请尽可能在虚拟机中运行)


应用本地化


小米钱包本地化&负一屏本地化

基本可以参照这位老哥的文档MIAPY-EXTRACT
大致操作:把国内版ROM丢进去运行extract.bat得到MIPAY卡刷包
修改extract.bat键值:在PATH=$PWD/tools/win32/bin bash extract.sh后加入 " --appvault" 字样,再次打开得到负一屏卡刷包(2019.07.16 更新)

直接刷入得到的两个包即可

由于 MIUI11(Android P) 开始 system 分区改成动态分区,直接刷入相关包会发生错误,这里推荐将其制作成 Magisk 模块刷入,方法上文已给出


快应用本地化(负一屏点击快递可以登录菜鸟)

需root权限,下载快应用.zip解压后,将HybridAccessory,HybridPlatform这两个文件夹复制到~/system/app路径中,权限设置为0755,重启


小爱同学本地化

直接安装小爱同学引擎和小爱同学app

人工智障这东西目前还是用处不大


应用商店本地化

直接安装 MIUI 应用商店即可


通话(添加黄页及防骚扰) & 短信本地化(增加验证码复制,消息分类等)&安全中心本地化(增加了QQ微信专清及游戏工具箱功能)&日历(农历及 EU 版修复) .etc

修改build.prop,文件路径 ~/system
先备份该文件(以防不测),修改片段如下,逐条搜索修改即可

ro.product.locale=zh-CN
ro.miui.region=CN
ro.miui.cust_variant=cn
ro.product.locale.language=cn
ro.product.locale.region=CN
ro.miui.mcc=9454 (显示农历)

然后找到 ro.product.mod_device=xxx 这一行,在前面加一个 # 把它注释掉,保存重启即可。

如遇无法开机请在 TWRP 中授予 build.prop 0755 权限后重启.重启后如果手机没信号,稍安毋燥,等个十分钟,后面就好了

点击此处下载文件后,将 YellowPage 解压后放入 ~/system/priv-app
由于 EU 的 Calendar 已被混淆,将 cleaner-fixLocalizationUtils一行做如下替换(仅限 Windows, Mac相关问题请参阅 issue#54)

if [[ "$app" == "Calendar" ]]; then
$patchmethod $apkdir/smali/com/miui/calendar/util/LocalizationUtils.smali \
showsDayDiff showsLunarDate showsWidgetHoliday -showsWorkFreeDay \
-isMainlandChina -isGreaterChina || return 1
fi
->
if [[ "$app" == "Calendar" ]]; then
sed -i '/0x7f0/{N;N;N;N;
a const/4 p0, 0x1
}' $apkdir/smali/com/miui/calendar/util/A.smali
fi

主题商店本地化(Mod版)

首先须如上文修改build.prop
然后将主题.apk下载后放入~/system/app/ThemeManager设置0755权限或下载主题.zip刷入,重启即可

2020.07.05更新
付费主题已不复存在,现推荐直接/覆盖安装应用商店最新版


全球上网本地化

首先将 build.prop 中的区域代码全部改为大陆

通过小米应用商店搜索全球上网,下载全球上网插件,之后安装全球上网.apk,检查在应用商店中是否有更新后打开即可

直接商店中搜索全球上网覆盖安装


系统桌面本地化

系统桌面下载解压后放入 ~/system/priv-app


FCM 推送相关


要使用 FCM 推送首先要满足几个条件:

  • 应用处于允许自启状态,标准的FCM无需后台但要求应用自启权限处于允许状态
  • 应用 FCM 相关组件未被禁止
  • 终端与 FCM 服务器连接状态良好
  • 应用的推送处于注册状态
  • FCM 服务要保持连接

解决办法:

  • 系统中授予相关权限保证应用不会被系统压死(此问题多见于MIUI EMUI 等深度定制 ROM)
  • 如果使用了 IFW 等组件控制请保证 FCM相关组件未被禁用
  • HOSTS 中加入 mtalk.google.com xxx.xxx.xxx.xxx 其中网址请自行测试所在地区FCM服务器的连通性(ping mtalk.google.com).
  • 多见于使用了钛备份的用户,清除数据/卸载重装即可注册 FCM 推送
  • 多次被杀后台可考虑冻结"电量与性能"

可能会遇到的问题


andriod.process.media 不断停止运行

初步定位是 下载管理器 在修改 build.props 后由国际版变为本地版,但 MIROOM 的下载管理是经团队魔改精简的,目前的解决办法是下载MediaProvider替换至~/system/priv-app并在 下载管理 中关闭迅雷下载引擎和资源推荐 重启后等待 下载管理 自动下载几个文件即不再报错


参考链接

  • 纯净与便捷兼得:如何在国际版/EU 版 MIUI 上使用小米钱包
  • Github issue #54
  • Github issue #58