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 文档。
47877 次点击
所在节点    Android
188 条回复
Jormin
2017-11-05 14:07:21 +08:00
@linusyang 大神 我的机型也是 Mix2,128gb 的,刷的 Miui EU 版本。
按照你的办法,刷入后增加卡片的时候会提示银联可信服务已停止,后来我自己的解决办法是,在刷入 UPTsmService.apk 的同时,把 lib 文件夹里的子文件夹 arm, arm64, X86, X86_64 也刷入。这些子文件夹里有 libuptsmservice.so.
之后就可以正常读卡和加卡了。
我是技术白,自己摸索出来的- -
rebelliouswhiz
2017-11-06 14:30:55 +08:00
@wangyilin1226 我也是莫名其妙,谷歌作者 nickname 才能找到这个文章...
rebelliouswhiz
2017-11-06 14:44:46 +08:00
@linusyang 请问是否有非 MIUI 系统移植 MIPAY 的相关经验?我的 MI6 准备上 xiaobai@XDA 的 Lineage 了,然而这个刷公交卡功能让我念念不忘... 如果有就最好啦,没有我就先拿 Superr's Kitchen 试着折腾一下
rebelliouswhiz
2017-11-06 14:45:40 +08:00
@aa2893785 你有没有试着折腾一下?
flystar
2017-11-08 09:19:11 +08:00
@Jormin 好的,多谢你的解答
关于 1,查找了一些资料,基本确认 ota 下载的固件跟完整包一样大小,每次都是
关于 2,Format data 之后,此时是在 recovery 之下,是直接可以 usb 连接电脑,传输 rom,进行刷机,还是需要重启进入 recovery,然后进行操作?
另外,我是电信 cdma,不太清楚 eu 版本有没有精简掉这块,因为欧洲好像都没有使用 cdma 的网络。。。
Jormin
2017-11-08 20:42:03 +08:00
@flystar 2,直接在 recovery 下连接电脑,不用重启。
3,现在有官方的 MIUI9 国际版了,你可以试试看。我感觉小米不是一直在推自己这个商务人士很实用 因为支持的频段多么,国际版肯定不会阉割吧。。。
strayuncle
2017-11-09 10:50:00 +08:00
顶一个,我也想做这个。
asipirin1120
2017-11-10 01:22:10 +08:00
@Jormin 不好意思 问一下 lib 文件夹是从哪来的
asipirin1120
2017-11-10 02:00:35 +08:00
@Jormin 解决了 就是提取 apk 里对应版本的 so 文件放到系统的两个 lib 文件夹内 这样在执行银联那个模块的时候就能直接从系统调用对应 so 文件而不用去 app 内找了
linusyang
2017-11-10 03:08:14 +08:00
@asipirin1120 @wangyilin1226 @Jormin
最近没空回复,各位的解决方法是没问题的,提取 apk 里面 lib/arm64-v8a 路径下的文件,放在 /system/app/UPTsmService/lib/arm64,然后设置好权限应该就行了。我会在后面的脚本里加上。

这个 UPTsmService.apk 是银联官方提供的 SDK,完整地包含了 dex 和 native library。找不到 libuptsmservice.so 可能是因为没有更新 dalvik/art 缓存,我每次升级系统都是双清 cache+dalvik 的,没遇到过这个问题。我查了一下 MIUI 官方固件,这个动态库只放在了 apk 里面,其他路径下都没有。

@rebelliouswhiz 移植到非 MIUI 系统可能比较麻烦,Mipay.apk 的依赖太多:MIUI 的 UI 库、银联的 SDK、NFC 的 SDK,apk 内嵌的 native library 还有一些依赖。移植就是个苦力活,需要耐心调试,把依赖都找齐打包好,可以做成类似于 gapps 的刷机包。
asipirin1120
2017-11-10 20:24:56 +08:00
@linusyang 我是把动态库直接丢到 /system/lib 和 /system/lib64 里的 还特意去查了查几个动态库的版本说明 (逃。
flynaj
2017-11-13 16:07:49 +08:00
不需要,支付用支付宝,公交车刷卡就行
flynaj
2017-11-13 16:08:47 +08:00
系统要的是干净快速
Jormin
2017-11-13 18:19:17 +08:00
@flynaj 每个人的需求都不一样 我觉得闪付很多优惠 所以我要(
wangyilin1226
2017-12-05 08:36:56 +08:00
@linusyang 请问为什么 beta 版 release 停更了
linusyang
2017-12-06 12:05:40 +08:00
@wangyilin1226 我在用稳定版,一周一更太麻烦。可以自己改 deploy.sh 里面的 url,然后运行一下这个脚本就可以了。
Jormin
2017-12-14 17:49:39 +08:00
@linusyang 楼主 今天尝试着把你 Github 上的代码下载下来 修改了 deploy.sh 里国内新版 miui 的下载链接 运行脚本刷入解压出来的 zip 文件,结果打开后小米钱包没法用了。一打开就崩溃= =
不会是厂商开始限制了吧= =
linusyang
2017-12-14 19:21:06 +08:00
@Jormin 报错信息是什么?刷 releases 里面的旧版还能用吗?
Jormin
2017-12-14 19:53:22 +08:00
@linusyang 我发现我钛备份安装后也是直接闪退。。。所以可能是系统的问题 我再测试下 然后有问题再跟你反馈下看看你能帮我不(囧 先谢谢啦
Jormin
2017-12-14 20:34:05 +08:00
@linusyang 装旧版的 releases 可以了 我想爆炸- -
看到你消息的时候我已经重装了系统了 TAT

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

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

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

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

© 2021 V2EX