GNU/Linux >> Linux の 問題 >  >> Linux

adb シェルを使用して WiFi に接続する

wpa_supplicant.conf に自分で (またはスクリプト内で) ネットワーク エントリを追加できます。

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

自動化のためにネットワークエントリをスクリプトに統合します。簡単なスクリプトの例:

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

パーティーに遅れましたが、ルートなしのデバイスでこれを達成する方法を思いつきました .

きれいではないかもしれませんが、うまくいきます。

基本的に私が提案するのは、EXTRAS に基づいてアクセス ポイントに参加するアプリを作成することです。 アプリの起動時に指定されます。EXTRAS am を使用して提供されます コマンドの -e <KEY> <VALUE> パラメータ。

私はすでにそうするアプリを構築しており、ここで入手できます:https://github.com/steinwurf/adb-join-wifi

アプリがインストールされると、次の ADB を使用して Wi-Fi アクセス ポイントに参加できます。 コマンド:

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

Github の README に詳細があります。

誰かの役に立てば幸いです。


Linux
  1. どのシェルを使用していますか?

  2. シェルスクリプトを使用して回転アニメーションを作成するにはどうすればよいですか?

  3. Bashでのケースステートメントの使用

  1. 実行中にシェルスクリプトを編集する

  2. adb:adb シェルから PID を見つける

  3. Linux シェル wc -c カウント文字数 +1

  1. ターミナルで使用しているシェルをテストする方法は?

  2. シェルスクリプトの予期しない動作?

  3. Linux Mint を WiFi ネットワークに接続する