Offset 43, 14 lines modifiedOffset 43, 15 lines modified
43 import·android.net.wifi.WifiConfiguration;43 import·android.net.wifi.WifiConfiguration;
44 import·com.android.server.wifi.WifiConfigStore$StoreData;44 import·com.android.server.wifi.WifiConfigStore$StoreData;
45 import·java.util.HashMap;45 import·java.util.HashMap;
46 import·com.android.server.wifi.WifiConfigStore;46 import·com.android.server.wifi.WifiConfigStore;
47 import·com.android.server.wifi.Clock;47 import·com.android.server.wifi.Clock;
48 import·com.android.server.wifi.WifiNative;48 import·com.android.server.wifi.WifiNative;
49 import·android.content.Context;49 import·android.content.Context;
 50 import·com.android.server.wifi.util.WifiPermissionsUtil;
50 import·com.android.server.wifi.WifiMetrics;51 import·com.android.server.wifi.WifiMetrics;
51 import·com.android.server.wifi.WifiInjector;52 import·com.android.server.wifi.WifiInjector;
52 import·com.android.server.wifi.WifiConfigManager;53 import·com.android.server.wifi.WifiConfigManager;
53 import·com.android.server.wifi.WifiCarrierInfoManager;54 import·com.android.server.wifi.WifiCarrierInfoManager;
54 import·com.android.server.wifi.MacAddressUtil;55 import·com.android.server.wifi.MacAddressUtil;
55 import·com.android.server.wifi.WifiKeyStore;56 import·com.android.server.wifi.WifiKeyStore;
56 import·android.os.Handler;57 import·android.os.Handler;
Offset 74, 16 lines modifiedOffset 75, 17 lines modified
74 ····private·long·mProviderIndex;75 ····private·long·mProviderIndex;
75 ····private·final·Map·mProviders;76 ····private·final·Map·mProviders;
76 ····private·boolean·mVerboseLoggingEnabled;77 ····private·boolean·mVerboseLoggingEnabled;
77 ····private·final·WifiCarrierInfoManager·mWifiCarrierInfoManager;78 ····private·final·WifiCarrierInfoManager·mWifiCarrierInfoManager;
78 ····private·final·WifiConfigManager·mWifiConfigManager;79 ····private·final·WifiConfigManager·mWifiConfigManager;
79 ····private·final·WifiInjector·mWifiInjector;80 ····private·final·WifiInjector·mWifiInjector;
80 ····private·final·WifiMetrics·mWifiMetrics;81 ····private·final·WifiMetrics·mWifiMetrics;
 82 ····private·final·WifiPermissionsUtil·mWifiPermissionsUtil;
81 ····83 ····
82 ····public·PasspointManager(final·Context·context,·final·WifiInjector·mWifiInjector,·final·Handler·mHandler,·final·WifiNative·wifiNative,·final·WifiKeyStore·mKeyStore,·final·Clock·clock,·final·PasspointObjectFactory·mObjectFactory,·final·WifiConfigManager·mWifiConfigManager,·final·WifiConfigStore·wifiConfigStore,·final·WifiMetrics·mWifiMetrics,·final·WifiCarrierInfoManager·mWifiCarrierInfoManager,·final·MacAddressUtil·mMacAddressUtil)·{84 ····public·PasspointManager(final·Context·context,·final·WifiInjector·mWifiInjector,·final·Handler·mHandler,·final·WifiNative·wifiNative,·final·WifiKeyStore·mKeyStore,·final·Clock·clock,·final·PasspointObjectFactory·mObjectFactory,·final·WifiConfigManager·mWifiConfigManager,·final·WifiConfigStore·wifiConfigStore,·final·WifiMetrics·mWifiMetrics,·final·WifiCarrierInfoManager·mWifiCarrierInfoManager,·final·MacAddressUtil·mMacAddressUtil,·final·WifiPermissionsUtil·mWifiPermissionsUtil)·{
83 ········this.mAppOpsChangedListenerPerApp·=·new·HashMap();85 ········this.mAppOpsChangedListenerPerApp·=·new·HashMap();
84 ········this.mVerboseLoggingEnabled·=·false;86 ········this.mVerboseLoggingEnabled·=·false;
85 ········this.mPasspointEventHandler·=·mObjectFactory.makePasspointEventHandler(wifiNative,·(PasspointEventHandler$Callbacks)new·PasspointManager$CallbackHandler(this,·context));87 ········this.mPasspointEventHandler·=·mObjectFactory.makePasspointEventHandler(wifiNative,·(PasspointEventHandler$Callbacks)new·PasspointManager$CallbackHandler(this,·context));
86 ········this.mWifiInjector·=·mWifiInjector;88 ········this.mWifiInjector·=·mWifiInjector;
87 ········this.mHandler·=·mHandler;89 ········this.mHandler·=·mHandler;
88 ········this.mKeyStore·=·mKeyStore;90 ········this.mKeyStore·=·mKeyStore;
89 ········this.mObjectFactory·=·mObjectFactory;91 ········this.mObjectFactory·=·mObjectFactory;
Offset 96, 14 lines modifiedOffset 98, 15 lines modified
96 ········this.mWifiCarrierInfoManager·=·mWifiCarrierInfoManager;98 ········this.mWifiCarrierInfoManager·=·mWifiCarrierInfoManager;
97 ········wifiConfigStore.registerStoreData((WifiConfigStore$StoreData)mObjectFactory.makePasspointConfigUserStoreData(this.mKeyStore,·mWifiCarrierInfoManager,·(PasspointConfigUserStoreData$DataSource)new·PasspointManager$UserDataSourceHandler(this,·(PasspointManager$1)null)));99 ········wifiConfigStore.registerStoreData((WifiConfigStore$StoreData)mObjectFactory.makePasspointConfigUserStoreData(this.mKeyStore,·mWifiCarrierInfoManager,·(PasspointConfigUserStoreData$DataSource)new·PasspointManager$UserDataSourceHandler(this,·(PasspointManager$1)null)));
98 ········wifiConfigStore.registerStoreData((WifiConfigStore$StoreData)mObjectFactory.makePasspointConfigSharedStoreData((PasspointConfigSharedStoreData$DataSource)new·PasspointManager$SharedDataSourceHandler(this,·(PasspointManager$1)null)));100 ········wifiConfigStore.registerStoreData((WifiConfigStore$StoreData)mObjectFactory.makePasspointConfigSharedStoreData((PasspointConfigSharedStoreData$DataSource)new·PasspointManager$SharedDataSourceHandler(this,·(PasspointManager$1)null)));
99 ········this.mPasspointProvisioner·=·mObjectFactory.makePasspointProvisioner(context,·wifiNative,·this,·mWifiMetrics);101 ········this.mPasspointProvisioner·=·mObjectFactory.makePasspointProvisioner(context,·wifiNative,·this,·mWifiMetrics);
100 ········this.mAppOps·=·(AppOpsManager)context.getSystemService("appops");102 ········this.mAppOps·=·(AppOpsManager)context.getSystemService("appops");
101 ········PasspointManager.sPasspointManager·=·this;103 ········PasspointManager.sPasspointManager·=·this;
102 ········this.mMacAddressUtil·=·mMacAddressUtil;104 ········this.mMacAddressUtil·=·mMacAddressUtil;
 105 ········this.mWifiPermissionsUtil·=·mWifiPermissionsUtil;
103 ····}106 ····}
104 ····107 ····
105 ····public·static·boolean·addLegacyPasspointConfig(final·WifiConfiguration·wifiConfiguration)·{108 ····public·static·boolean·addLegacyPasspointConfig(final·WifiConfiguration·wifiConfiguration)·{
106 ········final·PasspointManager·sPasspointManager·=·PasspointManager.sPasspointManager;109 ········final·PasspointManager·sPasspointManager·=·PasspointManager.sPasspointManager;
107 ········final·String·s·=·"PasspointManager";110 ········final·String·s·=·"PasspointManager";
108 ········if·(sPasspointManager·==·null)·{111 ········if·(sPasspointManager·==·null)·{
109 ············Log.e(s,·"PasspointManager·have·not·been·initialized·yet");112 ············Log.e(s,·"PasspointManager·have·not·been·initialized·yet");
Offset 449, 40 lines modifiedOffset 452, 49 lines modified
449 ················Log.d("PasspointManager",·sb.toString());452 ················Log.d("PasspointManager",·sb.toString());
450 ················return·true;453 ················return·true;
451 ············}454 ············}
452 ········}455 ········}
453 ········return·false;456 ········return·false;
454 ····}457 ····}
455 ····458 ····
456 ····private·boolean·removeProviderInternal(final·PasspointProvider·passpointProvider,·final·int·i,·final·boolean·b)·{459 ····private·boolean·removeProviderInternal(final·PasspointProvider·passpointProvider,·final·int·n,·final·boolean·b)·{
 460 ········final·String·s·=·"UID·";
457 ········final·String·s·=·"PasspointManager";461 ········final·String·s2·=·"PasspointManager";
458 ········if·(!b·&&·i·!=·passpointProvider.getCreatorUid())·{462 ········if·(!b·&&·n·!=·passpointProvider.getCreatorUid())·{
459 ············final·StringBuilder·sb·=·new·StringBuilder();463 ············final·StringBuilder·sb·=·new·StringBuilder();
460 ············sb.append("UID·"); 
461 ············sb.append(i);464 ············sb.append(s);
 465 ············sb.append(n);
462 ············sb.append("·cannot·remove·profile·created·by·");466 ············sb.append("·cannot·remove·profile·created·by·");
463 ············sb.append(passpointProvider.getCreatorUid());467 ············sb.append(passpointProvider.getCreatorUid());
464 ············Log.e(s,·sb.toString());468 ············Log.e(s2,·sb.toString());
 469 ············return·false;
 470 ········}
 471 ········if·(!this.mWifiPermissionsUtil.doesUidBelongToCurrentUser(n))·{
 472 ············final·StringBuilder·sb2·=·new·StringBuilder();
 473 ············sb2.append(s);
 474 ············sb2.append(n);
 475 ············sb2.append("·not·visible·to·the·current·user");
 476 ············Log.e(s2,·sb2.toString());
465 ············return·false;477 ············return·false;
466 ········}478 ········}
467 ········passpointProvider.uninstallCertsAndKeys();479 ········passpointProvider.uninstallCertsAndKeys();
468 ········final·String·packageName·=·passpointProvider.getPackageName();480 ········final·String·packageName·=·passpointProvider.getPackageName();
469 ········this.mWifiConfigManager.removePasspointConfiguredNetwork(passpointProvider.getWifiConfig().getKey());481 ········this.mWifiConfigManager.removePasspointConfiguredNetwork(passpointProvider.getWifiConfig().getKey());
470 ········final·String·uniqueId·=·passpointProvider.getConfig().getUniqueId();482 ········final·String·uniqueId·=·passpointProvider.getConfig().getUniqueId();
471 ········this.mProviders.remove(uniqueId);483 ········this.mProviders.remove(uniqueId);
472 ········final·WifiConfigManager·mWifiConfigManager·=·this.mWifiConfigManager;484 ········final·WifiConfigManager·mWifiConfigManager·=·this.mWifiConfigManager;
473 ········final·boolean·b2·=·true;485 ········final·boolean·b2·=·true;
474 ········mWifiConfigManager.saveToStore(b2);486 ········mWifiConfigManager.saveToStore(b2);
475 ········if·(this.mAppOpsChangedListenerPerApp.containsKey(packageName)·&&·this.getPasspointProviderWithPackage(packageName).size()·==·0)·{487 ········if·(this.mAppOpsChangedListenerPerApp.containsKey(packageName)·&&·this.getPasspointProviderWithPackage(packageName).size()·==·0)·{
476 ············this.stopTrackingAppOpsChange(packageName);488 ············this.stopTrackingAppOpsChange(packageName);
477 ········}489 ········}
478 ········final·StringBuilder·sb2·=·new·StringBuilder();490 ········final·StringBuilder·sb3·=·new·StringBuilder();
479 ········sb2.append("Removed·Passpoint·configuration:·");491 ········sb3.append("Removed·Passpoint·configuration:·");
480 ········sb2.append(uniqueId);492 ········sb3.append(uniqueId);
481 ········Log.d(s,·sb2.toString());493 ········Log.d(s2,·sb3.toString());
482 ········this.mWifiMetrics.incrementNumPasspointProviderUninstallSuccess();494 ········this.mWifiMetrics.incrementNumPasspointProviderUninstallSuccess();
483 ········return·b2;495 ········return·b2;
484 ····}496 ····}
485 ····497 ····
486 ····private·void·startTrackingAppOpsChange(final·String·s,·final·int·n)·{498 ····private·void·startTrackingAppOpsChange(final·String·s,·final·int·n)·{
487 ········if·(this.mAppOpsChangedListenerPerApp.containsKey(s))·{499 ········if·(this.mAppOpsChangedListenerPerApp.containsKey(s))·{
488 ············return;500 ············return;
Offset 538, 55 lines modifiedOffset 550, 63 lines modified
538 ········final·KeyStore·instance3·=·KeyStore.getInstance("AndroidCAStore");550 ········final·KeyStore·instance3·=·KeyStore.getInstance("AndroidCAStore");
539 ········instance3.load(null,·null);551 ········instance3.load(null,·null);
540 ········final·PKIXParameters·params·=·new·PKIXParameters(instance3);552 ········final·PKIXParameters·params·=·new·PKIXParameters(instance3);
541 ········params.setRevocationEnabled(false);553 ········params.setRevocationEnabled(false);
542 ········instance2.validate(generateCertPath,·params);554 ········instance2.validate(generateCertPath,·params);
543 ····}555 ····}
544 ····556 ····
545 ····public·boolean·addOrUpdateProvider(final·PasspointConfiguration·passpointConfiguration,·final·int·i,·final·String·anObject,·final·boolean·b,·final·boolean·trusted)·{557 ····public·boolean·addOrUpdateProvider(final·PasspointConfiguration·passpointConfiguration,·final·int·n,·final·String·anObject,·final·boolean·b,·final·boolean·trusted)·{
546 ········this.mWifiMetrics.incrementNumPasspointProviderInstallation();558 ········this.mWifiMetrics.incrementNumPasspointProviderInstallation();
547 ········final·String·s·=·"PasspointManager";559 ········final·String·s·=·"PasspointManager";
548 ········if·(passpointConfiguration·==·null)·{560 ········if·(passpointConfiguration·==·null)·{
549 ············Log.e(s,·"Configuration·not·provided");561 ············Log.e(s,·"Configuration·not·provided");
550 ············return·false;562 ············return·false;
551 ········}563 ········}
552 ········if·(!passpointConfiguration.validate())·{564 ········if·(!passpointConfiguration.validate())·{
553 ············Log.e(s,·"Invalid·configuration");565 ············Log.e(s,·"Invalid·configuration");
554 ············return·false;566 ············return·false;
555 ········}567 ········}
556 ········if·(!b·&&·!trusted)·{568 ········if·(!b·&&·!trusted)·{
557 ············Log.e(s,·"Set·isTrusted·to·false·on·a·non·suggestion·passpoint·is·not·allowed");569 ············Log.e(s,·"Set·isTrusted·to·false·on·a·non·suggestion·passpoint·is·not·allowed");
558 ············return·false;570 ············return·false;
559 ········}571 ········}
 572 ········if·(!this.mWifiPermissionsUtil.doesUidBelongToCurrentUser(n))·{
 573 ············final·StringBuilder·sb·=·new·StringBuilder();
 574 ············sb.append("UID·");
 575 ············sb.append(n);
 576 ············sb.append("·not·visible·to·the·current·user");
 577 ············Log.e(s,·sb.toString());
 578 ············return·false;
 579 ········}
560 ········this.mWifiCarrierInfoManager.tryUpdateCarrierIdForPasspoint(passpointConfiguration);580 ········this.mWifiCarrierInfoManager.tryUpdateCarrierIdForPasspoint(passpointConfiguration);
561 ········final·PasspointObjectFactory·mObjectFactory·=·this.mObjectFactory;581 ········final·PasspointObjectFactory·mObjectFactory·=·this.mObjectFactory;
562 ········final·WifiKeyStore·mKeyStore·=·this.mKeyStore;582 ········final·WifiKeyStore·mKeyStore·=·this.mKeyStore;
563 ········final·WifiCarrierInfoManager·mWifiCarrierInfoManager·=·this.mWifiCarrierInfoManager;583 ········final·WifiCarrierInfoManager·mWifiCarrierInfoManager·=·this.mWifiCarrierInfoManager;
564 ········final·long·mProviderIndex·=·this.mProviderIndex;584 ········final·long·mProviderIndex·=·this.mProviderIndex;
565 ········this.mProviderIndex·=·1L·+·mProviderIndex;585 ········this.mProviderIndex·=·1L·+·mProviderIndex;
566 ········final·PasspointProvider·passpointProvider·=·mObjectFactory.makePasspointProvider(passpointConfiguration,·mKeyStore,·mWifiCarrierInfoManager,·mProviderIndex,·i,·anObject,·b);586 ········final·PasspointProvider·passpointProvider·=·mObjectFactory.makePasspointProvider(passpointConfiguration,·mKeyStore,·mWifiCarrierInfoManager,·mProviderIndex,·n,·anObject,·b);
567 ········passpointProvider.setTrusted(trusted);587 ········passpointProvider.setTrusted(trusted);
568 ········final·Credential$UserCredential·userCredential·=·passpointConfiguration.getCredential().getUserCredential();588 ········final·Credential$UserCredential·userCredential·=·passpointConfiguration.getCredential().getUserCredential();
569 ········final·boolean·b2·=·true;589 ········final·boolean·b2·=·true;
570 ········if·(userCredential·==·null·&&·passpointConfiguration.getCredential().getCertCredential()·==·null)·{590 ········if·(userCredential·==·null·&&·passpointConfiguration.getCredential().getCertCredential()·==·null)·{
571 ············goto·Label_0270;591 ············goto·Label_0344;
572 ········}592 ········}
573 ········final·X509Certificate[]·caCertificates·=·passpointConfiguration.getCredential().getCaCertificates();593 ········final·X509Certificate[]·caCertificates·=·passpointConfiguration.getCredential().getCaCertificates();
574 ········boolean·b3;594 ········boolean·b3;
575 ········boolean·b4;595 ········boolean·b4;
576 ········if·(caCertificates·==·null)·{596 ········if·(caCertificates·==·null)·{
577 ············b3·=·b2;597 ············b3·=·b2;
578 ············b4·=·false;598 ············b4·=·false;
579 ········}599 ········}
580 ········else·{600 ········else·{
581 ············try·{601 ············try·{
582 ················for·(int·length·=·caCertificates.length,·j·=·0;·j·<·length;·++j)·{602 ················for·(int·length·=·caCertificates.length,·i·=·0;·i·<·length;·++i)·{
583 ····················this.verifyCaCert(caCertificates[j]);603 ····················this.verifyCaCert(caCertificates[i]);
584 ················}604 ················}
585 ················goto·Label_0270;605 ················goto·Label_0344;
586 ············}606 ············}
587 ············catch·(Exception·ex2)·{}607 ············catch·(Exception·ex2)·{}
588 ············catch·(CertPathValidatorException·ex)·{608 ············catch·(CertPathValidatorException·ex)·{
589 ················b4·=·(ex.getReason()·==·PKIXReason.NO_TRUST_ANCHOR·&&·b2);609 ················b4·=·(ex.getReason()·==·PKIXReason.NO_TRUST_ANCHOR·&&·b2);
590 ················b3·=·false;610 ················b3·=·false;
591 ············}611 ············}
592 ········}612 ········}
Offset 597, 43 lines modifiedOffset 617, 43 lines modified
597 ········}617 ········}
598 ········if·(this.mProviders.containsKey(passpointConfiguration.getUniqueId()))·{618 ········if·(this.mProviders.containsKey(passpointConfiguration.getUniqueId()))·{
599 ············final·PasspointProvider·passpointProvider2·=·(PasspointProvider)this.mProviders.get(passpointConfiguration.getUniqueId());619 ············final·PasspointProvider·passpointProvider2·=·(PasspointProvider)this.mProviders.get(passpointConfiguration.getUniqueId());
600 ············if·(b·&&·!passpointProvider2.getPackageName().equals(anObject))·{620 ············if·(b·&&·!passpointProvider2.getPackageName().equals(anObject))·{
601 ················passpointProvider.uninstallCertsAndKeys();621 ················passpointProvider.uninstallCertsAndKeys();
602 ················return·false;622 ················return·false;
603 ············}623 ············}
604 ············final·StringBuilder·sb·=·new·StringBuilder();624 ············final·StringBuilder·sb2·=·new·StringBuilder();
605 ············sb.append("Replacing·configuration·for·FQDN:·");625 ············sb2.append("Replacing·configuration·for·FQDN:·");
606 ············sb.append(passpointConfiguration.getHomeSp().getFqdn());626 ············sb2.append(passpointConfiguration.getHomeSp().getFqdn());
607 ············sb.append("·and·unique·ID:·");627 ············sb2.append("·and·unique·ID:·");
608 ············sb.append(passpointConfiguration.getUniqueId());628 ············sb2.append(passpointConfiguration.getUniqueId());
609 ············Log.d(s,·sb.toString());629 ············Log.d(s,·sb2.toString());
610 ············passpointProvider2.uninstallCertsAndKeys();630 ············passpointProvider2.uninstallCertsAndKeys();
611 ············this.mProviders.remove(passpointConfiguration.getUniqueId());631 ············this.mProviders.remove(passpointConfiguration.getUniqueId());
612 ············if·(!passpointProvider2.equals((Object)passpointProvider))·{632 ············if·(!passpointProvider2.equals((Object)passpointProvider))·{
613 ················this.mWifiConfigManager.removePasspointConfiguredNetwork(passpointProvider.getWifiConfig().getKey());633 ················this.mWifiConfigManager.removePasspointConfiguredNetwork(passpointProvider.getWifiConfig().getKey());
614 ············}634 ············}
615 ············else·{635 ············else·{
616 ················this.updateWifiConfigInWcmIfPresent(passpointProvider.getWifiConfig(),·i,·anObject,·b);636 ················this.updateWifiConfigInWcmIfPresent(passpointProvider.getWifiConfig(),·n,·anObject,·b);
617 ············}637 ············}
618 ········}638 ········}
619 ········passpointProvider.enableVerboseLogging((int)(this.mVerboseLoggingEnabled·?·1·:·0));639 ········passpointProvider.enableVerboseLogging((int)(this.mVerboseLoggingEnabled·?·1·:·0));
620 ········this.mProviders.put(passpointConfiguration.getUniqueId(),·passpointProvider);640 ········this.mProviders.put(passpointConfiguration.getUniqueId(),·passpointProvider);
621 ········this.mWifiConfigManager.saveToStore(b2);641 ········this.mWifiConfigManager.saveToStore(b2);
622 ········if·(!b·&&·passpointProvider.getPackageName()·!=·null)·{642 ········if·(!b·&&·passpointProvider.getPackageName()·!=·null)·{
623 ············this.startTrackingAppOpsChange(passpointProvider.getPackageName(),·i);643 ············this.startTrackingAppOpsChange(passpointProvider.getPackageName(),·n);
624 ········}644 ········}
625 ········final·StringBuilder·sb2·=·new·StringBuilder();645 ········final·StringBuilder·sb3·=·new·StringBuilder();
626 ········sb2.append("Added/updated·Passpoint·configuration·for·FQDN:·");646 ········sb3.append("Added/updated·Passpoint·configuration·for·FQDN:·");
627 ········sb2.append(passpointConfiguration.getHomeSp().getFqdn());647 ········sb3.append(passpointConfiguration.getHomeSp().getFqdn());
628 ········sb2.append("·with·unique·ID:·");648 ········sb3.append("·with·unique·ID:·");
629 ········sb2.append(passpointConfiguration.getUniqueId());649 ········sb3.append(passpointConfiguration.getUniqueId());
630 ········sb2.append("·by·UID:·");650 ········sb3.append("·by·UID:·");
631 ········sb2.append(i);651 ········sb3.append(n);
632 ········Log.d(s,·sb2.toString());652 ········Log.d(s,·sb3.toString());
633 ········if·(b3)·{653 ········if·(b3)·{
634 ············this.mWifiMetrics.incrementNumPasspointProviderWithNoRootCa();654 ············this.mWifiMetrics.incrementNumPasspointProviderWithNoRootCa();
635 ········}655 ········}
636 ········if·(b4)·{656 ········if·(b4)·{
637 ············this.mWifiMetrics.incrementNumPasspointProviderWithSelfSignedRootCa();657 ············this.mWifiMetrics.incrementNumPasspointProviderWithSelfSignedRootCa();
638 ········}658 ········}
639 ········if·(b5)·{659 ········if·(b5)·{
Offset 681, 15 lines modifiedOffset 701, 14 lines modified
681 ························if·(b)·{701 ························if·(b)·{
682 ····························n3·=·n;702 ····························n3·=·n;
683 ························}703 ························}
684 ························else·{704 ························else·{
685 ····························n3·=·n2;705 ····························n3·=·n2;
686 ························}706 ························}
687 ························mWifiMetrics.logUserActionEvent(n3,·passpointProvider.isFromSuggestion(),·b3);707 ························mWifiMetrics.logUserActionEvent(n3,·passpointProvider.isFromSuggestion(),·b3);
688 ························this.updateWifiConfigInWcmIfPresent(passpointProvider.getWifiConfig(),·passpointProvider.getCreatorUid(),·passpointProvider.getPackageName(),·passpointProvider.isFromSuggestion()); 
689 ····················}708 ····················}
690 ····················b2·=·b3;709 ····················b2·=·b3;
691 ················}710 ················}
692 ············}711 ············}
693 ············if·(b2)·{712 ············if·(b2)·{
694 ················this.mWifiConfigManager.saveToStore(b3);713 ················this.mWifiConfigManager.saveToStore(b3);
695 ············}714 ············}
Offset 702, 15 lines modifiedOffset 721, 14 lines modified
702 ········}721 ········}
703 ········if·(passpointProvider2.setAutojoinEnabled(b))·{722 ········if·(passpointProvider2.setAutojoinEnabled(b))·{
704 ············final·WifiMetrics·mWifiMetrics2·=·this.mWifiMetrics;723 ············final·WifiMetrics·mWifiMetrics2·=·this.mWifiMetrics;
705 ············if·(!b)·{724 ············if·(!b)·{
706 ················n·=·n2;725 ················n·=·n2;
707 ············}726 ············}
708 ············mWifiMetrics2.logUserActionEvent(n,·passpointProvider2.isFromSuggestion(),·b3);727 ············mWifiMetrics2.logUserActionEvent(n,·passpointProvider2.isFromSuggestion(),·b3);
709 ············this.updateWifiConfigInWcmIfPresent(passpointProvider2.getWifiConfig(),·passpointProvider2.getCreatorUid(),·passpointProvider2.getPackageName(),·passpointProvider2.isFromSuggestion()); 
710 ········}728 ········}
711 ········this.mWifiConfigManager.saveToStore(b3);729 ········this.mWifiConfigManager.saveToStore(b3);
712 ········return·b3;730 ········return·b3;
713 ····}731 ····}
714 ····732 ····
715 ····public·boolean·enableMacRandomization(final·String·s,·final·boolean·macRandomizationEnabled)·{733 ····public·boolean·enableMacRandomization(final·String·s,·final·boolean·macRandomizationEnabled)·{
716 ········final·Iterator<PasspointProvider>·iterator·=·new·ArrayList<PasspointProvider>(this.mProviders.values()).iterator();734 ········final·Iterator<PasspointProvider>·iterator·=·new·ArrayList<PasspointProvider>(this.mProviders.values()).iterator();