나는 android6.0.1을 가지고 있고 핫스팟이 켜져 있을 때 wps를 활성화하고 싶습니다.
누구든지 몇 가지 아이디어를 제공하고 다른 파일에 적용하고 싶은 변경 사항을 제공할 수 있습니까?
누가 wps 서버 애플리케이션을 제공할 수 있나요?
고마워요, 비노스님,
답변1
흥미로운 우연의 일치. 오늘도 데비안을 위해 이것을 찾고 있었습니다. 현재 나는 다음을 수행하고 있습니다:
http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/external/bsd/wpa/dist/hostapd/README-WPS 그리고 조금 https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf
다음 줄을 복사하면 됩니다.
wpa_psk_file=/home/<username>/etc/hostapd/hostapd.psk
ctrl_interface=/var/run/hostapd
eap_server=1
wps_state=2
ap_setup_locked=1
wps_pin_requests=/var/run/hostapd.pin-req
device_name=USB2.0 WLAN
manufacturer=ATHEROS
model_name=WAP
model_number=123
serial_number=12345
device_type=6-0050F204-1
os_version=01020300
config_methods=label display push_button keypad
내 hostapd.conf
파일로 이동합니다. 나는 나 자신을 위해 사용자 정의 항목을 만들었지 ~/etc/hostapd.conf
만 일반적으로 에 하나가 있습니다 /etc/hostapd/hostapd.conf
. 귀하의 경우에는 변경해야 할 수도 있습니다 device_type
. 주로 제조사 등의 정보를 확인하려고 노력하지만... 그다지 중요하지는 않다고 생각합니다. 그때 manufacturer
찾아서 serial number
사용할 수 있었어요 (뒤에 보이는 숫자 는 버스번호와 기기번호 입니다 )lsusb
sudo lsusb -v -s 5:7
-s
lsusb
그런 다음 hostapd
새 구성 파일로 다시 시작했습니다.
sudo pkill hostapd
sudo bash -c "nohup hostapd '$HOME/etc/hostapd/hostapd.conf' > '$HOME/nohupHostapd.out'" &
빠른 작업 후 sudo hostapd_cli wps_pbc
WPS를 사용하여 프린터에 연결할 수 있습니다.
답변2
다음 파일에 문자열(wps_state, eap_server)을 추가해야 합니다.
시스템/netd/서버/SoftapController.cpp
int SoftapController::setSoftap(int argc, char *argv[]) {
int hidden = 0;
int channel = AP_CHANNEL_DEFAULT;
int wps_state = 2;
if (argc < 5) {
ALOGE("Softap set is missing arguments. Please use:");
ALOGE("softap <wlan iface> <SSID> <hidden/broadcast> <channel> <wpa2?-psk|open> <passphrase>");
return ResponseCode: : CommandSyntaxError;
}
if (!strcasecmp(argv[4], "hidden"))
hidden = 1;
if (argc >= 5) {
channel = atoi(argv[5]);
if (channel <= 0)
channel = AP_CHANNEL_DEFAULT;
}
std::string wbuf(StringPrintf("interface=%s\n"
"driver=nl80211\n"
"ctrl_interface=/data/misc/wifi/hostapd\n"
"ssid=%s\n"
"channel=%d\n"
"ieee80211n=1\n"
"hw_mode=%c\n"
"ignore_broadcast_ssid=%d, eap_server = 1, wps_state = %d\n",
argv[2], argv[3], channel, (channel <= 14) ? 'g' : 'a', hidden,wps_state));
std::string fbuf;
if (argc > 7) {
char psk_str[2*SHA256_DIGEST_LENGTH+1];
if (!strcmp(argv[6], "wpa-psk")) {
if (!generatePsk(argv[3], argv[7], psk_str)) {
return ResponseCode: : OperationFailed;
}
fbuf = StringPrintf("%swpa=3\nwpa_pairwise=TKIP CCMP\nwpa_psk=%s\n", wbuf.c_str(), psk_str);
} else if (!strcmp(argv[6], "wpa2-psk")) {
if (!generatePsk(argv[3], argv[7], psk_str)) {
return ResponseCode: : OperationFailed;
}
fbuf = StringPrintf("%swpa=2\nrsn_pairwise=CCMP\nwpa_psk=%s\n", wbuf.c_str(), psk_str);
} else if (!strcmp(argv[6], "open")) {
fbuf = wbuf;
}
} else if (argc > 6) {
if (!strcmp(argv[6], "open")) {
fbuf = wbuf;
}
} else {
fbuf = wbuf;
}
if (!WriteStringToFile(fbuf, HOSTAPD_CONF_FILE, 0660, AID_SYSTEM, AID_WIFI)) {
ALOGE("Cannot write to \"%s\": %s", HOSTAPD_CONF_FILE, strerror(errno));
return ResponseCode::OperationFailed;
} else {
return ResponseCode::SoftapStatusResult;
}
시험,
Hostapd_cli wps_pbc