首先要有一块USB无线网卡,还需要带这个wifi驱动的kernel。我这里使用的是EDUP-EPN8508GS的usb无线网卡。
开机之后如果执行adb shell iw dev wlan0 info可以看到无线网卡的信息,那就证明无线网卡的驱动基本没有什么问题。
$ iw dev wlan0 info
接着就去获取ower的access token:
$ curl -H "Authorization: Privet anonymous" -H 'Content-Type: application/json' -X POST --data '{ "pairing": "embeddedCode", "crypto": "p224_spake2" }' -k https://10.0.0.13/privet/v3/pairing/start { "deviceCommitment": "zAUrIS6vV81dvveMw7OR8K5PQlh1dNq7E4+G5zcPY341yDa2RsKQjdwWQ/IfBZDl6YJpHxvnsh8=", "sessionId": "44ACD5D0-75DC-4A5A-9865-AFE75C0DA8AB" } $ curl -H "Authorization: Privet anonymous" -H 'Content-Type: application/json' -X POST --data '{ "sessionId": "44ACD5D0-75DC-4A5A-9865-AFE75C0DA8AB", "clientCommitment": "Q9CRZs3H9dFQXKfy/HPw5U/D5w3uOw7zJKVeAL+s8zu+p1X9Kiuj76ZY+Z4UHV1S3ao5becnJag=" }' -k https://10.0.0.13/privet/v3/pairing/confirm { "certFingerprint": "USQs/v/5C3YcOhJtVF3kZ8V7l6vqNJtf84PefK4n7tw=", "certSignature": "o81YepNQOyKLJeDOtuCQWsd5zb21JgxrmGoi5t5cuzw=" } $ curl -H "Authorization: Privet anonymous" -H 'Content-Type: application/json' -X POST --data '{ "mode": "pairing", "authCode": "owjUHtj5OhFz0uOf8Qkp8guWfEKVZVS2l80skFaodS4=", "requestedScope": "owner" }' -k https://10.0.0.13/privet/v3/auth { "accessToken": "ZA6Di/9nnIJKM5SxBjOrZo+RHXOKR05nb/oqynAvswozOjE6MTQ1MTIwMjIwMg==", "expiresIn": 3600, "scope": "owner", "tokenType": "Privet" }
有了owner的access token, 就可以去setup wifi了:
$ curl -H "Authorization: Privet ZA6Di/9nnIJKM5SxBjOrZo+RHXOKR05nb/oqynAvswozOjE6MTQ1MTIwMjIwMg==" -H 'Content-Type: application/json' -X POST --data '{"wifi": { \ "ssid":"NETGEAR","passphrase":"cheerfuldaisychain" \ } \ }' -k https://10.0.0.13/privet/v3/setup/start { "wifi": { "status": "inProgress" } }
NOTE: 这里一定要注意json的语法,换行与不换行完全是不一样的。由于对JSON语法不熟悉,走了好多弯路啊。
最后可以可过访问/privet/v3/setup/status或者/privet/info查看wifi的状态:
$ curl -H "Authorization: Privet ZA6Di/9nnIJKM5SxBjOrZo+RHXOKR05nb/oqynAvswozOjE6MTQ1MTIwMjIwMg==" -H 'Content-Type: application/json' -X POST -k https://10.0.0.13/privet/v3/setup/status { "wifi": { "status": "inProgress" } }