본문 바로가기
안드로이드

안드로이드 ADB를 이용하여 MAC 과 SSID 가져오기

by 바퀴 굴리는 프로그래머 2017. 4. 5.
반응형


1. MAC 주소가져오기

adb shell cat /sys/class/net/wlan0/address

xx:xx:xx:xx:xx:xx




2. WIFI 연결 정보 가져오기

adb shell dumpsys wifi

<AP에 연결된 상태>

Wi-Fi is enabled

Stay-awake conditions: 0


Internal state:

current HSM state: ConnectedState

mLinkProperties InterfaceName: wlan0 LinkAddresses: [192.168.0.21/24,] Routes: [0.0.0.0/0 -> 192.168.0.1,] DnsAddresses: [168.126.63.1,168.126.63.2,] HttpProxy: [ProxyProperties.mHost == null]

mWifiInfo SSID: 접속된 AP의 SSID, BSSID: xx:xx:xx:xx:xx:xx, MAC: xx:xx:xx:xx:xx:xx, Supplicant state: COMPLETED, RSSI: -54, Link speed: 72, Net ID: 0, Explicit connect: false

mDhcpInfoInternal addr: 192.168.0.21/24 mRoutes: 0.0.0.0/0 -> 192.168.0.1 |  dns: 168.126.63.1,168.126.63.2 dhcpServer: 192.168.0.1 leaseDuration: 7200

mNetworkInfo NetworkInfo: type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: true

mLastSignalLevel 3

mLastBssid xx:xx:xx:xx:xx:xx

mLastNetworkId 0

mReconnectCount 0

mIsScanMode false

Supplicant status

bssid=xx:xx:xx:xx:xx:xx

ssid=접속된 AP의 SSID

id=0

mode=station

pairwise_cipher=CCMP

group_cipher=CCMP

key_mgmt=WPA2-PSK

wpa_state=COMPLETED

ip_address=192.168.0.21

address=xx:xx:xx:xx:xx:xx

... 

이하생략


<Soft AP 상태>

Wi-Fi is disabled

Stay-awake conditions: 0


Internal state:

current HSM state: TetheredState

mLinkProperties LinkAddresses: [] Routes: [] DnsAddresses: []

mWifiInfo SSID: <none>, BSSID: <none>, MAC: xx:xx:xx:xx:xx:xx, Supplicant state: COMPLETED, RSSI: -200, Link speed: -1, Net ID: -1, Explicit connect: false

mDhcpInfoInternal addr: 192.168.0.21/24 mRoutes: 0.0.0.0/0 -> 192.168.0.1 |  dns: 168.126.63.1,168.126.63.2 dhcpServer: 192.168.0.1 leaseDuration: 7200

mNetworkInfo NetworkInfo: type: WIFI[], state: DISCONNECTED/DISCONNECTED, reason: (unspecified), extra: (none), roaming: false, failover: false, isAvailable: false

mLastSignalLevel 2

mLastBssid null

mLastNetworkId -1

mReconnectCount 0

mIsScanMode false

Supplicant status

null

...

이하 생략




3. 설정파일 직접 읽기

현재까지 2번의 방법으로는 핫스팟이 설정된 디바이스 자체의 SSID를 가져올 수 없는 것으로 파악되었다. 즉, mWifiInfo 에 표시되는 SSID가 <none>으로 출력되어 식별할 수 없는 상태이다. 따라서 아래와 같이 직접 hostapd의 설정 파일인 hostapd.conf 파일을 직접 읽어들이는 방법을 찾아 냈다.

기본 명령은 adb shell cat /data/misc/wifi/hostapd.conf 이지만, 해당 경로와 설정파일에 루트 권한이 있어야 접근이 가능하다. 따라서, 아래와 같이 super user 권한을 주고 실행되도록 한다.


adb shell "su -c 'cat /data/misc/wifi/hostapd.conf'"

... 

중략

...

ssid=핫스팟SSID

wpa=2

wpa_passphrase=핫스팟비밀번호

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

rsn_pairwise=CCMP



반응형