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 文档。
58200 次点击
所在节点    Android
189 条回复
raptium
2018-01-23 23:10:38 +08:00
@linusyang 我用的 twrp 的 sideload,我看日志 update binary 里的脚本都执行了的,并且从 twrp 的文件管理器来看,那些文件也确实写入了。不知道是不是 Oreo 的原因。
raptium
2018-01-24 14:03:13 +08:00
昨天遇到的问题大概是我没有关闭 dm-verity,今天重新改用 Magisk 已经成功了。
国际版 Rom 也不需要提取 SmartcardService,门卡模拟加一个 NextPay 就行了。
Jormin
2018-01-26 13:54:25 +08:00
@wangyilin1226 我好想死 抱着侥幸心理直接用了 eu 论坛的 recovery 加密了储存 结果直接显示 internal storage 为 0,只能清空 data 重新刷过。。。
linusyang
2018-01-26 14:54:12 +08:00
@Jormin 不用清空的,东西都还在,只是没有装载显示出来而已,xiaomi.eu 上的 twrp 不支持解密。
Jormin
2018-01-26 15:15:41 +08:00
@linusyang 我清空了之后才发现其实不用清空 TAT 我好蠢
cnmusa
2018-02-01 08:13:45 +08:00
感觉还是国人的包要好一些
linusyang
2018-02-01 13:58:40 +08:00
@cnmusa 主要看需求吧,我需要 safetynet 认证,貌似就 eu 版的可以。还有是信誉,eu 版还是靠谱的,国内的不太敢用。
cnmusa
2018-02-01 14:09:21 +08:00
@linusyang 嗯 两个手机 一个 mi6 一个红米 note4 准备 note4 刷一些 eu 的 rom 不过 e 文看着费劲 不知道刷什么包好
qqjt
2018-02-01 20:53:48 +08:00
windows 下运行了脚本,看到 all done,然后找不到 zip 文件,懵逼了……
小米 6 的开发版 rom。
linusyang
2018-02-01 22:02:51 +08:00
@qqjt 要先下载固件放在目录里。或者改一下 deploy.sh 里面的地址,用 deploy.bat 。这个脚本是自用的,不是很友好,要自己看一下代码。
qqjt
2018-02-02 09:31:21 +08:00
@linusyang 已成功提取,要用卡刷包我下的线刷包 =。=
qqjt
2018-02-02 11:23:30 +08:00
小米 6 搞机成功,版本 8.1.25 ,介绍下我的步骤:
- 下载 xiaomi.eu 的 rom:xiaomi.eu_multi_MI6_8.1.25_v9-8.0.zip ,和国内的开发版 miui_MI6_8.1.25_0110827d3f_8.0.zip 。
- 用楼主的脚本提取安装包:将国内版 zip 放到目录下,执行 extract.sh ,获得 mipay-MI6-8.1.25.zip ;换 eu 版,执行 cleaner-fix.bat ,获得 eufix-MI6-8.1.25.zip 。
- 解锁 bootloader,刷入 twrp ;
- 进入 twrp,四清,刷 xiaomi.eu 的 rom,挂载 system,刷入提取出的俩个 zip,reboot system。
linusyang
2018-02-02 11:43:22 +08:00
@qqjt 谢谢测试,补充一下,如果要国内天气源,可以装提取出来的 weather mod apk,如果要还原国外源就装回 orig apk。
srwgin
2018-02-02 14:58:47 +08:00
奇怪之前用还正常 更新 git 的文件后就这样了
extract.sh: line 2: $'\r': command not found
extract.sh: line 3: cd: $'.\r': No such file or directory
extract.sh: line 4: $'\r': command not found
extract.sh: line 6: $'\r': command not found
extract.sh: line 18: $'\r': command not found
extract.sh: line 19: syntax error near unexpected token `$'{\r''
'xtract.sh: line 19: `exists() {
请按任意键继续. . .
linusyang
2018-02-02 16:37:57 +08:00
@srwgin 换行符错了,crlf 转 lf 应该就行了,我这个打包的 bash 是 cygwin 的,比较敏感。
asipirin1120
2018-02-02 18:36:08 +08:00
唔 楼主的加密脚本成功让我卡启动进不了系统了
linusyang
2018-02-02 20:03:26 +08:00
@asipirin1120 可能要等一会,加密要时间的。只推荐第一次刷机时候用,速度会快点。这个脚本主要是为了提取 mipay,eufix 是我自用的,没仔细测试过,可能有风险。
royalsys
2018-02-02 23:13:29 +08:00
感谢楼主指路……
我在用国际版的 rom 8.2.1,使用楼主的最新版本 8.2.1 的包的话,在打开公交卡页面的时候,会报错退出……
报错信息是这个: https://gist.github.com/anonymous/6ae74796d02e9fa1ccc7edb9e75e9305,不知道楼主有思路吗?

用 8.1.25 的就好了。感觉是 miui 玩坏什么了……

@raptium #121 似乎也用的国际版 ROM。是否有遇到同样的问题呢?
asipirin1120
2018-02-02 23:31:46 +08:00
@linusyang 唔我是刷好了想加 eufix 的时候刷进去的 然后就卡启动画面进不去 重启直接进 rec 了
唔 现在还是多一步把 zip 里的东西自提替换 暂时放弃加密了
Jormin
2018-02-02 23:59:47 +08:00
@asipirin1120 你是 eu 版本么? eu 论坛提供的 recovery 是不支持加密的 所以会没法挂载 开机直接进 recovery。 你可以看下上面的帖子有提到支持的 recovery 的下载地址。

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

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

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

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

© 2021 V2EX