From 4dd5a25a32dc4a721a411f92f0720672ee08020b Mon Sep 17 00:00:00 2001 From: Irfan Sheriff Date: Tue, 22 May 2012 12:53:47 -0700 Subject: Add WPS details for certification We need to provide device details to the supplicant for WPS 2.0 certification Bug: 6450363 Change-Id: I3eb8bc75faacf392a43b6ef3085971bd32a675ac --- wifi/java/android/net/wifi/WifiNative.java | 16 ++++++++++ wifi/java/android/net/wifi/WifiStateMachine.java | 37 +++++++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java index 0a87a53..63359c1 100644 --- a/wifi/java/android/net/wifi/WifiNative.java +++ b/wifi/java/android/net/wifi/WifiNative.java @@ -438,6 +438,22 @@ public class WifiNative { return doBooleanCommand("SET config_methods " + cfg); } + public boolean setManufacturer(String value) { + return doBooleanCommand("SET manufacturer " + value); + } + + public boolean setModelName(String value) { + return doBooleanCommand("SET model_name " + value); + } + + public boolean setModelNumber(String value) { + return doBooleanCommand("SET model_number " + value); + } + + public boolean setSerialNumber(String value) { + return doBooleanCommand("SET serial_number " + value); + } + public boolean setP2pSsidPostfix(String postfix) { return doBooleanCommand("SET p2p_ssid_postfix " + postfix); } diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index 2903faa..a0f3281 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -120,6 +120,7 @@ public class WifiStateMachine extends StateMachine { private ConnectivityManager mCm; private final boolean mP2pSupported; + private final String mPrimaryDeviceType; /* Scan results handling */ private List mScanResults; @@ -590,6 +591,9 @@ public class WifiStateMachine extends StateMachine { mBackgroundScanSupported = mContext.getResources().getBoolean( com.android.internal.R.bool.config_wifi_background_scan_support); + mPrimaryDeviceType = mContext.getResources().getString( + com.android.internal.R.string.config_wifi_p2p_device_type); + mContext.registerReceiver( new BroadcastReceiver() { @Override @@ -2214,6 +2218,37 @@ public class WifiStateMachine extends StateMachine { if (DBG) log(getName() + "\n"); EventLog.writeEvent(EVENTLOG_WIFI_STATE_CHANGED, getName()); } + + private void initializeWpsDetails() { + String detail; + detail = SystemProperties.get("ro.product.name", ""); + if (!mWifiNative.setDeviceName(detail)) { + loge("Failed to set device name " + detail); + } + detail = SystemProperties.get("ro.product.manufacturer", ""); + if (!mWifiNative.setManufacturer(detail)) { + loge("Failed to set manufacturer " + detail); + } + detail = SystemProperties.get("ro.product.model", ""); + if (!mWifiNative.setModelName(detail)) { + loge("Failed to set model name " + detail); + } + detail = SystemProperties.get("ro.product.model", ""); + if (!mWifiNative.setModelNumber(detail)) { + loge("Failed to set model number " + detail); + } + detail = SystemProperties.get("ro.serialno", ""); + if (!mWifiNative.setSerialNumber(detail)) { + loge("Failed to set serial number " + detail); + } + if (!mWifiNative.setConfigMethods("physical_display virtual_push_button keypad")) { + loge("Failed to set WPS config methods"); + } + if (!mWifiNative.setDeviceType(mPrimaryDeviceType)) { + loge("Failed to set primary device type " + mPrimaryDeviceType); + } + } + @Override public boolean processMessage(Message message) { if (DBG) log(getName() + message.toString() + "\n"); @@ -2231,8 +2266,8 @@ public class WifiStateMachine extends StateMachine { mLastSignalLevel = -1; mWifiInfo.setMacAddress(mWifiNative.getMacAddress()); - mWifiConfigStore.initialize(); + initializeWpsDetails(); sendSupplicantConnectionChangedBroadcast(true); transitionTo(mDriverStartedState); -- cgit v1.1