mac 连接小米手机大家试过吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
najunuoyan
V2EX    Apple

mac 连接小米手机大家试过吗

  •  
  •   najunuoyan 244 天前 3294 次点击
    这是一个创建于 244 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,mac 上面安装了小米互联服务,想试一下传说中的可以在 mac 上投屏并且控制手机的“妙享桌面”,但是一直没办法找到手机,连同一 wifi 试了,mac 连小米的热点也试了,一直是“当前暂无设备”,但是上面的“文件互传”是好的,小米手机的系统和相关软件都升级过了,mac 也是 15.3 的最新系统,有大佬能指点一下吗?

    第 1 条附言    242 天前
    问题解决,11 楼和 21 楼给了方案,21 楼的兄弟还给了下载链接
    第 2 条附言    192 天前
    已经解决了,语言和地区改成中国大陆之后就行了,大家遇到类似问题的可以看看
    第 3 条附言    184 天前
    32 楼有更完美的解决方案
    36 条回复    2025-05-22 11:29:10 +08:00
    luka77
        1
    luka77  
       244 天前

    这几个软件更新到这些版本,具体来源是这个帖子:https://www.coolapk.com/feed/61158411?shareKey=MjVjODJmYzM3Nzg5NjdhNWFkMjE
    najunuoyan
        2
    najunuoyan  
    OP
       244 天前
    @luka77 感谢回复,貌似知道问题点了,我的小米 15 升级到了最新的澎湃 OS2 ,应用商店提示“小米互联通信服务”未适配您的安卓版本,我来看看怎么解决
    najunuoyan
        3
    najunuoyan  
    OP
       244 天前
    @luka77
    ![]( )
    0x663
        4
    0x663  
       244 天前
    我的也是发现不了设备。
    najunuoyan
        5
    najunuoyan  
    OP
       244 天前
    @0x663 你看我 2 楼的回复,是不是一样的原因
    0x663
        6
    0x663  
       244 天前
    我的也是发现不了设备。
    @najunuoyan #5 不是,我搜索了手机里这些服务都更新到了最新版本了。
    najunuoyan
        7
    najunuoyan  
    OP
       244 天前
    @0x663 最新版本的兼容性会有点问题
    0x663
        8
    0x663  
       244 天前
    @najunuoyan #7 get ,等修复了。
    Rever4433
        9
    Rever4433  
       244 天前
    Hyper 更新微信小程序上下载最新版的互联互通服务就行了
    noyidoit
        10
    noyidoit  
       244 天前
    我 Mac 和你一样的情况,系统、软件、网络配置,折腾了 N 个版本都不行。但是 Windows 什么都不用折腾,只要安上小米电脑管家就能正常使用妙享桌面
    chax
        11
    chax  
       244 天前
    我很早就用了,Mac 互联共享 1.1.0 版本可以找到我的小米 13 澎湃 os2 ,升级 1.2.0 之后找不到。降级之后解决。所以找个 1.1.0 的小米互联共享试试
    najunuoyan
        12
    najunuoyan  
    OP
       243 天前
    @noyidoit 你的是小米电脑吗?
    najunuoyan
        13
    najunuoyan  
    OP
       243 天前
    @chax
    @noyidoit
    @0x663
    @Rever4433
    现在的问题是最新的系统自带的“小米互联通信服务”是 4.0.238.10 ,我通过 9 楼朋友提供的微信小程序更新到了 4.1.215.10 最新版,仍然不行。感觉应该回退一个大版本,就是 1 楼提到的 3.1.953.10 ,但是“小米互联通信服务”是系统服务,不能降级,只能通过手机管家卸载更新,也就是把 4.1.215.10 降回系统自带的 4.0.238.10 ,如果有朋友知道如何降级可以踢一下
    Leoking222
        14
    Leoking222  
       243 天前   1
    我昨天试过了,互联服务要升级到最新版,并且好像只支持小米 15
    najunuoyan
        15
    najunuoyan  
    OP
       243 天前
    @Leoking222 我就是小米 15 ,小米互联服务是 mac 的 appstore 上安装的 1.2.201 (157)版本,请问你是什么版本啊
    Leoking222
        16
    Leoking222  
       243 天前
    我是 1.2.0 ,最好去官网下载,而不要去 appstore 下载
    Leoking222
        17
    Leoking222  
       243 天前
    @najunuoyan 我是 1.2.0 ,最好去官网下载,而不要去 appstore 下载
    najunuoyan
        18
    najunuoyan  
    OP
       243 天前
    @Leoking222 我是官网的不行,然后去 app store 下载的,发现也不行
    noyidoit
        19
    noyidoit  
       243 天前
    @najunuoyan 不是,是鸡哥的某款 7840 笔记本,具体型号忘了
    noyidoit
        20
    noyidoit  
       243 天前
    @Leoking222 刚试过,去[官网]( https://mijia-ios-adhoc.cnbj1.mi-fds.com/mijia-ios-adhoc/hyperconnect/HyperConnect.dmg)下了小米互联服务(1.2.0, 508),也不行。电脑 Macbook Air M2, MacOS 15.3 ,手机小米 15 ,HyperOS 2.0.101.0 ,互联互通服务 16.2.2.0.2412302115 ,小米互联通信服务 4.0.238.10 。我觉得不是手机这边的问题,毕竟同一部手机,我在 Windows 上可以正常使用(甚至不是小米官方支持的电脑),而 Mac 上是完全不可用。

    附两张图

    https://imgur.com/VWxCqjm

    https://imgur.com/kC02AWp
    0A0
        21
    0A0  
       243 天前
    @najunuoyan
    解决了。
    你的思路错了,跟小米互联通信服务版本号无关,我从 3.1 到最新的 4.1 都尝试了还是无法连接。
    原因是 mac 客户端 1.2.0 开始故意限制了老机型强开使用。广播的 mdns 没问题但客户端拒绝连接。
    使用老版本的 1.1.0 可恢复。有人 1.2.0 也可以但我这边不行而且也不是老机型。感觉是机型限制设置出问题了。
    给你个 1.1.0 的你试试应该可以用了。
    https://drive.google.com/file/d/1UAbYxlxhqqsvhTXbGRYHMDSABLBf9jV7/edit?pli=1
    ![9ziou6.png]( https://files.catbox.moe/9ziou6.png)
    Shadowalker0314
        22
    Shadowalker0314  
       243 天前 via Android
    哥几个,我用 appstore 的版本也是发现不了设备,后来用官网 dmg 版本可以了,有以下几个条件:
    1.不能开 lulu 防火墙(设置 app 放行规则无效,不知道他用了什么鬼协议)
    2.手机是澎湃 os2 以上(老版本咋更新,组件满足条件也不行)
    3.app 是官网版本,appstore 的用不了(不知道现在怎么样了,以前不行)
    najunuoyan
        23
    najunuoyan  
    OP
       242 天前
    @0A0 NB 兄弟,一步到位,可以了
    neptuno
        24
    neptuno  
       231 天前
    @0A0 #21 ,退回 1.1 就好了
    jamesjammy061
        25
    jamesjammy061  
       213 天前
    能不能强制单播直连,公司网络禁止了组播
    jamesjammy061
        26
    jamesjammy061  
       213 天前
    找到了一些端倪,

    wireshark 抓包显示,过滤所有组播 ip `ip.dst >= 224.0.0.0 and ip.dst <= 239.255.255.255`

    ```log
    Standard query response 0x0000 PTR, cache flush Android.local PTR, cache flush Android.local A, cache flush 192.168.136.46 AAAA, cache flush fe80::30b8:51ff:fe17:4903 NSEC, cache flush 46.136.168.192.in-addr.arpa NSEC, cache flush 3.0.9.4.7.1.E.F.F.F.1.5.8.B.0.3.0.0.0.0.0.0.0.0..0.0.0.0.8.E.F.ip6.arpa NSEC, cache flush Android.local
    Standard query 0x0000 PTR _mi-connect._udp.local, "QU" question
    Standard query 0x0000 PTR _lyra-mdns._udp.local, "QU" question
    ```

    里面好像可以看到三个 mDNS 的类型,`_mi-connect._udp.local`、`_lyra-mdns._udp.local`、`Android.local`

    然后直接用 macOS 自带的命令查了一下 `dns-sd -B _lyra-mdns._udp local` 只有 `_lyra-mdns` 这个有数据

    ```log
    dns-sd -B _lyra-mdns._udp local
    Browsing for _lyra-mdns._udp.local
    DATE: ---Mon 10 Mar 2025---
    21:40:02.665 ...STARTING...
    Timestamp A/R Flags if Domain Service Type Instance Name
    21:40:06.193 Add 2 17 local. _lyra-mdns._udp. 3F2E52BE
    21:41:11.105 Rmv 0 17 local. _lyra-mdns._udp. 3F2E52BE
    ```

    然后继续看下它广播了什么东西 `dns-sd -L "3F2E52BE" _lyra-mdns._udp local.`

    ```log
    dns-sd -L "3F2E52BE" _lyra-mdns._udp local.
    Lookup 3F2E52BE._lyra-mdns._udp.local.
    DATE: ---Mon 10 Mar 2025---
    21:42:45.657 ...STARTING...
    21:42:47.422 3F2E52BE._lyra-mdns._udp.local. can be reached at 3F2E52BE.local.:5353 (interface 17)
    AppData=AkEBPy5Svug7AAIBDwoDAYNPAQEgAhlNYXR0aGV3IFBlcmV655qEUmVkbWkgSzUwIwAjAr+Q MediumType=64 DebugInfo=\{msg:hello,\ ifname:ap0,\ v4:192.\$\)+.\$\&\).46,\ v6:fe80::\&#\<+:\(\$@@:@\?\$\*:4903\}
    ```

    这里 ip 是打了掩码的,不过最后 46 确实是我的手机 `192.\$\)+.\$\&\).46`

    解开 `AppData` 的 base64 ,`echo xxx | base64 -d | xxd`,显示

    ```
    00000000: 0241 013f 2e52 bee8 3b00 0201 0f0a 0301 .A.?.R..;.......
    00000010: 834f 0101 2002 194d 6174 7468 6577 2050 .O.. ..Matthew P
    00000020: 6572 657a e79a 8452 6564 6d69 204b 3530 erez...Redmi K50
    00000030: 2300 2302 bf90 #.#...
    ```

    可以看到确实是我的手机,估计前后缀除了定界符,还有一些小米自己的私有信息

    用 `dns-sd -G v4v6 3F2E52BE.local.` 就可以查到具体 ip 了

    ```log
    dns-sd -G v4v6 3F2E52BE.local.
    DATE: ---Mon 10 Mar 2025---
    21:44:03.917 ...STARTING...
    Timestamp A/R Flags IF Hostname Address TTL
    21:44:06.260 Add 3 17 3F2E52BE.local. 192.168.136.46 120
    ```

    然后 Google 了一下,在 eu 小米论坛找到了这个 [日志]( https://xiaomi.eu/community/attachments/log_fuxi_v816-0-23-12-4-dev-txt.50276/)

    里面也有一行提到了

    ```log
    12-12 03:16:46.265 10471 25415 W lyra-mdns-core: query _lyra-mdns._udp.local[0C] timeout!
    ```

    ---

    我在想,能不能伪造这个东西,搞个 mDNS 诱骗器之类的,向 loopback 发这个 mDNS 广播,让小米互联、Xcode debug remote 之类的 app 发现这个设备,然后解析出具体 ip ,剩下的流程走单播,这样就能通了
    jamesjammy061
        27
    jamesjammy061  
       213 天前
    python 代码如下
    ```py
    #!/usr/bin/env python3

    from zeroconf import ServiceBrowser, Zeroconf
    import time
    import socket
    from typing import List, Dict, Optional

    class MDNSListener:
    def __init__(self):
    self.services: Dict[str, Dict] = {}

    def remove_service(self, zeroconf: Zeroconf, type_: str, name: str) -> None:
    print(f"服务被移除: {name}")
    if name in self.services:
    del self.services[name]

    def add_service(self, zeroconf: Zeroconf, type_: str, name: str) -> None:
    info = zeroconf.get_service_info(type_, name)
    if info:
    addresses = [socket.inet_ntoa(addr) for addr in info.addresses]
    self.services[name] = {
    'name': name,
    'type': type_,
    'addresses': addresses,
    'port': info.port,
    'server': info.server,
    'properties': info.properties
    }
    print(f"发现新服务: {name}")
    print(f" 地址: {', '.join(addresses)}")
    print(f" 端口: {info.port}")
    print(f" 服务器: {info.server}")

    def update_service(self, zeroconf: Zeroconf, type_: str, name: str) -> None:
    print(f"服务更新: {name}")
    self.add_service(zeroconf, type_, name)

    def discover_services(duration: int = 5) -> Dict[str, Dict]:
    """发现本地网络中的所有 mDNS 服务"""
    zerocOnf= Zeroconf()
    listener = MDNSListener()

    # 常见的服务类型
    service_types = [
    # "_http._tcp.local.",
    # "_https._tcp.local.",
    # "_workstation._tcp.local.",
    # "_printer._tcp.local.",
    # "_ipp._tcp.local.",
    # "_airplay._tcp.local.",
    # "_spotify-connect._tcp.local.",
    # "_googlecast._tcp.local.",
    # "_googlecast._tcp.local.",
    "_mi-connect._udp.local.",
    "_lyra-mdns._udp.local.",
    ]

    browsers = [ServiceBrowser(zeroconf, service_type, listener)
    for service_type in service_types]

    try:
    print(f"正在扫描 mDNS 服务,持续{duration}秒...")
    time.sleep(duration)
    finally:
    zeroconf.close()

    return listener.services

    def query_service_details(service_name: str, service_type: str) -> Optional[Dict]:
    """查询特定服务的详细信息"""
    zerocOnf= Zeroconf()
    try:
    info = zeroconf.get_service_info(service_type, service_name)
    if info:
    addresses = [socket.inet_ntoa(addr) for addr in info.addresses]
    return {
    'name': service_name,
    'type': service_type,
    'addresses': addresses,
    'port': info.port,
    'server': info.server,
    'properties': {k.decode(): v.decode() if isinstance(v, bytes) else v
    for k, v in info.properties.items()}
    }
    finally:
    zeroconf.close()
    return None

    def main():
    # 1. 发现所有服务
    print("开始扫描本地网络中的 mDNS 服务...")
    services = discover_services(10) # 扫描 10 秒

    # 2. 显示所有发现的服务
    print("\n 发现的所有服务:")
    for name, service in services.items():
    print(f"\n 服务名称: {name}")
    print(f"服务类型: {service['type']}")
    print(f"IP 地址: {', '.join(service['addresses'])}")
    print(f"端口: {service['port']}")
    print(f"服务器: {service['server']}")

    # 3. 如果发现了服务,查询第一个服务的详细信息
    if services:
    first_service = next(iter(services.items()))
    name, service = first_service
    print(f"\n 获取服务 '{name}' 的详细信息:")
    details = query_service_details(name, service['type'])
    if details:
    print("详细信息:")
    print(f"属性: {details['properties']}")
    else:
    print("无法获取详细信息")
    else: print("\n 未发现任何服务")

    if __name__ == "__main__":
    main()
    ```

    响应结果

    ```
    python mdns_discovery.py
    开始扫描本地网络中的 mDNS 服务...
    正在扫描 mDNS 服务,持续 10 秒...
    发现新服务: 3F2E52BE._lyra-mdns._udp.local.
    地址: 192.168.136.46
    端口: 5353
    服务器: 3F2E52BE.local.
    服务更新: 3F2E52BE._lyra-mdns._udp.local.
    发现新服务: 3F2E52BE._lyra-mdns._udp.local.
    地址: 192.168.136.46
    端口: 5353
    服务器: 3F2E52BE.local.

    发现的所有服务:

    服务名称: 3F2E52BE._lyra-mdns._udp.local.
    服务类型: _lyra-mdns._udp.local.
    IP 地址: 192.168.136.46
    端口: 5353
    服务器: 3F2E52BE.local.

    获取服务 '3F2E52BE._lyra-mdns._udp.local.' 的详细信息:
    详细信息:
    属性: {'AppData': 'AkEBPy5Svug7AAIBDwoDAYNPAQEgAhlNYXR0aGV3IFBlcmV655qEUmVkbWkgSzUwIwAjAr+Q', 'MediumType': '64', 'DebugInfo': '{msg:reply, ifname:ap0, v4:192.$)+.$&).46, v6:fe80::&#<+:($@@:@?$*:4903}'}

    ```
    jamesjammy061
        28
    jamesjammy061  
       213 天前
    强制诱骗感觉不太行,wireshark 捕获包之后重复都无法触发,估计还会有单播包的心跳或者校验包
    jamesjammy061
        29
    jamesjammy061  
       213 天前
    剩下的办法可能就是看下能不能 hook 他的启动函数了,直接入参过去调用
    najunuoyan
        30
    najunuoyan  
    OP
       213 天前
    @jamesjammy061 兄弟 NB 啊,加油加油,争取破解掉它的协议
    najunuoyan
        31
    najunuoyan  
    OP
       192 天前
    已经解决了,语言和地区改成中国大陆之后就行了,大家遇到类似问题的可以看看
    NASK
        32
    NASK  
       185 天前   4
    我还是更喜欢使用美区+英文.如果想让 macOS 在美区英文的情况下,小米互联互通依然可以共享屏幕的话,可以选择单独设置地区
    ```bash
    defaults write com.xiaomi.hyperConnect AppleLocale -string "zh_CN"
    ```
    najunuoyan
        33
    najunuoyan  
    OP
       184 天前
    @NASK 兄弟 NB ,确实可以
    Linkia
        34
    Linkia  
       182 天前
    @NASK 兄弟牛逼,解决痛点了!
    AbyssViper
        35
    AbyssViper  
       155 天前
    小米 10Pro 之前可以用,升级了一下小米互联服务现在回退也搜索不到,有懂哥吗。
    顺带附一个小米互联服务的包下载链接
    https://cdn.cnbj1.fds.api.mi-img.com/mijia-ios-adhoc/hyperconnect/HyperConnect-1.5.0.dmg
    版本号可以更改
    wbuntu
        36
    wbuntu  
       140 天前
    @NASK 牛,确实可以了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3673 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 00:50 PVG 08:50 LAX 17:50 JFK 20:50
    Do have faith in what you're doing.
    ubao 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