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

35 天前
 Rorysky

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

大家有什么好办法么?

1411 次点击
所在节点    macOS
3 条回复
jmtsai
34 天前
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z
sudo ifconfig en0 ether [mac address]

macos 14 和 15 都能用。目前 15.0.1 也运行正常
eairjhioaegnh
34 天前
这个项目有 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
33 天前
之前能在重启后保持修改的 mac 吗?

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

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

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

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

© 2021 V2EX