hostapd funktioniert nicht von der adb-shell

Ich habe ein LG G3 mit 5.1.1 und kann den mobilen Wi-Fi-Hotspot erfolgreich über das Einstellungsmenü aktivieren. Ich kann meine tragbare Wi-Fi-SSID auf einem anderen Android-Gerät sehen, wenn sie über das Einstellungsmenü aktiviert ist.

Außerdem kann ich bestätigen, dass hostapd mit einer automatisch generierten Konfigurationsdatei ausgeführt wird.

root@d851:/ # ps | grep hostapd
wifi      6841  302   10892  1280  c026dd60 b6ed98b4 S /system/bin/hostapd
root@d851:/ # cat /proc/6841/cmdline
/system/bin/hostapd -e /data/misc/wifi/entropy.bin /data/misc/wifi/hostapd.conf

Mein Problem tritt auf, wenn ich versuche, hostapd manuell über die Adb-Shell auszuführen, wobei ich genau die gleichen Argumente verwende wie hostapd, die über das Einstellungsmenü erzeugt wurden. Ich deaktiviere Wi-Fi manuell über das Einstellungsmenü und gebe den folgenden Befehl aus. Es scheint, dass hostapd erfolgreich initialisiert wird, aber die Wi-Fi-SSID wird von anderen Geräten nie gesehen.

root@d851:/ # /system/bin/hostapd -ddd -e /data/misc/wifi/entropy.bin /data/misc/wifi/hostapd.conf

Folgendes wurde von logcat erfasst, als der obige Befehl ausgegeben wurde.

D/hostapd ( 7885): Add randomness: count=1 entropy=0
D/hostapd ( 7885): random pool - hexdump(len=128): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=8): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random pool - hexdump(len=128): [REMOVED]
D/hostapd ( 7885): random: Added entropy from /data/misc/wifi/entropy.bin (own_pool_ready=2)
D/hostapd ( 7885): random: Trying to read entropy from /dev/random
D/hostapd ( 7885): Get randomness: len=20 entropy=1
D/hostapd ( 7885): random from os_get_random - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): mixed random - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random: Updated entropy file /data/misc/wifi/entropy.bin (own_pool_ready=2)
E/hostapd ( 7885): Configuration file: /data/misc/wifi/hostapd.conf
D/hostapd ( 7885): rfkill: initial event: idx=0 type=2 op=0 soft=1 hard=0
D/hostapd ( 7885): rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0
D/hostapd ( 7885): rfkill: initial event: idx=2 type=1 op=0 soft=0 hard=0
D/hostapd ( 7885): nl80211: Supported cipher 00-0f-ac:1
D/hostapd ( 7885): nl80211: Supported cipher 00-0f-ac:5
D/hostapd ( 7885): nl80211: Supported cipher 00-0f-ac:2
D/hostapd ( 7885): nl80211: Supported cipher 00-0f-ac:4
D/hostapd ( 7885): nl80211: Supported cipher 00-0f-ac:6
D/hostapd ( 7885): nl80211: Using driver-based off-channel TX
D/hostapd ( 7885): nl80211: TDLS supported
D/hostapd ( 7885): nl80211: Supported key managment offloads 0x0
D/hostapd ( 7885): nl80211: Supported key derivation offloads 0x0
D/hostapd ( 7885): nl80211: Use separate P2P group interface (driver advertised support)
D/hostapd ( 7885): nl80211: Enable multi-channel concurrent (driver advertised support)
D/hostapd ( 7885): nl80211: Disable use_monitor with device_ap_sme since no monitor mode support detected
D/hostapd ( 7885): nl80211: interface wlan0 in phy phy0
D/hostapd ( 7885): nl80211: Set mode ifindex 23 iftype 3 (AP)
D/hostapd ( 7885): nl80211: Setup AP(wlan0) - device_ap_sme=1 use_monitor=0
D/hostapd ( 7885): nl80211: Subscribe to mgmt frames with AP handle 0xb643e0a0 (device SME)
D/hostapd ( 7885): nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0xb643e0a0 match=
D/hostapd ( 7885): nl80211: Enable Probe Request reporting nl_preq=0xb643e0d0
D/hostapd ( 7885): nl80211: Register frame type=0x40 (WLAN_FC_STYPE_PROBE_REQ) nl_handle=0xb643e0d0 match=
D/hostapd ( 7885): nl80211: Add own interface ifindex 23
D/hostapd ( 7885): nl80211: if_indices[16]: 23
D/hostapd ( 7885): Unknown/unsupported wowlan trigger 'any'
D/hostapd ( 7885): phy: phy0
D/hostapd ( 7885): BSS count 1, BSSID mask 00:00:00:00:00:00 (0 bits)
D/hostapd ( 7885): nl80211: Regulatory information - country=00
D/hostapd ( 7885): nl80211: 2402-2472 @ 40 MHz 20 mBm
D/hostapd ( 7885): nl80211: 2457-2482 @ 40 MHz 20 mBm (no IR)
D/hostapd ( 7885): nl80211: 2474-2494 @ 20 MHz 20 mBm (no OFDM) (no IR)
D/hostapd ( 7885): nl80211: 5170-5250 @ 80 MHz 20 mBm (no IR)
D/hostapd ( 7885): nl80211: 5735-5835 @ 80 MHz 20 mBm (no IR)
D/hostapd ( 7885): nl80211: 57240-63720 @ 2160 MHz 0 mBm
D/hostapd ( 7885): nl80211: Added 802.11b mode based on 802.11g information
D/hostapd ( 7885): Allowed channel: mode=1 chan=1 freq=2412 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=2 freq=2417 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=3 freq=2422 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=4 freq=2427 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=5 freq=2432 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=6 freq=2437 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=7 freq=2442 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=8 freq=2447 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=9 freq=2452 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=10 freq=2457 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=1 chan=11 freq=2462 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=36 freq=5180 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=40 freq=5200 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=44 freq=5220 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=48 freq=5240 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=144 freq=5720 MHz max_tx_power=0 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=149 freq=5745 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=153 freq=5765 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=157 freq=5785 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=161 freq=5805 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=2 chan=165 freq=5825 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=1 freq=2412 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=2 freq=2417 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=3 freq=2422 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=4 freq=2427 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=5 freq=2432 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=6 freq=2437 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=7 freq=2442 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=8 freq=2447 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=9 freq=2452 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=10 freq=2457 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Allowed channel: mode=0 chan=11 freq=2462 MHz max_tx_power=20 dBm
D/hostapd ( 7885): Completing interface initialization
D/hostapd ( 7885): Mode: IEEE 802.11g  Channel: 6  Frequency: 2437 MHz
D/hostapd ( 7885): DFS 0 channels required radar detection
D/hostapd ( 7885): nl80211: Set freq 2437 (ht_enabled=1, vht_enabled=0, bandwidth=20 MHz, cf1=2437 MHz, cf2=0 MHz)
D/hostapd ( 7885): RATE[0] rate=10 flags=0x1
D/hostapd ( 7885): RATE[1] rate=20 flags=0x1
D/hostapd ( 7885): RATE[2] rate=55 flags=0x1
D/hostapd ( 7885): RATE[3] rate=110 flags=0x1
D/hostapd ( 7885): RATE[4] rate=60 flags=0x0
D/hostapd ( 7885): RATE[5] rate=90 flags=0x0
D/hostapd ( 7885): RATE[6] rate=120 flags=0x0
D/hostapd ( 7885): RATE[7] rate=180 flags=0x0
D/hostapd ( 7885): RATE[8] rate=240 flags=0x0
D/hostapd ( 7885): RATE[9] rate=360 flags=0x0
D/hostapd ( 7885): RATE[10] rate=480 flags=0x0
D/hostapd ( 7885): RATE[11] rate=540 flags=0x0
D/hostapd ( 7885): hostapd_setup_bss(hapd=0xb6456600 (wlan0), first=1)
D/hostapd ( 7885): wlan0: Flushing old station entries
D/hostapd ( 7885): nl80211: flush -> DEL_STATION wlan0 (all)
D/hostapd ( 7885): wlan0: Deauthenticate all stations
D/hostapd ( 7885): nl80211: sta_remove -> DEL_STATION wlan0 ff:ff:ff:ff:ff:ff --> 0 (Success)
D/hostapd ( 7885): wpa_driver_nl80211_set_key: ifindex=23 (wlan0) alg=0 addr=0x0 key_idx=0 set_tx=0 seq_len=0 key_len=0
D/hostapd ( 7885): wpa_driver_nl80211_set_key: ifindex=23 (wlan0) alg=0 addr=0x0 key_idx=1 set_tx=0 seq_len=0 key_len=0
D/hostapd ( 7885): wpa_driver_nl80211_set_key: ifindex=23 (wlan0) alg=0 addr=0x0 key_idx=2 set_tx=0 seq_len=0 key_len=0
D/hostapd ( 7885): wpa_driver_nl80211_set_key: ifindex=23 (wlan0) alg=0 addr=0x0 key_idx=3 set_tx=0 seq_len=0 key_len=0
E/hostapd ( 7885): Using interface wlan0 with hwaddr 00:90:4c:c5:12:38 and ssid "Redskins"
D/hostapd ( 7885): wpa_driver_set_ap_wps_p2p_ie: Entry
D/hostapd ( 7885): random: Got 20/20 bytes from /dev/random
D/hostapd ( 7885): Get randomness: len=20 entropy=0
D/hostapd ( 7885): random from os_get_random - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): mixed random - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random: Updated entropy file /data/misc/wifi/entropy.bin (own_pool_ready=2)
D/hostapd ( 7885): Get randomness: len=32 entropy=0
D/hostapd ( 7885): random from os_get_random - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): mixed random - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): GMK - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): Get randomness: len=32 entropy=0
D/hostapd ( 7885): random from os_get_random - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): mixed random - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): Key Counter - hexdump(len=32): [REMOVED]
D/hostapd ( 7885): WPA: Delay group state machine start until Beacon frames have been configured
D/hostapd ( 7885): nl80211: Set beacon (beacon_set=0)
D/hostapd ( 7885): nl80211: Beacon head - hexdump(len=59): 80 00 00 00 ff ff ff ff ff ff 00 90 4c c5 12 38 00 90 4c c5 12 38 00 00 00 00 00 00 00 00 00 00 ...
D/hostapd ( 7885): nl80211: Beacon tail - hexdump(len=109): 2a 01 04 32 04 30 48 60 6c 30 14 01 00 00 0f ac 04 01 00 00 0f ac 04 01 00 00 0f ac 02 0c 00 2d ...
D/hostapd ( 7885): nl80211: ifindex=23
D/hostapd ( 7885): nl80211: beacon_int=100
D/hostapd ( 7885): nl80211: dtim_period=2
D/hostapd ( 7885): nl80211: ssid - hexdump(len=8): 52 65 64 73 6b 69 6e 73
D/hostapd ( 7885): nl80211: hidden SSID not in use
D/hostapd ( 7885): nl80211: privacy=1
D/hostapd ( 7885): nl80211: auth_algs=0x3
D/hostapd ( 7885): nl80211: wpa_version=0x2
D/hostapd ( 7885): nl80211: key_mgmt_suites=0x2
D/hostapd ( 7885): nl80211: pairwise_ciphers=0x18
D/hostapd ( 7885): nl80211: group_cipher=0x10
D/hostapd ( 7885): WPA: Start group state machine to set initial keys
D/hostapd ( 7885): WPA: group state machine entering state GTK_INIT (VLAN-ID 0)
D/hostapd ( 7885): Get randomness: len=16 entropy=0
D/hostapd ( 7885): random from os_get_random - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): random_mix_pool - hexdump(len=20): [REMOVED]
D/hostapd ( 7885): random from internal pool - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): mixed random - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): GTK - hexdump(len=16): [REMOVED]
D/hostapd ( 7885): WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
D/hostapd ( 7885): wpa_driver_nl80211_set_key: ifindex=23 (wlan0) alg=3 addr=0xb6f9988a key_idx=1 set_tx=1 seq_len=0 key_len=16
D/hostapd ( 7885): nl80211: KEY_DATA - hexdump(len=16): [REMOVED]
D/hostapd ( 7885):    broadcast key
D/hostapd ( 7885): nl80211: Set wlan0 operstate 0->1 (UP)
D/hostapd ( 7885): netlink: Operstate: ifindex=23 linkmode=-1 (no change), operstate=6 (IF_OPER_UP)
D/hostapd ( 7885): Failed to set TX queue parameters for queue 0.
D/hostapd ( 7885): Failed to set TX queue parameters for queue 1.
D/hostapd ( 7885): Failed to set TX queue parameters for queue 2.
D/hostapd ( 7885): Failed to set TX queue parameters for queue 3.
I/hostapd ( 7885): wlan0: interface state UNINITIALIZED->ENABLED
I/hostapd ( 7885): wlan0: AP-ENABLED 
D/hostapd ( 7885): wlan0: Setup of interface done.
D/hostapd ( 7885): ctrl_iface not configured!
D/hostapd ( 7885): RTM_NEWLINK: ifi_index=23 ifname=wlan0 operstate=6 linkmode=0 ifi_family=0 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])

Warum erstellt das Ausführen von hostapd mit genau derselben Konfigurationsdatei über die Adb-Shell kein Wi-Fi-Netzwerk, das für andere Geräte sichtbar ist? SELinux ist im permissiven Modus, also habe ich das ausgeschlossen. Was übersehe ich möglicherweise? Gibt es eine andere Konfiguration, die erforderlich ist, um den tragbaren Wi-Fi-Hotspot von der Adb-Shell tatsächlich zu aktivieren?

Jede Hilfe wird sehr geschätzt.

Sehen Sie sich auch den Prozess wpa_supplicant an

Antworten (1)

Es gibt tatsächlich einen weiteren Schritt vor dem Ausführen der Befehlszeile beim Ausführen des hostapd mit der conf-Datei, der das Laden der Firmware ist. Und genau deshalb gibt es diesen Aufdruck:

D/hostapd (7885): ctrl_iface nicht konfiguriert!

Die geladene Firmware prüft eine Schnittstelle in /data/misc/wifi/hostapd, und dies ist der Unix-Domain-Socket, für den der hostapd-Client mit dem Kernel kommunizieren kann.

Fügen Sie einige Debug-Prints in SoftAPController.cpp hinzu und Sie werden das ganze Bild sehen.

Wie lädt man also die Firmware vor dem Ausführen hostapd?
Das Laden der Firmware ist herstellerspezifisch und wird von HAL gehandhabt. Für Qualcomm-Geräte: android.stackexchange.com/a/219548/218526