GNU/Linux >> Belajar Linux >  >> Linux

Menghubungkan ke WiFi menggunakan adb shell

Anda dapat menambahkan sendiri entri jaringan ke wpa_supplicant.conf (atau di dalam skrip Anda) Pada dasarnya sambungkan secara manual sekali, lalu lakukan:

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

dan integrasikan entri jaringan ke dalam skrip Anda untuk otomatisasi. Contoh skrip sederhana:

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

Terlambat ke pesta, tetapi saya menemukan cara untuk melakukannya di perangkat tanpa root .

Ini mungkin tidak cantik, tetapi berhasil.

Pada dasarnya yang saya usulkan adalah membuat aplikasi yang menggabungkan titik akses berdasarkan EXTRAS diberikan saat memulai aplikasi. EXTRAS kemudian diberikan menggunakan am perintah -e <KEY> <VALUE> parameter.

Saya sudah membuat aplikasi yang melakukannya dan tersedia di sini:https://github.com/steinwurf/adb-join-wifi

Setelah aplikasi diinstal, titik akses wifi dapat digabungkan menggunakan ADB berikut perintah:

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

Ada info selengkapnya di README di Github.

Semoga ini bisa membantu seseorang.


Linux
  1. Bagaimana Menguji Shell Apa yang Saya Gunakan Di Terminal?

  2. Perilaku Tak Terduga Dari Skrip Shell?

  3. Diutamakan Operator Logika Shell &&, ||?

  1. Script Shell Hang Pada Perintah Mail?

  2. Bagaimana Cara Membuat Animasi Rotasi Menggunakan Shell Script?

  3. Mengirim email HTML menggunakan skrip shell

  1. Shell mana yang saya gunakan?

  2. Menggunakan Ekspor Di .bashrc?

  3. Periksa konektivitas basis data menggunakan skrip Shell