V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Rorysky
V2EX  ›  macOS

macOS 越来越不面向开发者了, macOS 15 上竟然无法修改网卡 mac 并在重启后保持?

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

    改 mac 地址很简单就是用 ifconfig 命令,root 权限执行。 但问题是 ifconfig 在 wifi 连接的情况下是直接返回执行失败的(大概资源被当前网络连接占用),需要先将当前网络断开,但是这一步在 macOS 15 上没有对应的 命令行,14 以前的版本可以用 airport -z 实现,但是 airport 命令已经被苹果废弃了...

    大家有什么好办法么?

    3 条回复    2024-11-14 14:25:16 +08:00
    jmtsai
        1
    jmtsai  
       38 天前
    sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
    sudo ifconfig en0 ether [mac address]

    macos 14 和 15 都能用。目前 15.0.1 也运行正常
    eairjhioaegnh
        2
    eairjhioaegnh  
       38 天前
    这个项目有 Wi-Fi 相关操作: https://github.com/digital-pers0n/Aerodrome/
    我提取了断开操作,我自己测试是可以的:

    //main.m

    #import <Foundation/Foundation.h>

    struct Apple80211;
    typedef struct Apple80211 *Apple80211Ref;

    int Apple80211Disassociate(Apple80211Ref wref);

    int Apple80211Open(Apple80211Ref *handle);

    int Apple80211Close(Apple80211Ref handle);

    int Apple80211BindToInterface(Apple80211Ref handle, CFStringRef interface);


    int main() {
    int error;
    Apple80211Ref ref;
    error = Apple80211Open(&ref);
    Apple80211BindToInterface(ref, CFSTR("en0"));

    if (error == 0) {
    Apple80211Disassociate(ref);
    } else {
    printf("%d\n", error);
    }
    Apple80211Close(ref);
    return 0;
    }
    // clang main.m -o main -O3 -F /System/Library/PrivateFrameworks -framework Apple80211 -framework Foundation && ./main
    netdcy
        3
    netdcy  
       37 天前
    之前能在重启后保持修改的 mac 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2551 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 04:12 · PVG 12:12 · LAX 20:12 · JFK 23:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.