GNU/Linux >> Linux Esercitazione >  >> Linux

Connessione al WiFi tramite adb shell

Puoi aggiungere tu stesso una voce di rete in wpa_supplicant.conf (o all'interno del tuo script) Essenzialmente connettiti manualmente una volta, quindi esegui:

adb pull /data/misc/wifi/wpa_supplicant.conf

e integra la voce di rete nel tuo script per l'automazione. Esempio di script semplice:

#!/bin/bash
#

# Get this information by connecting manually once, and do
#   adb pull /data/misc/wifi/wpa_supplicant.conf
ADB_PULL="adb pull /data/misc/wifi/wpa_supplicant.conf"
WIRELESS_CTRL_INTERFACE=wlan0
WIRELESS_SSID=Gondolin
WIRELESS_KEY_MGMT="WPA-EAP IEEE8021X"
WIRELESS_EAP=PEAP
WIRELESS_USER=Turgon
WIRELESS_PASSWORD=IdrilCelebrindal

adb start-server
adb wait-for-device
echo "adb connection....[CONNECTED]"
adb root
adb wait-for-device
adb remount
adb wait-for-device

pushd /tmp
rm wpa_supplicant.conf 2>/dev/null # Remove any old one
adbpull_status=`$ADB_PULL 2>&1`
echo -e "\nAttempting: $ADB_PULL"
if [ `echo $adbpull_status | grep -wc "does not exist"` -gt 0 ]; then
    echo "  wpa_supplicant.conf does not exist yet on your device yet."
    echo "This means you have not used your wireless yet."
    echo ""
    echo "Taking our best shot at creating this file with default config.."

    echo "ctrl_interface=$WIRELESS_CTRL_INTERFACE" >> wpa_supplicant.conf
    echo "update_config=1" >> wpa_supplicant.conf
    echo "device_type=0-00000000-0" >> wpa_supplicant.conf
else
    echo $adbpull_status
    echo "  wpa_supplicant.conf exists!"
fi

echo ""
echo "Add network entry for wpa_supplicant.conf.."
echo "" >> wpa_supplicant.conf
echo "network={" >> wpa_supplicant.conf
echo "  ssid=\"$WIRELESS_SSID\"" >> wpa_supplicant.conf
echo "  key_mgmt=$WIRELESS_KEY_MGMT" >> wpa_supplicant.conf
echo "  eap=$WIRELESS_EAP" >> wpa_supplicant.conf
echo "  identity=\"$WIRELESS_USER\"" >> wpa_supplicant.conf
echo "  password=\"$WIRELESS_PASSWORD\"" >> wpa_supplicant.conf
echo "  priority=1" >> wpa_supplicant.conf
echo "}" >> wpa_supplicant.conf
echo "Pushing wpa_supplicant.conf.."
adb push wpa_supplicant.conf /data/misc/wifi/wpa_supplicant.conf
popd #/tmp

adb shell chown system.wifi /data/misc/wifi/wpa_supplicant.conf
adb shell chmod 660 /data/misc/wifi/wpa_supplicant.conf

echo ""
echo "Finished!"
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.Settings
echo "Please toggle wifi off/on now.. (ifconfig not sufficient, monkey this)"

In ritardo alla festa, ma ho escogitato un modo per farlo su un dispositivo senza root .

Potrebbe non essere carino, ma funziona.

Fondamentalmente quello che propongo è creare un'app che si unisca a un punto di accesso basato su EXTRAS dato all'avvio dell'app.Il EXTRAS vengono quindi forniti utilizzando il am -e <KEY> <VALUE> del comando parametro.

Ho già creato un'app che lo fa ed è disponibile qui:https://github.com/steinwurf/adb-join-wifi

Una volta installata l'app, è possibile accedere a un punto di accesso Wi-Fi utilizzando il seguente ADB comando:

adb shell am start -n com.steinwurf.adbjoinwifi/com.steinwurf.adbjoinwifi.MainActivity -e ssid [SSID] -e password_type [PASSWORD_TYPE] -e password [WIFI PASSWORD]

Ci sono maggiori informazioni nel README su Github.

Spero che aiuti qualcuno.


Linux
  1. Quale shell sto usando?

  2. Comportamento imprevisto di uno script di shell?

  3. Precedenza degli operatori logici della shell &&, ||?

  4. Lo script della shell si blocca sul comando di posta?

  5. Utilizzo di Esporta in .bashrc?

Rendi bello il tuo guscio di pesce usando Oh My Fish

Invio di posta HTML utilizzando uno script di shell

Controlla la connettività del database utilizzando lo script Shell

Libreria di output di script di shell colorata

Come usare il comando su su adb shell?

Cosa fa % nelle stringhe della shell di Linux?