MIUI 9 欧洲版移植小米公交、支付等服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linusyang
V2EX    Android

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

  •  
  •   linusyang 2017-09-29 14:10:38 +08:00 59105 次点击
    这是一个创建于 2981 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原因:因同时需要使用 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 文档。
    第 1 条附言    2017-09-29 18:38:19 +08:00
    补充 2: xiaomi.eu 的 MIUI 9 主要面向国外用户,有些过度精简了 (就比如小米支付),而且到官方论坛去反馈也没用。

    目前我发现的其他问题还有:
    1. 日历没有农历,改 build.prop 的地区码也没用,应该是 app 里面完全去掉了。
    2. OTA 包的升级脚本会自动删除 /data/app 里面部分国内软件。这些原本是 MIUI 自带的推广应用,但有些我是要用的,属于误删。不过还好软件的数据并没有删除,仅仅是 apk 删除了。
    第 2 条附言    2017-09-29 18:47:23 +08:00
    补充 3: 这个方法不知道能用多久,这里只是分享一下。小米官方想封锁第三方固件使用这些功能还是很容易的,就看这个公司是否宽容了。Google 对于 Android Pay 的态度是,只要过了 SafetyNet 的认证就让用,感觉还是比较宽容的。如果被封了的话,我用回 iOS 就好了,不想玩猫捉老鼠。
    第 3 条附言    2017-10-07 01:30:44 +08:00

    补充 4: 最后还是忍不住写了一个自动提取的脚本,默认用 Travis CI 自动提取 Mix 2 固件并发布到 releases,这下就不怕官方固件更新了。

    189 条回复    2025-06-14 18:06:31 +08:00
    1  2  
    bjzhou1990
        1
    bjzhou1990  
       2017-09-29 15:28:19 +08:00
    OpenGApps 家的完整版 GApps 也不行吗
    qqjt
        2
    qqjt  
       2017-09-29 15:33:28 +08:00
    666 赞一个
    bianchensz
        3
    bianchensz  
       2017-09-29 16:23:13 +08:00
    大概这就是大佬吧
    baoanlol
        4
    baoanlol  
       2017-09-29 16:37:56 +08:00
    刷欧洲版需要解 bootloader 和装第三方 recovery 么。。
    chmlai
        5
    chmlai  
       2017-09-29 16:40:30 +08:00
    涉及支付这种功能不太敢用非官方的 rom 吧?
    xianyuke
        6
    xianyuke  
       2017-09-29 16:40:48 +08:00
    能否提供一下你已提取的那三个文件?
    c0mmand
        7
    c0mmand  
       2017-09-29 16:41:08 +08:00
    @baoanlol 同问
    linusyang
        8
    linusyang  
    OP
       2017-09-29 17:09:02 +08:00
    #1 @bjzhou1990 我试了,不行的,看了 eu rom,是要改 build.prop 文件才能过认证。

    #2,3 谢谢!只是分享一下心得。

    #4,7 @baoanlol @wuxiao2522 是的,刷 eu rom 要解锁 BL 而且刷完不能锁上。恢复分区刷的是 twrp,xiaomi.eu 上提供的,实际上是国内开发者编译的,做了英文化而已 。

    #5 @chmlai 确实有风险,用第三方固件都有这个问题,可以拿原版自己精简。我偷懒了,直接用现成的了。我觉得不 root 再加密应该还好,至少手机丢了还有一道保障。

    #6 @xianyuke 不知分享出来是否有版权问题?而且不确定其他机型能否使用。用我推荐的工具提取很简单的,可以自己动手试试。
    JenJieJu
        9
    JenJieJu  
       2017-09-29 17:18:52 +08:00
    @linusyang 有 eu 包的地址吗?我刷了后卡 mi 了。
    linusyang
        10
    linusyang  
    OP
       2017-09-29 18:27:38 +08:00
    #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
    tSQghkfhTtQt9mtd
        11
    tSQghkfhTtQt9mtd  
       2017-09-29 21:18:54 +08:00 via Android
    只是需要 Safetynet 的话可以通过刷入 Magisk 然后安装一个模块的方式解决。
    imyip
        12
    imyip  
       2017-09-29 21:48:59 +08:00 via Android
    所以一加 5 移植公交卡到非氢氧系统可行性呢
    sol33
        13
    sol33  
       2017-09-29 21:52:34 +08:00
    部分机型不支持电信 cdma 的问题呢?
    mattx
        14
    mattx  
       2017-09-30 02:27:37 +08:00
    你好,请问下,小米 5 有办法同时使用 google 框架和电信卡么?
    ssdlh
        15
    ssdlh  
       2017-09-30 10:50:50 +08:00 via Android
    @mattx 这两个一起有什么问题吗?正在用。
    xx314327475
        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/
    linusyang
        17
    linusyang  
    OP
       2017-09-30 22:32:45 +08:00   1
    #11 @liwanglin12 没错,Magisk 可以绕过 SafetyNet 检测,也可以修改 build.prop,是个不错的方案。不过默认会 root,模块会直接挂在到根目录,安全性会下降一些,我就没考虑使用了。

    #12 @imyip 貌似不太行吧,NFC 公交卡是跟机型绑定的,不同小米手机支持的进度都不太一样,要分别测试。

    #13,14 @sol33 @mattx 要支持 CDMA1x 通话应该可以在 4636 工程模式里面改 preferred network,网上教程挺多的,不过我没电信卡,没测试过。

    #16 @xx314327475 只有官方包才能“卡刷”,即 OTA 升级,其他的 rom 都只能解锁 bootloader 在恢复模式里刷。小米手机现在刷 OTA 包不仅会验证包的签名,还需要服务器验证,有两重验证。
    asipirin1120
        18
    asipirin1120  
       2017-10-12 22:44:28 +08:00
    给大佬倒一杯卡布奇诺
    asipirin1120
        19
    asipirin1120  
       2017-10-12 22:48:59 +08:00
    嘛 公交卡提示要切换默认钱包 但是在 nfc 那块根本没有小米钱包的选项
    asipirin1120
        20
    asipirin1120  
       2017-10-12 23:20:10 +08:00
    OK
    切换到内置安全组件就能开公交卡了
    linusyang
        21
    linusyang  
    OP
       2017-10-12 23:29:38 +08:00   1
    @asipirin1120 NFC 下面的“安全模块位置”改成“内置安全模块” (Using embedded secure element)。默认是 HCE,给 Android Pay 用的。
    wangyilin1226
        22
    wangyilin1226  
       2017-10-28 20:27:29 +08:00 via Android
    膜拜大神了,之前因为 MIUI9 刷 opengapps 持续卡验证界面改刷欧版,因为只清空了 data 分区而没有格式化导致刷欧版卡第一屏,现在看了已经解决,万分感谢!
    不知可否共享一下 deodex 过后的 App,我拿了最新开发版提取出来的 apk 直接添加到 /system/app 看贴吧应该也能用。
    wangyilin1226
        23
    wangyilin1226  
       2017-10-28 20:30:17 +08:00 via Android
    我是从 Google 搜索到镜像站看到这篇文章,拿着标题搜也没有搜到原帖,反而用 bing 搜找过来了....
    linusyang
        24
    linusyang  
    OP
       2017-10-28 20:49:24 +08:00 via Android
    @wangyilin1226 我后来写了个脚本,自动部署在 https://github.com/linusyang92/mipay-extract/releases 这样每次升级就很轻松了。
    wangyilin1226
        25
    wangyilin1226  
       2017-10-28 21:11:32 +08:00 via Android
    刚看到 update... 感谢大神 release 里面是可以直接卡刷了吗?另外国内版 MIUI 有个叫 circle N 的原生风格做的很好,大佬可以试试看。
    linusyang
        26
    linusyang  
    OP
       2017-10-28 22:45:28 +08:00 via Android
    @wangyilin1226 对,TWRP 里面直接安装就行了
    wangyilin1226
        27
    wangyilin1226  
       2017-10-28 23:08:12 +08:00 via Android
    添加 mipay 卡提示银联可信服务服务已停止... 我看其他帖子还添加了 smartcardservice 不知道是不是因为这个
    wangyilin1226
        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)
    wangyilin1226
        29
    wangyilin1226  
       2017-10-28 23:23:27 +08:00 via Android
    另外国际版 MIUI 短信不能自动复制验证码,不知道是不是短信 App 不用导致的
    wangyilin1226
        30
    wangyilin1226  
       2017-10-28 23:47:50 +08:00 via Android
    改 build.prop 卡第一屏了... 如果大佬用的.26 能不能发一下原版... [email protected]
    linusyang
        31
    linusyang  
    OP
       2017-10-29 02:07:14 +08:00 via Android   1
    @wangyilin1226 这个只支持 eu 版,eu 版是基于国内版的,差别不大。国际版应该不支持,还要提取其他组件。releases 里面都是 mix 2 固件里提取的,其他机型要自己提取。
    wangyilin1226
        32
    wangyilin1226  
       2017-10-29 02:45:33 +08:00 via Android
    再次刷机不用 Build 文件了 同步刷 mipay 不报错了
    wangyilin1226
        33
    wangyilin1226  
       2017-10-29 04:25:53 +08:00 via Android
    @linusyang 我说的不能自动提取复制短信验证码就是 eu 版 改了 build.prop 卡开机以后不敢动了... 另外能否把小米漫游加入脚本?
    huaxianyan
        34
    huaxianyan  
       2017-10-30 15:30:11 +08:00
    我倒是可以用 Android Pay,但是在国内用不了啊……
    asipirin1120
        35
    asipirin1120  
       2017-10-30 16:33:28 +08:00
    Mix 2 可以开通岭南通 今天去试了 完美使用
    就是不知道 EU 刷机升级之后 重新移植 Mipay 还能不能用
    Jormin
        36
    Jormin  
       2017-10-31 03:01:28 +08:00
    大神,我直接卡刷了你 Github 上的 Mipay 文件夹。
    开机后,可以看到 小米钱包,但是点进去之后页面一直是在 Loading 的状态,右上角可以添加卡片,但是想打开小米闪付的话,也会一直提示在 Processing。
    请问你这边也会这样么? 系统是 eu 版本的 7.10.26, 设备倒是跟你一样,也是 Mix2
    Jormin
        37
    Jormin  
       2017-10-31 10:28:28 +08:00 via Android
    @wangyilin1226 唔 我的昨晚一直 loading 今天正常了,但是添加 Mi Pay 一样提示银联可信服务已停止。。。 我刷的 eu 版本没改过 build 啊。。。好奇怪,请问后来你是咋解决的?就看你说没改 build,没看懂。。。
    aa2893785
        38
    aa2893785  
       2017-11-01 11:34:59 +08:00
    不知道刷类原生的第三方能否按照这个方法移植?
    flystar
        39
    flystar  
       2017-11-05 08:46:28 +08:00
    @linusyang 请教,刷 xiaomi.eu 的固件,在国内能收到 ota 升级么,看官方帖子是有 ota 的
    另外,首次刷机,需要 Format Data,连 sd 卡的都要格式化么?那放在 sd 卡内的刷机固件不是也没了,应该放哪里呢
    谢谢~
    Jormin
        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 里找到这个固件刷即可。
    Jormin
        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.
    之后就可以正常读卡和加卡了。
    我是技术白,自己摸索出来的- -
    rebelliouswhiz
        42
    rebelliouswhiz  
       2017-11-06 14:30:55 +08:00
    @wangyilin1226 我也是莫名其妙,谷歌作者 nickname 才能找到这个文章...
    rebelliouswhiz
        43
    rebelliouswhiz  
       2017-11-06 14:44:46 +08:00
    @linusyang 请问是否有非 MIUI 系统移植 MIPAY 的相关经验?我的 MI6 准备上 xiaobai@XDA 的 Lineage 了,然而这个刷公交卡功能让我念念不忘... 如果有就最好啦,没有我就先拿 Superr's Kitchen 试着折腾一下
    rebelliouswhiz
        44
    rebelliouswhiz  
       2017-11-06 14:45:40 +08:00
    @aa2893785 你有没有试着折腾一下?
    flystar
        45
    flystar  
       2017-11-08 09:19:11 +08:00
    @Jormin 好的,多谢你的解答
    关于 1,查找了一些资料,基本确认 ota 下载的固件跟完整包一样大小,每次都是
    关于 2,Format data 之后,此时是在 recovery 之下,是直接可以 usb 连接电脑,传输 rom,进行刷机,还是需要重启进入 recovery,然后进行操作?
    另外,我是电信 cdma,不太清楚 eu 版本有没有精简掉这块,因为欧洲好像都没有使用 cdma 的网络。。。
    Jormin
        46
    Jormin  
       2017-11-08 20:42:03 +08:00 via Android
    @flystar 2,直接在 recovery 下连接电脑,不用重启。
    3,现在有官方的 MIUI9 国际版了,你可以试试看。我感觉小米不是一直在推自己这个商务人士很实用 因为支持的频段多么,国际版肯定不会阉割吧。。。
    strayuncle
        47
    strayuncle  
       2017-11-09 10:50:00 +08:00
    顶一个,我也想做这个。
    asipirin1120
        48
    asipirin1120  
       2017-11-10 01:22:10 +08:00 via Android
    @Jormin 不好意思 问一下 lib 文件夹是从哪来的
    asipirin1120
        49
    asipirin1120  
       2017-11-10 02:00:35 +08:00 via Android
    @Jormin 解决了 就是提取 apk 里对应版本的 so 文件放到系统的两个 lib 文件夹内 这样在执行银联那个模块的时候就能直接从系统调用对应 so 文件而不用去 app 内找了
    linusyang
        50
    linusyang  
    OP
       2017-11-10 03:08:14 +08:00   2
    @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
        51
    asipirin1120  
       2017-11-10 20:24:56 +08:00 via Android
    @linusyang 我是把动态库直接丢到 /system/lib 和 /system/lib64 里的 还特意去查了查几个动态库的版本说明 (逃。
    flynaj
        52
    flynaj  
       2017-11-13 16:07:49 +08:00 via Android
    不需要,支付用支付宝,公交车刷卡就行
    flynaj
        53
    flynaj  
       2017-11-13 16:08:47 +08:00 via Android
    系统要的是干净快速
    Jormin
        54
    Jormin  
       2017-11-13 18:19:17 +08:00 via Android
    @flynaj 每个人的需求都不一样 我觉得闪付很多优惠 所以我要(
    wangyilin1226
        55
    wangyilin1226  
       2017-12-05 08:36:56 +08:00 via Android
    @linusyang 请问为什么 beta 版 release 停更了
    linusyang
        56
    linusyang  
    OP
       2017-12-06 12:05:40 +08:00
    @wangyilin1226 我在用稳定版,一周一更太麻烦。可以自己改 deploy.sh 里面的 url,然后运行一下这个脚本就可以了。
    Jormin
        57
    Jormin  
       2017-12-14 17:49:39 +08:00
    @linusyang 楼主 今天尝试着把你 Github 上的代码下载下来 修改了 deploy.sh 里国内新版 miui 的下载链接 运行脚本刷入解压出来的 zip 文件,结果打开后小米钱包没法用了。一打开就崩溃= =
    不会是厂商开始限制了吧= =
    linusyang
        58
    linusyang  
    OP
       2017-12-14 19:21:06 +08:00 via Android
    @Jormin 报错信息是什么?刷 releases 里面的旧版还能用吗?
    Jormin
        59
    Jormin  
       2017-12-14 19:53:22 +08:00
    @linusyang 我发现我钛备份安装后也是直接闪退。。。所以可能是系统的问题 我再测试下 然后有问题再跟你反馈下看看你能帮我不( 先谢谢啦
    Jormin
        60
    Jormin  
       2017-12-14 20:34:05 +08:00
    @linusyang 装旧版的 releases 可以了 我想爆炸- -
    看到你消息的时候我已经重装了系统了 TAT
    xiaozhizhu1997
        61
    xiaozhizhu1997  
       2017-12-15 11:24:24 +08:00
    之前用 MI5,刷国际版,直接装两个 APK,发现只能用原有的银行卡 /公交卡,不能新绑 /开,删了就只能刷回中国版绑回来了...
    看来把 APK 们固化很重要啊...
    linusyang
        62
    linusyang  
    OP
       2017-12-15 14:09:11 +08:00
    @Jormin 新版好像还依赖其他 apk,我有空研究一下新版的机制。
    @xiaozhizhu1997 不能开卡是因为国际版缺组件,银联的、NFC 的都少。eu 版的底包是国内版,不是国际版,所以补补 apk 就能用。
    Jormin
        63
    Jormin  
       2017-12-15 17:57:31 +08:00
    @linusyang 大神!我这种技术白就只能指望你了(捂脸
    wangyilin1226
        64
    wangyilin1226  
       2017-12-17 21:14:28 +08:00 via Android
    @linusyang 小米钱包新版加入了 NFC 卡片模拟,应该是缺这个吧。
    coldwan
        65
    coldwan  
       2017-12-31 16:20:19 +08:00
    @wangyilin1226 @linusyang 我刷了国际版的,钱包打开可以看到公交卡余额,3 张银行卡,但是点进公交卡就让我把系统默认钱包切换到小米钱包,可是在 NFC 下面根本没有这个选项,安全模块已经是使用 HCE 钱包了。
    coldwan
        66
    coldwan  
       2017-12-31 16:54:44 +08:00
    @coldwan 也没有 内置安全模块 这个选项
    linusyang
        67
    linusyang  
    OP
       2017-12-31 18:12:37 +08:00
    @coldwan 国际版的不行,eu 版不是国际版。
    coldwan
        68
    coldwan  
       2017-12-31 22:04:16 +08:00
    @linusyang 嗯 我知道。貌似解决国际版中的 内置安全模块 应该就可以了
    wangyilin1226
        69
    wangyilin1226  
       2018-01-07 16:56:10 +08:00
    似乎官方 NFC 模拟比软件做得更好 并且不需要 root 权限 过两天 MIX2 就要更新到 Android Oreo 了 希望大佬可以研究一下新版机制
    Jormin
        70
    Jormin  
       2018-01-12 15:39:42 +08:00
    每天都来刷一刷 看看大神更新了没- -
    wangyilin1226
        71
    wangyilin1226  
       2018-01-13 19:34:17 +08:00
    @linusyang realease 中有了强制加密的文件,看到 mokee 开发者 XiNGRZ 提到在开启了 FBE 的手机上运行不支持 FBE 的 ROM (反之亦然),那么在格式化 data 后刷入运行的 MIUI.eu 能够正常运行是否说明官方已经开启了 FBE?
    wangyilin1226
        72
    wangyilin1226  
       2018-01-13 19:49:49 +08:00
    不好意思,通过 rec 确定了 FBE 可以通过后期处理加入= =
    wangyilin1226
        73
    wangyilin1226  
       2018-01-14 13:22:55 +08:00 via Android
    最新版 MIUI.eu 9.2.5.0 稳定版刷入小米钱包后 NFC 选项中没有系统安全模块无法调用小米钱包支付
    wangyilin1226
        74
    wangyilin1226  
       2018-01-14 22:15:07 +08:00
    再次确认刷入其他版本的也无法调用,疑似 9.2.5.0 在 NFC 设置中屏蔽了系统安全模块
    srwgin
        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 里面不能开卡和充值
    srwgin
        76
    srwgin  
       2018-01-16 15:04:55 +08:00
    顺便 如果用你的自动处理脚本 其他机型的话 除了改 2 个 rom 下载地址之外,其他还有代码要针对自己机型进行处理吗 谢谢
    rility
        77
    rility  
       2018-01-18 16:05:16 +08:00   2
    谢谢 op,用你做好的 zip 可以使用
    设备 mi6 版本最新国际版体验版 之前那些说没有内置安全模块的,可以在 build.prop 里进行更改 ro.se.type=HCE,UICC,eSE 即可
    推荐做成 magisk module
    linusyang
        78
    linusyang  
    OP
       2018-01-19 23:19:31 +08:00
    @rility 谢谢提醒,已经在最新的版本里加了这个修复。
    @srwgin 其他理论上应该不用改的。
    @wangyilin1226 eu 版又开始乱改东西了,刷最新版的包会自动修复,开发板稳定版都重新打包了。FBE 那个包就是我在主贴里提到的,只是以前忘了放出来。
    linusyang
        79
    linusyang  
    OP
       2018-01-20 00:00:11 +08:00
    @srwgin 补充一下,步骤 1 可以不需要,应该可以开卡充值的。我手机拿到手一解锁就刷了 eu 版和 mipay 包,基本没有用过原版国内系统。
    wangyilin1226
        80
    wangyilin1226  
       2018-01-21 07:02:29 +08:00
    请问强制加密的 zip 包是每刷一边系统都要重新刷入吗
    wangyilin1226
        81
    wangyilin1226  
       2018-01-21 07:29:54 +08:00
    在格式化并清空存储后刷入 8.0 包和强制加密,系统启动后 rec 依旧不需输入密码进入,加密失败。
    wangyilin1226
        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 下载解密版本。
    Jormin
        83
    Jormin  
       2018-01-21 14:35:17 +08:00 via Android
    @wangyilin1226 请问你现在的系统是测试版的 8.1.18 不?强制加密的包是用的 OP stable 里的强制加密 zip 么?
    wangyilin1226
        84
    wangyilin1226  
       2018-01-21 16:18:54 +08:00
    @Jormin 我现在在 FBE 加密基础上直接刷入 Oreo 和刷入 Oreo 后刷入强制加密都会导致无法开机,现在修改 boot.img 试试
    wangyilin1226
        85
    wangyilin1226  
       2018-01-21 16:31:16 +08:00
    晕了,Oreo 解包 boot.img 后没有 fstab.qcom,是不是 MIUI.eu 开发者把 FBE 解密魔改掉了
    wangyilin1226
        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
    wangyilin1226
        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-26-xts。filenames_encryption_mode 有两个可能的值:aes-256-cts 和 aes-256-heh。如果未指定 filenames_encryption_mode,则使用 aes-256-cts 值。
    wangyilin1226
        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 位置后要修改三个项目才能引导开机加密?
    wangyilin1226
        89
    wangyilin1226  
       2018-01-21 18:23:36 +08:00
    魔改了一下别人给 OP5Oreo 做的去除加密可以加密了,我看看怎么上传上来
    wangyilin1226
        90
    wangyilin1226  
       2018-01-21 18:28:11 +08:00
    https://share.weiyun.com/0a0c59afb67ef61a43c8083430330318
    刷入 Oreo 后刷入此文件即可解锁 DM 并加密 FBE、
    wangyilin1226
        91
    wangyilin1226  
       2018-01-21 20:21:18 +08:00
    另外最新稳定版的短信验证码快捷复制在 Oreo 也没有了,不知道是被屏蔽了还是没做进去。
    linusyang
        92
    linusyang  
    OP
       2018-01-21 20:38:42 +08:00
    @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
    linusyang
        93
    linusyang  
    OP
       2018-01-21 20:42:14 +08:00
    @wangyilin1226 验证码这个估计是屏蔽了,可以反汇编短信程序看看。
    linusyang
        94
    linusyang  
    OP
       2018-01-21 21:28:09 +08:00
    @wangyilin1226 我改了一下 com.android.mms.util.VerificationCodeUtils 里面对国际版的判断。如果是 mix2,可以试试把 eufix.zip 解包,覆盖 priv-app/Mms.apk ,看看复制验证码功能恢复了没有。
    wangyilin1226
        95
    wangyilin1226  
       2018-01-21 22:39:11 +08:00
    欧版再这么搞下去我就要跳坑国际版了...
    linusyang
        96
    linusyang  
    OP
       2018-01-21 23:31:39 +08:00 via iPhone
    @wangyilin1226 这是小米的问题,国际版一样没有这些功能,eu 版就是因为把 build.prop 改成国际版才导致功能缺失,他们已经 patch 一部分 app,恢复了国内版的部分功能了。
    Jormin
        97
    Jormin  
       2018-01-22 00:41:39 +08:00 via Android
    @linusyang 大神 所以直接刷 eufix 这个包 就可以加密系统了吗?(捂脸
    Jormin
        98
    Jormin  
       2018-01-22 00:43:27 +08:00 via Android
    @linusyang 不需要刷好系统第一次开机刷吧?现在装了近 400 个 app 真是不敢乱来,怕卡米要清光数据重来
    akkkkk77
        99
    akkkkk77  
       2018-01-22 09:09:11 +08:00 via Android
    我想请问,刷国际版系统,再单独安装小米支付之类的 app 可否
    linusyang
        100
    linusyang  
    OP
       2018-01-22 10:11:50 +08:00   1
    @Jormin 呃,不行的,这个只能刚刷完机的时候加密。eu 的固件有 bug,在设置里点加密会卡米,所以才用这种临时方案,利用内核第一次启动时候根据 fstab.qcom 强制加密。
    @akkkkk77 没试过,你可以试试?可能还要补其他 nfc 相关的 apk (smartcard,nextpay 之类的,没仔细研究)。
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1177 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:37 PVG 01:37 LAX 09:37 JFK 12:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86