Offset 68, 14 lines modifiedOffset 68, 15 lines modified
68 ····public·static·final·int·WIFI_SCAN_RESULTS_AVAILABLE·=·0;68 ····public·static·final·int·WIFI_SCAN_RESULTS_AVAILABLE·=·0;
69 ····public·static·final·int·WIFI_SCAN_THRESHOLD_NUM_SCANS·=·1;69 ····public·static·final·int·WIFI_SCAN_THRESHOLD_NUM_SCANS·=·1;
70 ····public·static·final·int·WIFI_SCAN_THRESHOLD_PERCENT·=·2;70 ····public·static·final·int·WIFI_SCAN_THRESHOLD_PERCENT·=·2;
71 ····private·final·Handler·mHandler;71 ····private·final·Handler·mHandler;
72 ····private·final·HostapdHal·mHostapdHal;72 ····private·final·HostapdHal·mHostapdHal;
73 ····private·final·WifiNative$IfaceManager·mIfaceMgr;73 ····private·final·WifiNative$IfaceManager·mIfaceMgr;
74 ····private·boolean·mIsEnhancedOpenSupported;74 ····private·boolean·mIsEnhancedOpenSupported;
 75 ····private·boolean·mIsEnhancedOpenSupportedInitialized;
75 ····private·final·Object·mLock;76 ····private·final·Object·mLock;
76 ····private·NetdWrapper·mNetdWrapper;77 ····private·NetdWrapper·mNetdWrapper;
77 ····private·final·PropertyService·mPropertyService;78 ····private·final·PropertyService·mPropertyService;
78 ····private·final·Random·mRandom;79 ····private·final·Random·mRandom;
79 ····private·HashSet·mStatusListeners;80 ····private·HashSet·mStatusListeners;
80 ····private·final·SupplicantStaIfaceHal·mSupplicantStaIfaceHal;81 ····private·final·SupplicantStaIfaceHal·mSupplicantStaIfaceHal;
81 ····private·boolean·mVerboseLoggingEnabled;82 ····private·boolean·mVerboseLoggingEnabled;
Offset 83, 18 lines modifiedOffset 84, 18 lines modified
83 ····private·final·WifiInjector·mWifiInjector;84 ····private·final·WifiInjector·mWifiInjector;
84 ····private·final·WifiMetrics·mWifiMetrics;85 ····private·final·WifiMetrics·mWifiMetrics;
85 ····private·final·WifiMonitor·mWifiMonitor;86 ····private·final·WifiMonitor·mWifiMonitor;
86 ····private·final·WifiVendorHal·mWifiVendorHal;87 ····private·final·WifiVendorHal·mWifiVendorHal;
87 ····88 ····
88 ····public·WifiNative(final·WifiVendorHal·mWifiVendorHal,·final·SupplicantStaIfaceHal·mSupplicantStaIfaceHal,·final·HostapdHal·mHostapdHal,·final·WifiNl80211Manager·mWifiCondManager,·final·WifiMonitor·mWifiMonitor,·final·PropertyService·mPropertyService,·final·WifiMetrics·mWifiMetrics,·final·Handler·mHandler,·final·Random·mRandom,·final·WifiInjector·mWifiInjector)·{89 ····public·WifiNative(final·WifiVendorHal·mWifiVendorHal,·final·SupplicantStaIfaceHal·mSupplicantStaIfaceHal,·final·HostapdHal·mHostapdHal,·final·WifiNl80211Manager·mWifiCondManager,·final·WifiMonitor·mWifiMonitor,·final·PropertyService·mPropertyService,·final·WifiMetrics·mWifiMetrics,·final·Handler·mHandler,·final·Random·mRandom,·final·WifiInjector·mWifiInjector)·{
89 ········this.mVerboseLoggingEnabled·=·false;90 ········this.mVerboseLoggingEnabled·=·false;
90 ········this.mIsEnhancedOpenSupported·=·false; 
91 ········this.mLock·=·new·Object();91 ········this.mLock·=·new·Object();
92 ········this.mIfaceMgr·=·new·WifiNative$IfaceManager((WifiNative$1)null);92 ········this.mIfaceMgr·=·new·WifiNative$IfaceManager((WifiNative$1)null);
93 ········this.mStatusListeners·=·new·HashSet();93 ········this.mStatusListeners·=·new·HashSet();
 94 ········this.mIsEnhancedOpenSupportedInitialized·=·false;
94 ········this.mWifiVendorHal·=·mWifiVendorHal;95 ········this.mWifiVendorHal·=·mWifiVendorHal;
95 ········this.mSupplicantStaIfaceHal·=·mSupplicantStaIfaceHal;96 ········this.mSupplicantStaIfaceHal·=·mSupplicantStaIfaceHal;
96 ········this.mHostapdHal·=·mHostapdHal;97 ········this.mHostapdHal·=·mHostapdHal;
97 ········this.mWifiCondManager·=·mWifiCondManager;98 ········this.mWifiCondManager·=·mWifiCondManager;
98 ········this.mWifiMonitor·=·mWifiMonitor;99 ········this.mWifiMonitor·=·mWifiMonitor;
99 ········this.mPropertyService·=·mPropertyService;100 ········this.mPropertyService·=·mPropertyService;
100 ········this.mWifiMetrics·=·mWifiMetrics;101 ········this.mWifiMetrics·=·mWifiMetrics;
Offset 137, 15 lines modifiedOffset 138, 15 lines modified
137 ················sb.append(fromByteArray);138 ················sb.append(fromByteArray);
138 ················Log.e((String)o,·sb.toString());139 ················Log.e((String)o,·sb.toString());
139 ············}140 ············}
140 ············else·{141 ············else·{
141 ················Object·string·=·bssid.toString();142 ················Object·string·=·bssid.toString();
142 ················final·ScanResult$InformationElement[]·informationElements·=·InformationElementUtil.parseInformationElements(nativeScanResult.getInformationElements());143 ················final·ScanResult$InformationElement[]·informationElements·=·InformationElementUtil.parseInformationElements(nativeScanResult.getInformationElements());
143 ················final·InformationElementUtil$Capabilities·informationElementUtil$Capabilities·=·new·InformationElementUtil$Capabilities();144 ················final·InformationElementUtil$Capabilities·informationElementUtil$Capabilities·=·new·InformationElementUtil$Capabilities();
144 ················informationElementUtil$Capabilities.from(informationElements,·nativeScanResult.getCapabilities(),·this.mIsEnhancedOpenSupported);145 ················informationElementUtil$Capabilities.from(informationElements,·nativeScanResult.getCapabilities(),·this.isEnhancedOpenSupported());
145 ················final·String·generateCapabilitiesString·=·informationElementUtil$Capabilities.generateCapabilitiesString();146 ················final·String·generateCapabilitiesString·=·informationElementUtil$Capabilities.generateCapabilitiesString();
146 ················try·{147 ················try·{
147 ····················final·NetworkDetail·networkDetail·=·new·NetworkDetail((String)string,·informationElements,·(List)null,·nativeScanResult.getFrequencyMhz());148 ····················final·NetworkDetail·networkDetail·=·new·NetworkDetail((String)string,·informationElements,·(List)null,·nativeScanResult.getFrequencyMhz());
148 ····················o·=·new·ScanDetail(networkDetail,·fromByteArray,·(String)string,·generateCapabilitiesString,·nativeScanResult.getSignalMbm()·/·100,·nativeScanResult.getFrequencyMhz(),·nativeScanResult.getTsf(),·informationElements,·(List)null,·nativeScanResult.getInformationElements());149 ····················o·=·new·ScanDetail(networkDetail,·fromByteArray,·(String)string,·generateCapabilitiesString,·nativeScanResult.getSignalMbm()·/·100,·nativeScanResult.getFrequencyMhz(),·nativeScanResult.getTsf(),·informationElements,·(List)null,·nativeScanResult.getInformationElements());
149 ····················final·ScanResult·scanResult·=·((ScanDetail)o).getScanResult();150 ····················final·ScanResult·scanResult·=·((ScanDetail)o).getScanResult();
150 ····················scanResult.setWifiStandard(wifiModeToWifiStandard(networkDetail.getWifiMode()));151 ····················scanResult.setWifiStandard(wifiModeToWifiStandard(networkDetail.getWifiMode()));
151 ····················scanResult.radioChainInfos·=·new·ScanResult$RadioChainInfo[nativeScanResult.getRadioChainInfos().size()];152 ····················scanResult.radioChainInfos·=·new·ScanResult$RadioChainInfo[nativeScanResult.getRadioChainInfos().size()];
Offset 238, 14 lines modifiedOffset 239, 31 lines modified
238 ········}239 ········}
239 ········catch·(IllegalStateException·ex)·{240 ········catch·(IllegalStateException·ex)·{
240 ············s·=·"WifiNative";241 ············s·=·"WifiNative";
241 ············Log.e(s,·"Unable·to·change·interface·settings",·(Throwable)ex);242 ············Log.e(s,·"Unable·to·change·interface·settings",·(Throwable)ex);
242 ········}243 ········}
243 ····}244 ····}
244 ····245 ····
 246 ····private·boolean·isEnhancedOpenSupported()·{
 247 ········if·(this.mIsEnhancedOpenSupportedInitialized)·{
 248 ············return·this.mIsEnhancedOpenSupported;
 249 ········}
 250 ········final·String·clientInterfaceName·=·this.getClientInterfaceName();
 251 ········boolean·mIsEnhancedOpenSupported·=·false;
 252 ········if·(clientInterfaceName·==·null)·{
 253 ············return·false;
 254 ········}
 255 ········final·boolean·mIsEnhancedOpenSupportedInitialized·=·true;
 256 ········this.mIsEnhancedOpenSupportedInitialized·=·mIsEnhancedOpenSupportedInitialized;
 257 ········if·((this.getSupportedFeatureSet(clientInterfaceName)·&·0x20000000L)·!=·0x0L)·{
 258 ············mIsEnhancedOpenSupported·=·mIsEnhancedOpenSupportedInitialized;
 259 ········}
 260 ········return·this.mIsEnhancedOpenSupported·=·mIsEnhancedOpenSupported;
 261 ····}
 262 ····
245 ····private·void·onClientInterfaceForConnectivityDestroyed(final·WifiNative$Iface·wifiNative$Iface)·{263 ····private·void·onClientInterfaceForConnectivityDestroyed(final·WifiNative$Iface·wifiNative$Iface)·{
246 ········synchronized·(this.mLock)·{264 ········synchronized·(this.mLock)·{
247 ············this.mWifiMonitor.stopMonitoring(wifiNative$Iface.name);265 ············this.mWifiMonitor.stopMonitoring(wifiNative$Iface.name);
248 ············if·(!this.unregisterNetworkObserver(wifiNative$Iface.networkObserver))·{266 ············if·(!this.unregisterNetworkObserver(wifiNative$Iface.networkObserver))·{
249 ················final·String·s·=·"WifiNative";267 ················final·String·s·=·"WifiNative";
250 ················final·StringBuilder·sb·=·new·StringBuilder();268 ················final·StringBuilder·sb·=·new·StringBuilder();
251 ················sb.append("Failed·to·unregister·network·observer·on·");269 ················sb.append("Failed·to·unregister·network·observer·on·");
Offset 1148, 17 lines modifiedOffset 1166, 15 lines modified
1148 ················return·null;1166 ················return·null;
1149 ············}1167 ············}
1150 ············if·(!this.startSupplicant())·{1168 ············if·(!this.startSupplicant())·{
1151 ················Log.e("WifiNative",·"Failed·to·start·supplicant");1169 ················Log.e("WifiNative",·"Failed·to·start·supplicant");
1152 ················this.mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToSupplicant();1170 ················this.mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToSupplicant();
1153 ················return·null;1171 ················return·null;
1154 ············}1172 ············}
1155 ············final·WifiNative$IfaceManager·mIfaceMgr·=·this.mIfaceMgr;1173 ············final·WifiNative$Iface·access$2100·=·WifiNative$IfaceManager.access$2100(this.mIfaceMgr,·1);
1156 ············int·mIsEnhancedOpenSupported·=·1; 
1157 ············final·WifiNative$Iface·access$2100·=·WifiNative$IfaceManager.access$2100(mIfaceMgr,·mIsEnhancedOpenSupported); 
1158 ············if·(access$2100·==·null)·{1174 ············if·(access$2100·==·null)·{
1159 ················Log.e("WifiNative",·"Failed·to·allocate·new·STA·iface");1175 ················Log.e("WifiNative",·"Failed·to·allocate·new·STA·iface");
1160 ················return·null;1176 ················return·null;
1161 ············}1177 ············}
1162 ············access$2100.externalListener·=·externalListener;1178 ············access$2100.externalListener·=·externalListener;
1163 ············final·String·staIface·=·this.createStaIface(access$2100);1179 ············final·String·staIface·=·this.createStaIface(access$2100);
1164 ············access$2100.name·=·staIface;1180 ············access$2100.name·=·staIface;
Offset 1203, 20 lines modifiedOffset 1219, 15 lines modified
1203 ············this.onInterfaceStateChanged(access$2100,·this.isInterfaceUp(access$2100.name));1219 ············this.onInterfaceStateChanged(access$2100,·this.isInterfaceUp(access$2100.name));
1204 ············this.initializeNwParamsForClientInterface(access$2100.name);1220 ············this.initializeNwParamsForClientInterface(access$2100.name);
1205 ············final·String·s4·=·"WifiNative";1221 ············final·String·s4·=·"WifiNative";
1206 ············final·StringBuilder·sb4·=·new·StringBuilder();1222 ············final·StringBuilder·sb4·=·new·StringBuilder();
1207 ············sb4.append("Successfully·setup·");1223 ············sb4.append("Successfully·setup·");
1208 ············sb4.append(access$2100);1224 ············sb4.append(access$2100);
1209 ············Log.i(s4,·sb4.toString());1225 ············Log.i(s4,·sb4.toString());
1210 ············final·long·supportedFeatureSetInternal·=·this.getSupportedFeatureSetInternal(access$2100.name);1226 ············access$2100.featureSet·=·this.getSupportedFeatureSetInternal(access$2100.name);
1211 ············access$2100.featureSet·=·supportedFeatureSetInternal; 
1212 ············if·((supportedFeatureSetInternal·&·0x20000000L)·==·0x0L)·{ 
1213 ················mIsEnhancedOpenSupported·=·0; 
1214 ············} 
1215 ············this.mIsEnhancedOpenSupported·=·(mIsEnhancedOpenSupported·!=·0); 
1216 ············return·access$2100.name;1227 ············return·access$2100.name;
1217 ········}1228 ········}
1218 ····}1229 ····}
1219 ····1230 ····
1220 ····public·String·setupInterfaceForClientInScanMode(final·WifiNative$InterfaceCallback·externalListener)·{1231 ····public·String·setupInterfaceForClientInScanMode(final·WifiNative$InterfaceCallback·externalListener)·{
1221 ········synchronized·(this.mLock)·{1232 ········synchronized·(this.mLock)·{
1222 ············if·(!this.startHal())·{1233 ············if·(!this.startHal())·{
Offset 1481, 15 lines modifiedOffset 1492, 14 lines modified
1481 ····public·int·stopSendingOffloadedPacket(final·String·s,·final·int·n)·{1492 ····public·int·stopSendingOffloadedPacket(final·String·s,·final·int·n)·{
1482 ········return·this.mWifiVendorHal.stopSendingOffloadedPacket(s,·n);1493 ········return·this.mWifiVendorHal.stopSendingOffloadedPacket(s,·n);
1483 ····}1494 ····}
1484 ····1495 ····
1485 ····public·boolean·switchClientInterfaceToConnectivityMode(String·s)·{1496 ····public·boolean·switchClientInterfaceToConnectivityMode(String·s)·{
1486 ········synchronized·(this.mLock)·{1497 ········synchronized·(this.mLock)·{
1487 ············final·WifiNative$Iface·access$1600·=·WifiNative$IfaceManager.access$1600(this.mIfaceMgr,·s);1498 ············final·WifiNative$Iface·access$1600·=·WifiNative$IfaceManager.access$1600(this.mIfaceMgr,·s);
1488 ············boolean·mIsEnhancedOpenSupported·=·false; 
1489 ············if·(access$1600·==·null)·{1499 ············if·(access$1600·==·null)·{
1490 ················final·String·s2·=·"WifiNative";1500 ················final·String·s2·=·"WifiNative";
1491 ················final·StringBuilder·sb·=·new·StringBuilder();1501 ················final·StringBuilder·sb·=·new·StringBuilder();
1492 ················sb.append("Trying·to·switch·to·connectivity·mode·on·an·invalid·iface=");1502 ················sb.append("Trying·to·switch·to·connectivity·mode·on·an·invalid·iface=");
1493 ················sb.append(s);1503 ················sb.append(s);
1494 ················s·=·sb.toString();1504 ················s·=·sb.toString();
1495 ················Log.e(s2,·s);1505 ················Log.e(s2,·s);
Offset 1523, 20 lines modifiedOffset 1533, 15 lines modified
1523 ················s·=·access$1600.name;1533 ················s·=·access$1600.name;
1524 ················this.teardownInterface(s);1534 ················this.teardownInterface(s);
1525 ················this.mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToSupplicant();1535 ················this.mWifiMetrics.incrementNumSetupClientInterfaceFailureDueToSupplicant();
1526 ················return·false;1536 ················return·false;
1527 ············}1537 ············}
1528 ············access$1600.type·=·(type2·?·1·:·0);1538 ············access$1600.type·=·(type2·?·1·:·0);
1529 ············s·=·access$1600.name;1539 ············s·=·access$1600.name;
1530 ············final·long·supportedFeatureSetInternal·=·this.getSupportedFeatureSetInternal(s);1540 ············access$1600.featureSet·=·this.getSupportedFeatureSetInternal(s);
1531 ············access$1600.featureSet·=·supportedFeatureSetInternal; 
1532 ············if·((supportedFeatureSetInternal·&·0x20000000L)·!=·0x0L)·{ 
1533 ················mIsEnhancedOpenSupported·=·type2; 
1534 ············} 
1535 ············this.mIsEnhancedOpenSupported·=·mIsEnhancedOpenSupported; 
1536 ············final·String·s4·=·"WifiNative";1541 ············final·String·s4·=·"WifiNative";
1537 ············final·StringBuilder·sb4·=·new·StringBuilder();1542 ············final·StringBuilder·sb4·=·new·StringBuilder();
1538 ············sb4.append("Successfully·switched·to·connectivity·mode·on·iface=");1543 ············sb4.append("Successfully·switched·to·connectivity·mode·on·iface=");
1539 ············sb4.append(access$1600);1544 ············sb4.append(access$1600);
1540 ············s·=·sb4.toString();1545 ············s·=·sb4.toString();
1541 ············Log.i(s4,·s);1546 ············Log.i(s4,·s);
1542 ············return·type2;1547 ············return·type2;