derhuerst / node-awdl

Send data via Apple Wireless Direct Link (AWDL) using JavaScript.
https://github.com/derhuerst/node-awdl
ISC License
8 stars 0 forks source link

use the NetService Bounjour browsing API to "enable" AWDL traffic #3

Open derhuerst opened 4 years ago

derhuerst commented 4 years ago

It seems like, on some Macs, AWDL traffic is not permanently "enabled"/allowed, but applications must explicitly request it to be "passed through" to the awdl0 interface. proxawdl does this via the NetService API:

https://github.com/seemoo-lab/proxawdl/blob/24c19da1b0fb71a180104e2014a93e11d7bd5227/proxawdl/main.swift#L108-L128

derhuerst commented 3 years ago

Some debugging tricks from the AWDL paper:

Apple Console. The Console program is the central place to access logs since macOS 10.12 and includes debug mes- sages from the kernel. To receive verbose output from the Wi-Fi driver, we increased the log level using custom boot arguments which we found by searching for references to the PE_parse_boot_arg function in the Wi-Fi driver. The following boot arguments maximize the driver’s debug out- put:

nvram boot-args="debug=0x10000 \ awdl_log_flags=0xffffffffffffffff \ awdl_log_flags_verbose=0xffffffffffffffff \ awdl_log_flags_config=1 wlan.debug.enable=0xff"

With the increased log level, Console shows additional in- formation such as state transitions and the current channel sequence:

IO80211Family <...> com.apple.p2p: AWDL ON: [infra 􏰀→ (100) 72%], (6/44/44) [44 0 0 0 0 0 0 0 6 44 􏰀→ 44 0 0 0 0 0] Low Power