MIUI 9 欧洲版移植小米公交、支付等服务

2017-09-29 14:10:38 +08:00
 linusyang
原因:因同时需要使用 Android Pay,MIUI 官方版装 GApps 仍然通不过 SafetyNet 验证,且 Google Play 是未验证的状态,转而刷 xiaomi.eu 的固件(即欧洲版,俗称波兰版)。不过小米支付都被精简掉了,只能自己动手移植回来。

操作很简单:把俗称“卡刷包”的官方 OTA 完整固件 system.img 提取出来,然后 deodex 以后放在 /system/app 目录即可。需要提取的 apk 有三个,Mipay.apk 、TSMClient.apk 和 UPTsmService.apk 。前两个要 deodex,最后一个 apk 直接拷贝即可。

手机型号 MIX 2,已测试可以绑定银行卡和开通公交卡。提取和 deodex 推荐用 https://bitbucket.org/superr/superrs-kitchen 的一条龙服务。

补充 1:支付安全问题可以通过全盘加密保障 (FBE),这样进恢复模式也需要先解密。xiaomi.eu 的固件取消了 boot.img 里面的强制加密,直接刷机后默认是解密状态,且无法再次加密。

唯一的方法是恢复 boot.img 的强制加密,这样在刷完固件第一次启动的时候会自动加密 /data 分区。恢复的方法是把 boot.img 里面 fstab.qcom 里面 /data 条目的加密选项从 encryptable=ice 改为 fileencryption=ice,具体含义可参见官方 API 文档。
47053 次点击
所在节点    Android
188 条回复
linusyang
2017-10-12 23:29:38 +08:00
@asipirin1120 NFC 下面的“安全模块位置”改成“内置安全模块” (Using embedded secure element)。默认是 HCE,给 Android Pay 用的。
wangyilin1226
2017-10-28 20:27:29 +08:00
膜拜大神了,之前因为 MIUI9 刷 opengapps 持续卡验证界面改刷欧版,因为只清空了 data 分区而没有格式化导致刷欧版卡第一屏,现在看了已经解决,万分感谢!
不知可否共享一下 deodex 过后的 App,我拿了最新开发版提取出来的 apk 直接添加到 /system/app 看贴吧应该也能用。
wangyilin1226
2017-10-28 20:30:17 +08:00
我是从 Google 搜索到镜像站看到这篇文章,拿着标题搜也没有搜到原帖,反而用 bing 搜找过来了....
linusyang
2017-10-28 20:49:24 +08:00
@wangyilin1226 我后来写了个脚本,自动部署在 https://github.com/linusyang92/mipay-extract/releases 这样每次升级就很轻松了。
wangyilin1226
2017-10-28 21:11:32 +08:00
刚看到 update... 感谢大神 release 里面是可以直接卡刷了吗?另外国内版 MIUI 有个叫 circle N 的原生风格做的很好,大佬可以试试看。
linusyang
2017-10-28 22:45:28 +08:00
@wangyilin1226 对,TWRP 里面直接安装就行了
wangyilin1226
2017-10-28 23:08:12 +08:00
添加 mipay 卡提示银联可信服务服务已停止... 我看其他帖子还添加了 smartcardservice 不知道是不是因为这个
wangyilin1226
2017-10-28 23:08:48 +08:00
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.simalliance.openmobileapi.jar", zip file "/system/app/UPTsmService/UPTsmService.apk"],nativeLibraryDirectories=[/system/app/UPTsmService/lib/arm64, /system/lib64, /vendor/lib64, /system/lib64, /vendor/lib64]]] couldn't find "libuptsmservice.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:984)
at java.lang.System.loadLibrary(System.java:1530)
at com.unionpay.tsmservice.base.UPApplication.<clinit>(Unknown Source)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newApplication(Instrumentation.java)
at android.app.Instrumentation.newApplication(Instrumentation.java)
at android.app.LoadedApk.makeApplication(LoadedApk.java)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
wangyilin1226
2017-10-28 23:23:27 +08:00
另外国际版 MIUI 短信不能自动复制验证码,不知道是不是短信 App 不用导致的
wangyilin1226
2017-10-28 23:47:50 +08:00
改 build.prop 卡第一屏了... 如果大佬用的.26 能不能发一下原版... wangyilin1226@gmail.com
linusyang
2017-10-29 02:07:14 +08:00
@wangyilin1226 这个只支持 eu 版,eu 版是基于国内版的,差别不大。国际版应该不支持,还要提取其他组件。releases 里面都是 mix 2 固件里提取的,其他机型要自己提取。
wangyilin1226
2017-10-29 02:45:33 +08:00
再次刷机不用 Build 文件了 同步刷 mipay 不报错了
wangyilin1226
2017-10-29 04:25:53 +08:00
@linusyang 我说的不能自动提取复制短信验证码就是 eu 版 改了 build.prop 卡开机以后不敢动了... 另外能否把小米漫游加入脚本?
huaxianyan
2017-10-30 15:30:11 +08:00
我倒是可以用 Android Pay,但是在国内用不了啊……
asipirin1120
2017-10-30 16:33:28 +08:00
Mix 2 可以开通岭南通 今天去试了 完美使用
就是不知道 EU 刷机升级之后 重新移植 Mipay 还能不能用
Jormin
2017-10-31 03:01:28 +08:00
大神,我直接卡刷了你 Github 上的 Mipay 文件夹。
开机后,可以看到 小米钱包,但是点进去之后页面一直是在 Loading 的状态,右上角可以添加卡片,但是想打开小米闪付的话,也会一直提示在 Processing。
请问你这边也会这样么? 系统是 eu 版本的 7.10.26, 设备倒是跟你一样,也是 Mix2
Jormin
2017-10-31 10:28:28 +08:00
@wangyilin1226 唔 我的昨晚一直 loading 今天正常了,但是添加 Mi Pay 一样提示银联可信服务已停止。。。 我刷的 eu 版本没改过 build 啊。。。好奇怪,请问后来你是咋解决的?就看你说没改 build,没看懂。。。
aa2893785
2017-11-01 11:34:59 +08:00
不知道刷类原生的第三方能否按照这个方法移植?
flystar
2017-11-05 08:46:28 +08:00
@linusyang 请教,刷 xiaomi.eu 的固件,在国内能收到 ota 升级么,看官方帖子是有 ota 的
另外,首次刷机,需要 Format Data,连 sd 卡的都要格式化么?那放在 sd 卡内的刷机固件不是也没了,应该放哪里呢
谢谢~
Jormin
2017-11-05 13:13:37 +08:00
@flystar 1,可以收到 OTA,但是我这次收到的 OTA 跟 eu 直接下载完整固件大小一样 不知道是不是 miui 9 到 Miui 9.1 升级的原因
2,必须 Format 所有的东西,你可以 Format 之后,连接电脑,进入第三方 Recovery,这个时候你的电脑可以识别你的手机,可以这个时候再把固件放进去 然后在 Recovery 里找到这个固件刷即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394591

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX