diff options
| author | 2019-08-09 21:43:38 +0800 | |
|---|---|---|
| committer | 2019-08-13 02:28:41 +0000 | |
| commit | 426311bcb5b3e4e3d342711fdb196531207815b9 (patch) | |
| tree | a6a8ed62335e551b93e700f0e786fe90a6506061 | |
| parent | 8aa2b1dffd2eac9749116e92f5f9d6a7a62c5365 (diff) | |
Don't allow upstream if entitlement don't know any downstream
In case tethering donwstream is setup but don't ask EntitlementManager
to run provisioning. Cellular upstream should not be allowed if
EntilementManager don't have any donwstream record.
Bug: 134649258
Test: -build, flash, boot
-manual test with carrier SIM
Change-Id: I609722c79f0a45a1c2164d39721ef5883e436feb
| -rw-r--r-- | services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java | 6 | ||||
| -rw-r--r-- | tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java index 836f1e64aa9c..f952bcef5606 100644 --- a/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java +++ b/services/core/java/com/android/server/connectivity/tethering/EntitlementManager.java @@ -161,6 +161,12 @@ public class EntitlementManager { * Check if cellular upstream is permitted. */ public boolean isCellularUpstreamPermitted() { + // If provisioning is required and EntitlementManager don't know any downstream, + // cellular upstream should not be allowed. + final TetheringConfiguration config = mFetcher.fetchTetheringConfiguration(); + if (mCurrentTethers.size() == 0 && isTetherProvisioningRequired(config)) { + return false; + } return mCellularUpstreamPermitted; } diff --git a/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java index 2b2e8a72ab04..5217e26a40ef 100644 --- a/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java +++ b/tests/net/java/com/android/server/connectivity/tethering/EntitlementManagerTest.java @@ -406,6 +406,13 @@ public final class EntitlementManagerTest { } @Test + public void verifyPermissionWhenProvisioningNotStarted() { + assertTrue(mEnMgr.isCellularUpstreamPermitted()); + setupForRequiredProvisioning(); + assertFalse(mEnMgr.isCellularUpstreamPermitted()); + } + + @Test public void testRunTetherProvisioning() { setupForRequiredProvisioning(); // 1. start ui provisioning, upstream is mobile |