GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verbinden mit WLAN über die Adb-Shell

Sie können selbst (oder innerhalb Ihres Skripts) einen Netzwerkeintrag in die wpa_supplicant.conf einfügen. Verbinden Sie sich im Wesentlichen einmal manuell, dann tun Sie:

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

und binden Sie den Netzwerkeintrag zur Automatisierung in Ihr Skript ein. Beispiel für ein einfaches Skript:

#!/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)"

Zu spät zur Party, aber ich habe einen Weg gefunden, dies auf einem Gerät ohne Root zu erreichen .

Es ist vielleicht nicht schön, aber es funktioniert.

Grundsätzlich schlage ich vor, eine App zu erstellen, die sich einem Zugriffspunkt auf der Grundlage von EXTRAS anschließt beim Start der App angegeben. Die EXTRAS werden dann mit dem am bereitgestellt -e <KEY> <VALUE> des Befehls Parameter.

Ich habe bereits eine App gebaut, die das tut, und sie ist hier verfügbar:https://github.com/steinwurf/adb-join-wifi

Sobald die App installiert ist, kann ein WLAN-Zugangspunkt mit dem folgenden ADB verbunden werden Befehl:

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

Weitere Informationen finden Sie in der README-Datei auf Github.

Hoffe es hilft jemandem.


Linux
  1. Unerwartetes Verhalten eines Shell-Skripts?

  2. Vorrang der logischen Shell-Operatoren &&, ||?

  3. Export in .bashrc verwenden?

  4. Wie erstelle ich eine Rotationsanimation mit Shell-Skript?

  5. Verwenden von Case-Anweisungen in Bash

Machen Sie Ihre Fischschale schön mit Oh My Fish

Farbige Shell-Script-Ausgabebibliothek

Wie verwende ich den su-Befehl über die Adb-Shell?

Iterieren Sie mithilfe des Shell-Skripts über die $PATH-Variable

Linux-Shell wc -c Zeichenanzahl +1

Verbinden von Linux Mint mit dem WiFi-Netzwerk