补充 4: 最后还是忍不住写了一个自动提取的脚本,默认用 Travis CI 自动提取 Mix 2 固件并发布到 releases,这下就不怕官方固件更新了。
1
bjzhou1990 2017-09-29 15:28:19 +08:00
OpenGApps 家的完整版 GApps 也不行吗
|
2
qqjt 2017-09-29 15:33:28 +08:00
666 赞一个
|
3
bianchensz 2017-09-29 16:23:13 +08:00
大概这就是大佬吧
|
4
baoanlol 2017-09-29 16:37:56 +08:00
刷欧洲版需要解 bootloader 和装第三方 recovery 么。。
|
5
chmlai 2017-09-29 16:40:30 +08:00
涉及支付这种功能不太敢用非官方的 rom 吧?
|
6
xianyuke 2017-09-29 16:40:48 +08:00
能否提供一下你已提取的那三个文件?
|
7
wuxiao2522 2017-09-29 16:41:08 +08:00
@baoanlol 同问
|
8
linusyang OP #1 @bjzhou1990 我试了,不行的,看了 eu rom,是要改 build.prop 文件才能过认证。
#2,3 谢谢!只是分享一下心得。 #4,7 @baoanlol @wuxiao2522 是的,刷 eu rom 要解锁 BL 而且刷完不能锁上。恢复分区刷的是 twrp,xiaomi.eu 上提供的,实际上是国内开发者编译的,做了英文化而已 。 #5 @chmlai 确实有风险,用第三方固件都有这个问题,可以拿原版自己精简。我偷懒了,直接用现成的了。我觉得不 root 再加密应该还好,至少手机丢了还有一道保障。 #6 @xianyuke 不知分享出来是否有版权问题?而且不确定其他机型能否使用。用我推荐的工具提取很简单的,可以自己动手试试。 |
10
linusyang OP #9 @JenJieJu 需要在 twrp 里格式化 /data 分区 [1, 2],会删除所有用户数据(包括 /sdcard ),twrp 会提示输入 yes 后确认。原因是 MIUI 9 官方系统默认加密,xiaomi.eu 的固件在初次安装时不支持加密的 /data,格式化可去除加密。如果想保持系统加密可以参考“补充 1 ”里面的方法。
[1] https://xiaomi.eu/community/threads/other-roms-for-mi-mix-2.41649/#post-388044 [2] https://xiaomi.eu/community/threads/mi-mix-2-cleaner-crashes-when-opening-documents-security-app.41690/#post-388008 |
11
tSQghkfhTtQt9mtd 2017-09-29 21:18:54 +08:00 via Android
只是需要 Safetynet 的话可以通过刷入 Magisk 然后安装一个模块的方式解决。
|
12
imyip 2017-09-29 21:48:59 +08:00 via Android
所以一加 5 移植公交卡到非氢氧系统可行性呢
|
13
sol33 2017-09-29 21:52:34 +08:00
部分机型不支持电信 cdma 的问题呢?
|
14
mattx 2017-09-30 02:27:37 +08:00
你好,请问下,小米 5 有办法同时使用 google 框架和电信卡么?
|
16
xx314327475 2017-09-30 13:24:38 +08:00
@linusyang 你好 我也是 mix2 刷的国际版 miui9 卡刷 提示不是官方 rom,请问您怎么解决的?
https://sourceforge.net/projects/xiaomi-eu-multilang-miui-roms/files/xiaomi.eu/MIUI-WEEKLY-RELEASES/7.9.22/ |
17
linusyang OP #11 @liwanglin12 没错,Magisk 可以绕过 SafetyNet 检测,也可以修改 build.prop,是个不错的方案。不过默认会 root,模块会直接挂在到根目录,安全性会下降一些,我就没考虑使用了。
#12 @imyip 貌似不太行吧,NFC 公交卡是跟机型绑定的,不同小米手机支持的进度都不太一样,要分别测试。 #13,14 @sol33 @mattx 要支持 CDMA1x 通话应该可以在 4636 工程模式里面改 preferred network,网上教程挺多的,不过我没电信卡,没测试过。 #16 @xx314327475 只有官方包才能“卡刷”,即 OTA 升级,其他的 rom 都只能解锁 bootloader 在恢复模式里刷。小米手机现在刷 OTA 包不仅会验证包的签名,还需要服务器验证,有两重验证。 |
18
asipirin1120 2017-10-12 22:44:28 +08:00
给大佬倒一杯卡布奇诺
|
19
asipirin1120 2017-10-12 22:48:59 +08:00
嘛 公交卡提示要切换默认钱包 但是在 nfc 那块根本没有小米钱包的选项
|
20
asipirin1120 2017-10-12 23:20:10 +08:00
OK
切换到内置安全组件就能开公交卡了 |
21
linusyang OP @asipirin1120 NFC 下面的“安全模块位置”改成“内置安全模块” (Using embedded secure element)。默认是 HCE,给 Android Pay 用的。
|
22
wangyilin1226 2017-10-28 20:27:29 +08:00 via Android
膜拜大神了,之前因为 MIUI9 刷 opengapps 持续卡验证界面改刷欧版,因为只清空了 data 分区而没有格式化导致刷欧版卡第一屏,现在看了已经解决,万分感谢!
不知可否共享一下 deodex 过后的 App,我拿了最新开发版提取出来的 apk 直接添加到 /system/app 看贴吧应该也能用。 |
23
wangyilin1226 2017-10-28 20:30:17 +08:00 via Android
我是从 Google 搜索到镜像站看到这篇文章,拿着标题搜也没有搜到原帖,反而用 bing 搜找过来了....
|
24
linusyang OP @wangyilin1226 我后来写了个脚本,自动部署在 https://github.com/linusyang92/mipay-extract/releases 这样每次升级就很轻松了。
|
25
wangyilin1226 2017-10-28 21:11:32 +08:00 via Android
刚看到 update... 感谢大神 release 里面是可以直接卡刷了吗?另外国内版 MIUI 有个叫 circle N 的原生风格做的很好,大佬可以试试看。
|
26
linusyang OP @wangyilin1226 对,TWRP 里面直接安装就行了
|
27
wangyilin1226 2017-10-28 23:08:12 +08:00 via Android
添加 mipay 卡提示银联可信服务服务已停止... 我看其他帖子还添加了 smartcardservice 不知道是不是因为这个
|
28
wangyilin1226 2017-10-28 23:08:48 +08:00 via Android
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) |
29
wangyilin1226 2017-10-28 23:23:27 +08:00 via Android
另外国际版 MIUI 短信不能自动复制验证码,不知道是不是短信 App 不用导致的
|
30
wangyilin1226 2017-10-28 23:47:50 +08:00 via Android
改 build.prop 卡第一屏了... 如果大佬用的.26 能不能发一下原版... [email protected]
|
31
linusyang OP @wangyilin1226 这个只支持 eu 版,eu 版是基于国内版的,差别不大。国际版应该不支持,还要提取其他组件。releases 里面都是 mix 2 固件里提取的,其他机型要自己提取。
|
32
wangyilin1226 2017-10-29 02:45:33 +08:00 via Android
再次刷机不用 Build 文件了 同步刷 mipay 不报错了
|
33
wangyilin1226 2017-10-29 04:25:53 +08:00 via Android
@linusyang 我说的不能自动提取复制短信验证码就是 eu 版 改了 build.prop 卡开机以后不敢动了... 另外能否把小米漫游加入脚本?
|
34
huaxianyan 2017-10-30 15:30:11 +08:00
我倒是可以用 Android Pay,但是在国内用不了啊……
|
35
asipirin1120 2017-10-30 16:33:28 +08:00
Mix 2 可以开通岭南通 今天去试了 完美使用
就是不知道 EU 刷机升级之后 重新移植 Mipay 还能不能用 |
36
Jormin 2017-10-31 03:01:28 +08:00
大神,我直接卡刷了你 Github 上的 Mipay 文件夹。
开机后,可以看到 小米钱包,但是点进去之后页面一直是在 Loading 的状态,右上角可以添加卡片,但是想打开小米闪付的话,也会一直提示在 Processing。 请问你这边也会这样么? 系统是 eu 版本的 7.10.26, 设备倒是跟你一样,也是 Mix2 |
37
Jormin 2017-10-31 10:28:28 +08:00 via Android
@wangyilin1226 唔 我的昨晚一直 loading 今天正常了,但是添加 Mi Pay 一样提示银联可信服务已停止。。。 我刷的 eu 版本没改过 build 啊。。。好奇怪,请问后来你是咋解决的?就看你说没改 build,没看懂。。。
|
38
aa2893785 2017-11-01 11:34:59 +08:00
不知道刷类原生的第三方能否按照这个方法移植?
|
39
flystar 2017-11-05 08:46:28 +08:00
|
40
Jormin 2017-11-05 13:13:37 +08:00
@flystar 1,可以收到 OTA,但是我这次收到的 OTA 跟 eu 直接下载完整固件大小一样 不知道是不是 miui 9 到 Miui 9.1 升级的原因
2,必须 Format 所有的东西,你可以 Format 之后,连接电脑,进入第三方 Recovery,这个时候你的电脑可以识别你的手机,可以这个时候再把固件放进去 然后在 Recovery 里找到这个固件刷即可。 |
41
Jormin 2017-11-05 14:07:21 +08:00
@linusyang 大神 我的机型也是 Mix2,128gb 的,刷的 Miui EU 版本。
按照你的办法,刷入后增加卡片的时候会提示银联可信服务已停止,后来我自己的解决办法是,在刷入 UPTsmService.apk 的同时,把 lib 文件夹里的子文件夹 arm, arm64, X86, X86_64 也刷入。这些子文件夹里有 libuptsmservice.so. 之后就可以正常读卡和加卡了。 我是技术白,自己摸索出来的- - |
42
rebelliouswhiz 2017-11-06 14:30:55 +08:00
@wangyilin1226 我也是莫名其妙,谷歌作者 nickname 才能找到这个文章...
|
43
rebelliouswhiz 2017-11-06 14:44:46 +08:00
@linusyang 请问是否有非 MIUI 系统移植 MIPAY 的相关经验?我的 MI6 准备上 xiaobai@XDA 的 Lineage 了,然而这个刷公交卡功能让我念念不忘... 如果有就最好啦,没有我就先拿 Superr's Kitchen 试着折腾一下
|
44
rebelliouswhiz 2017-11-06 14:45:40 +08:00
@aa2893785 你有没有试着折腾一下?
|
45
flystar 2017-11-08 09:19:11 +08:00
@Jormin 好的,多谢你的解答
关于 1,查找了一些资料,基本确认 ota 下载的固件跟完整包一样大小,每次都是 关于 2,Format data 之后,此时是在 recovery 之下,是直接可以 usb 连接电脑,传输 rom,进行刷机,还是需要重启进入 recovery,然后进行操作? 另外,我是电信 cdma,不太清楚 eu 版本有没有精简掉这块,因为欧洲好像都没有使用 cdma 的网络。。。 |
46
Jormin 2017-11-08 20:42:03 +08:00 via Android
@flystar 2,直接在 recovery 下连接电脑,不用重启。
3,现在有官方的 MIUI9 国际版了,你可以试试看。我感觉小米不是一直在推自己这个商务人士很实用 因为支持的频段多么,国际版肯定不会阉割吧。。。 |
47
strayuncle 2017-11-09 10:50:00 +08:00
顶一个,我也想做这个。
|
48
asipirin1120 2017-11-10 01:22:10 +08:00 via Android
@Jormin 不好意思 问一下 lib 文件夹是从哪来的
|
49
asipirin1120 2017-11-10 02:00:35 +08:00 via Android
@Jormin 解决了 就是提取 apk 里对应版本的 so 文件放到系统的两个 lib 文件夹内 这样在执行银联那个模块的时候就能直接从系统调用对应 so 文件而不用去 app 内找了
|
50
linusyang OP @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 的刷机包。 |
51
asipirin1120 2017-11-10 20:24:56 +08:00 via Android
@linusyang 我是把动态库直接丢到 /system/lib 和 /system/lib64 里的 还特意去查了查几个动态库的版本说明 (逃。
|
52
flynaj 2017-11-13 16:07:49 +08:00 via Android
不需要,支付用支付宝,公交车刷卡就行
|
53
flynaj 2017-11-13 16:08:47 +08:00 via Android
系统要的是干净快速
|
55
wangyilin1226 2017-12-05 08:36:56 +08:00 via Android
@linusyang 请问为什么 beta 版 release 停更了
|
56
linusyang OP @wangyilin1226 我在用稳定版,一周一更太麻烦。可以自己改 deploy.sh 里面的 url,然后运行一下这个脚本就可以了。
|
57
Jormin 2017-12-14 17:49:39 +08:00
|
59
Jormin 2017-12-14 19:53:22 +08:00
@linusyang 我发现我钛备份安装后也是直接闪退。。。所以可能是系统的问题 我再测试下 然后有问题再跟你反馈下看看你能帮我不(囧 先谢谢啦
|
61
xiaozhizhu1997 2017-12-15 11:24:24 +08:00
之前用 MI5,刷国际版,直接装两个 APK,发现只能用原有的银行卡 /公交卡,不能新绑 /开,删了就只能刷回中国版绑回来了...
看来把 APK 们固化很重要啊... |
62
linusyang OP @Jormin 新版好像还依赖其他 apk,我有空研究一下新版的机制。
@xiaozhizhu1997 不能开卡是因为国际版缺组件,银联的、NFC 的都少。eu 版的底包是国内版,不是国际版,所以补补 apk 就能用。 |
64
wangyilin1226 2017-12-17 21:14:28 +08:00 via Android
@linusyang 小米钱包新版加入了 NFC 卡片模拟,应该是缺这个吧。
|
65
coldwan 2017-12-31 16:20:19 +08:00
@wangyilin1226 @linusyang 我刷了国际版的,钱包打开可以看到公交卡余额,3 张银行卡,但是点进公交卡就让我把系统默认钱包切换到小米钱包,可是在 NFC 下面根本没有这个选项,安全模块已经是使用 HCE 钱包了。
|
69
wangyilin1226 2018-01-07 16:56:10 +08:00
似乎官方 NFC 模拟比软件做得更好 并且不需要 root 权限 过两天 MIX2 就要更新到 Android Oreo 了 希望大佬可以研究一下新版机制
|
70
Jormin 2018-01-12 15:39:42 +08:00
每天都来刷一刷 看看大神更新了没- -
|
71
wangyilin1226 2018-01-13 19:34:17 +08:00
|
72
wangyilin1226 2018-01-13 19:49:49 +08:00
不好意思,通过 rec 确定了 FBE 可以通过后期处理加入= =
|
73
wangyilin1226 2018-01-14 13:22:55 +08:00 via Android
最新版 MIUI.eu 9.2.5.0 稳定版刷入小米钱包后 NFC 选项中没有系统安全模块无法调用小米钱包支付
|
74
wangyilin1226 2018-01-14 22:15:07 +08:00
再次确认刷入其他版本的也无法调用,疑似 9.2.5.0 在 NFC 设置中屏蔽了系统安全模块
|
75
srwgin 2018-01-16 14:10:55 +08:00
如果是其他机型的话 具体步骤是不是这样
1.在本来国内版 rom 上 登陆小米账号 然后小米钱包创建交通卡并且绑定银行卡 2.解锁 bl 刷 twrp 清数据 刷欧盟版 rom 3.下载 mipay-extract 下载国内最新 rom 扔在一个目录后 运行 extract.bat 后得到 apk 4.把 apk 扔到 /system/app 重启 5.重启后就能正常使用了 是不是这样一个过程 如果不做 1 的话 是不是在欧盟版 rom 里面不能开卡和充值 |
76
srwgin 2018-01-16 15:04:55 +08:00
顺便 如果用你的自动处理脚本 其他机型的话 除了改 2 个 rom 下载地址之外,其他还有代码要针对自己机型进行处理吗 谢谢
|
77
rility 2018-01-18 16:05:16 +08:00 2
谢谢 op,用你做好的 zip 可以使用
设备 mi6 版本最新国际版体验版 之前那些说没有内置安全模块的,可以在 build.prop 里进行更改 ro.se.type=HCE,UICC,eSE 即可 推荐做成 magisk module |
78
linusyang OP @rility 谢谢提醒,已经在最新的版本里加了这个修复。
@srwgin 其他理论上应该不用改的。 @wangyilin1226 eu 版又开始乱改东西了,刷最新版的包会自动修复,开发板稳定版都重新打包了。FBE 那个包就是我在主贴里提到的,只是以前忘了放出来。 |
79
linusyang OP @srwgin 补充一下,步骤 1 可以不需要,应该可以开卡充值的。我手机拿到手一解锁就刷了 eu 版和 mipay 包,基本没有用过原版国内系统。
|
80
wangyilin1226 2018-01-21 07:02:29 +08:00
请问强制加密的 zip 包是每刷一边系统都要重新刷入吗
|
81
wangyilin1226 2018-01-21 07:29:54 +08:00
在格式化并清空存储后刷入 8.0 包和强制加密,系统启动后 rec 依旧不需输入密码进入,加密失败。
|
82
wangyilin1226 2018-01-21 07:44:43 +08:00 1
MIUI.eu 论坛里的 rec 不支持 FBE 解密,可以从这里 http://www.shuajizu.cn/forum.php?mod=viewthread&tid=18300&extra=page%3D1 下载解密版本。
|
83
Jormin 2018-01-21 14:35:17 +08:00 via Android
@wangyilin1226 请问你现在的系统是测试版的 8.1.18 不?强制加密的包是用的 OP stable 里的强制加密 zip 么?
|
84
wangyilin1226 2018-01-21 16:18:54 +08:00
@Jormin 我现在在 FBE 加密基础上直接刷入 Oreo 和刷入 Oreo 后刷入强制加密都会导致无法开机,现在修改 boot.img 试试
|
85
wangyilin1226 2018-01-21 16:31:16 +08:00
晕了,Oreo 解包 boot.img 后没有 fstab.qcom,是不是 MIUI.eu 开发者把 FBE 解密魔改掉了
|
86
wangyilin1226 2018-01-21 16:41:47 +08:00
Oreo 中去除了 fstab.qcom,和 MIUI 开发者没关系
https://source.android.com/security/encryption/file-based?hl=zh-cn |
87
wangyilin1226 2018-01-21 16:46:26 +08:00
启用文件级加密
通过将 fileencryption=contents_encryption_mode[:filenames_encryption_mode] 标记添加到 userdata 分区最后一列的 fstab 行中,可以启用 FBE。contents_encryption_mode 参数定义了哪些加密算法用于文件内容的加密,filenames_encryption_mode 参数定义了哪些加密算法用于文件名的加密。contents_encryption_mode 只能是 aes-256-xts。filenames_encryption_mode 有两个可能的值:aes-256-cts 和 aes-256-heh。如果未指定 filenames_encryption_mode,则使用 aes-256-cts 值。 |
88
wangyilin1226 2018-01-21 17:05:04 +08:00
由于 Oreo 中 fstab 更换了位置
找到 OP5 的 Oreo 在解除 FBE 加密时 for fstab in /system/vendor/etc/fstab.*; do [ -f "$fstab" ] || continue print "Found fstab: $fstab" sed -i " s/\b\(forceencrypt\|forcefdeorfbe\|fileencryption\)=/encryptable=/g " "$fstab" found_fstab=true done 似乎修改 fstab 位置后要修改三个项目才能引导开机加密? |
89
wangyilin1226 2018-01-21 18:23:36 +08:00
魔改了一下别人给 OP5Oreo 做的去除加密可以加密了,我看看怎么上传上来
|
90
wangyilin1226 2018-01-21 18:28:11 +08:00
https://share.weiyun.com/0a0c59afb67ef61a43c8083430330318
刷入 Oreo 后刷入此文件即可解锁 DM 并加密 FBE、 |
91
wangyilin1226 2018-01-21 20:21:18 +08:00
另外最新稳定版的短信验证码快捷复制在 Oreo 也没有了,不知道是被屏蔽了还是没做进去。
|
92
linusyang OP @wangyilin1226 Oreo 修改起来更简单了,不用改 boot.img 了,我直接加在 eufix 包的脚本里了:
https://github.com/linusyang92/mipay-extract/commit/c19df91012a131ef61222cef163357b8de7fa9fd xiaomi.eu 经常乱改,比如 /data 分区的 quota 参数也没了,我在脚本里面加回来: https://source.android.com/devices/storage/faster-stats |
93
linusyang OP @wangyilin1226 验证码这个估计是屏蔽了,可以反汇编短信程序看看。
|
94
linusyang OP @wangyilin1226 我改了一下 com.android.mms.util.VerificationCodeUtils 里面对国际版的判断。如果是 mix2,可以试试把 eufix.zip 解包,覆盖 priv-app/Mms.apk ,看看复制验证码功能恢复了没有。
|
95
wangyilin1226 2018-01-21 22:39:11 +08:00
欧版再这么搞下去我就要跳坑国际版了...
|
96
linusyang OP @wangyilin1226 这是小米的问题,国际版一样没有这些功能,eu 版就是因为把 build.prop 改成国际版才导致功能缺失,他们已经 patch 一部分 app,恢复了国内版的部分功能了。
|
98
Jormin 2018-01-22 00:43:27 +08:00 via Android
@linusyang 不需要刷好系统第一次开机刷吧?现在装了近 400 个 app 真是不敢乱来,怕卡米要清光数据重来
|
99
akkkkk77 2018-01-22 09:09:11 +08:00 via Android
我想请问,刷国际版系统,再单独安装小米支付之类的 app 可否
|
100
linusyang OP |