Commit Graph

6499 Commits

Author SHA1 Message Date
lucaslin
62991fc4ad Add VPN app into power saver whitelist for a while to start its service
If the VPN app is not launched, then its background service
cannot receive the VpnManager events.
Add VPN app into power saver whitelist for a while can let its
background service to receive VpnManager events.

Bug: 234104087
Test: Confirm that the VPN app has received VpnManager events.
Change-Id: I9819a78ec0cbbd6879baae645ef42c22756b09d4
2022-06-02 06:25:53 +00:00
Junyu Lai
ad2be9ef85 Add null check when list directory
This change protect getPlatformFileListForPrefix from
crashing when the directory exist but cannot be listed.
This generally happens when the caller doesn't have
enough permission to list.

Test: atest CtsNetTestCases:android.net.cts.NetworkStatsManagerTest#testDataMigrationUtils
Ignore-AOSP-First: in a topic with internal-only changes
Bug: 230289468
Change-Id: I4177a8229cc9db18d76cb90c54a1b8d12ef8d98f
Merged-In: I4177a8229cc9db18d76cb90c54a1b8d12ef8d98f
  (pure cherry-picked from ag/18457684)
2022-05-24 10:31:09 +08:00
junyulai
807a7f37f0 [MS82.2] Add a rewriteSingle method that takes two timestamps
This CL provides a public method in FileRotator to
allow caller to write data to a specified standalone file.

This CL also fix a file name generatign error in platform
tools.

Test: NetworkStatsServiceTest NetworkStatsCollectionTest
Bug: 230289468
Change-Id: I17558f349cb2a33062972fe1af96a19356798692
Merged-In: I17558f349cb2a33062972fe1af96a19356798692
  (pure cherry-picked from ag/18408306)
2022-05-24 10:30:14 +08:00
Chiachang
d19b3c03d2 Allow getting/setting app exclusion list for specific vpn profile
Provide a way for the system Setting app or other similar system
apps to set the app exclusion list for the specific VPN from
VpnManager. The list affects only VPN provisioned from
VpnManager to keep the design consistence for app using
VpnService.

The list is stored in the keystore for its persistence.

Bug: 192078259
Test: atest FrameworksNetTests CtsNetTestCases
Change-Id: I157823866e1899b40aa36ea2c0bc4a80370108be
2022-05-04 02:20:54 +00:00
lucaslin
c867675e38 Add equals() & hashCode() for VpnProfileState
Bug: 225010642
Test: atest FrameworksNetTests:VpnTest
Change-Id: I8711187e690385866fa681c3fe5fccdf353ac30b
2022-04-25 16:14:58 +08:00
lucaslin
4b6b7987a1 Modify javadoc for some extra values of VpnManager event
The underlying network, NetworkCapabilities and LinkProperties
are not necessary to send to VPN app since the purpose of
CATEGORY_EVENT_DEACTIVATED_BY_USER and
CATEGORY_EVENT_ALWAYS_ON_STATE_CHANGED are to notify VPN
app that VPN is deactivated by the user or VPN always-on
status is changed.

Bug: 191413541
Test: Javadoc only changes.
Change-Id: I7fd4b6dad1a4363336f03c217e635fc45bcd0ab6
2022-04-22 09:28:28 +08:00
lucaslin
6a75e5a3c5 Add toString() for VpnProfileState
Sample log:
{State: DISCONNECTED, SessionId: null, Always-on: false,
Lockdown: false}
{State: CONNECTED, SessionId: d7913298-c07f-49de-b84e-304b5e26da89,
Always-on: true, Lockdown: false}

Bug: 225010642
Test: Add a log in Vpn.java and print it.
Change-Id: Ia36d794446114c0c2c27e725cba6a4dc1240ae38
2022-04-22 09:28:21 +08:00
Benedict Wong
59aeaf29c0 Merge "Add CarrierConfig to TelephonySubscriptionSnapshot" 2022-04-21 17:40:58 +00:00
Benedict Wong
52629838cb Add CarrierConfig to TelephonySubscriptionSnapshot
This change ensures that carrier configs are saved as part of the
snapshot, allowing all entities in the VCN to query telephony
subscription information from the same source.

Test: atest FrameworksVcnTests
Change-Id: I31447d84fe98d6bd2cc78ead41746198728c400b
2022-04-21 01:09:36 +00:00
Junyu Lai
14ac19c709 Fix NetworkTemplate generates non-metered carrier template
From current design, NetworkPolicyManagerService should only
creates metered carrier/mobile templates. However, if someone
calls the hidden API interface or the template was created
before NetworkTemplate#Builder is published. The caller may
create a non-metered carrier template and persist into the
storage.

This CL elimates this possibility and mark non-metered carrier
template non-persistable, so devices could auto-recover from
this symptom after reboot.

Fix: 222382637
Test: TH
Change-Id: Ia7ba3d92a84b8b246a4f11080f6fec0957865650
2022-04-18 16:54:27 +08:00
Sudheer Shanka
efa4f74236 Ignore older UID state change callbacks in NPMS.
Since the onUidStateChanged() callbacks will be
happening from more than one thread, we need to make
sure we only handle the latest uid state change
callbacks and ignore any older callbacks that could
override the latest uid states in NPMS. In order to
this, every uid state change will be associated with
a unique seq number.

Also, remove the UidRecord.lastDispatchedProcStateSeq.
This was added as a safety measure to make sure we
don't unnecessarily end up waiting but it isn't
necessary and if we need to keep it, we need to add
a way to access it without holding global AMS lock,
which isn't worth the complexity.

Bug: 226299593
Test: atest tests/cts/hostside/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Change-Id: I631f5e01f6627916a96c930c22849a1d11eab636
Merged-In: I631f5e01f6627916a96c930c22849a1d11eab636
2022-04-15 09:39:49 +00:00
Benedict Wong
1428215bee Merge "Allow provisioning package to retrieve subGrp, clear it's own config" 2022-04-14 17:52:15 +00:00
Benedict Wong
1a8f3e0a14 Allow provisioning package to retrieve subGrp, clear it's own config
This changes the VCN to allow a VCN provisioning package to retrieve
its listing of configured subgroups and clear its own configurations,
regardless of whether it is the active subscription group.

Safety is guaranteed based on the VCN's clearing of packages when app
data is cleared, and when the app is uninstalled. In addition to the
configurations not being retrievable, the clearing of the configs will
ensure that sideloading of an app with the same package name provides
no ability to otherwise impact settings.

Bug: 227248744
Test: atest FrameworksVcnTests
Change-Id: I2c774c00373942f895169a761d4e9a1d5b0b2edb
2022-04-13 22:10:21 +00:00
Treehugger Robot
47b98a2d38 Merge "Add extra logging" 2022-04-13 08:16:28 +00:00
Robert Horvath
7881ffd09f Merge "Add Low Power Standby support to NetworkPolicyManagerService" 2022-04-11 08:48:34 +00:00
Chiachang Wang
b7e998e235 Merge "Update the java doc" 2022-04-11 02:54:46 +00:00
Benedict Wong
421e051e8a Add extra logging
This adds additional logs to the VCN's dumpsys to facilitate debugging
of the VCN.

Test: atest FrameworksVcnTests
Change-Id: Id8cd668991331dbf2f3395172e5cd90b36c408a9
2022-04-08 18:06:38 +00:00
Robert Horvath
56317f3ccf Add Low Power Standby support to NetworkPolicyManagerService
Bug: 190822356
Test: atest NetworkPolicyManagerServiceTest
Merged-In: I6c554df71b12bcf06f1c98ef70c35242bc90a689
Change-Id: I4b3f2625e9eed296055813e4641da9f85f8c7929
2022-04-08 14:50:42 +00:00
Chiachang Wang
240d126ed0 Update the java doc
Bug: 184750836
Test: m
Change-Id: If7a64d0a7d607dafa353c3dfd4bcbac189d1fef3
2022-04-07 18:32:09 +08:00
Chiachang Wang
48160f9b9b Merge "Ignore other IKE options if IkeTunnelConnectionParams is set" 2022-04-07 10:24:03 +00:00
Neil Fuller
339c76a9ed Merge "Switch core network tests from postsubmit to presubmit" 2022-04-06 12:25:06 +00:00
Chiachang Wang
3cb07d737d Ignore other IKE options if IkeTunnelConnectionParams is set
Stop parsing the IKE options from the input IkeTunnelConnectionParams
if exists. The caller shuould get the relevant infortation the
params.

The field is also stored in the VpnProfile if it built from an
Ikev2VpnProfile.

Bug: 184750836
Test: atest FrameworksNetTests HostsideVpnTests
Test: build ; flash ; connect VPN successfully
Change-Id: Id05c17285915462c7a6cd51d5fb4ee5da7f465ba
2022-04-06 17:25:58 +08:00
Sarah Chin
0bf5d39174 Merge "Ensure SubscriptionPlans can be removed" 2022-03-21 15:55:45 +00:00
Lorenzo Colitti
bc6f905d38 Merge "Store IkeTunnelConnectionParams in Ikev2VpnProfile" 2022-03-19 05:34:30 +00:00
Sarah Chin
1ef011e510 Ensure SubscriptionPlans can be removed
Add a duration that the plans last and don't read to/write from disk
for plans. Make non-duration setSubscriptionPlans API deprecated.

Test: atest SubscriptionManagerTest, NetworkPolicyManagerServiceTest
Bug: 210696427
Change-Id: I93aece78eda324c333fbf9f1adbedcf46e4864f0
Merged-In: I93aece78eda324c333fbf9f1adbedcf46e4864f0
2022-03-18 15:27:57 -07:00
Benedict Wong
7d042ad402 Merge changes I67470903,Ia80da6d4,I332397f4
* changes:
  Define and implement getProvisionedVpnProfileState()
  Introduce VpnProfileState
  Define new constants of ACTION_VPN_MANAGER_EVENT
2022-03-18 21:47:47 +00:00
Sarah Chin
f3ecc6182b Merge "Update getSubscriptionPlans documentation" 2022-03-18 21:22:49 +00:00
Sarah Chin
5fe695fbdd Update getSubscriptionPlans documentation
getSubscriptionPlans can return null if a plan has not been set for the
given subId yet. Change the annotation from @NonNull -> @Nullable and
update the documentation. SubscriptionManager#getSubscriptionPlans will
return the @NonNull plans instead.

Test: build
Bug: 213896944
Change-Id: I7b232a1a695d1db7cb0d0a177bb1090e9033b805
Merged-In: I7b232a1a695d1db7cb0d0a177bb1090e9033b805
2022-03-18 09:58:47 -07:00
Neil Fuller
72e04a7dc2 Merge "Add the ability to configure NTP port for tests" 2022-03-18 11:48:29 +00:00
lucaslin
0ae29f0cd5 Define and implement getProvisionedVpnProfileState()
CTS-Coverage-Bug: 225010642
Bug: 225010642
Test: CtsNetTestCases:Ikev2VpnTest
Change-Id: I67470903bba2f783e316be47a50c438e049ca856
2022-03-18 11:24:12 +00:00
lucaslin
f306a53e48 Introduce VpnProfileState
This class can provide the state of VPN, session key and the
settings of always-on and lockdown.

CTS-Coverage-Bug: 225010642
Bug: 225010642
Test: N/A
Change-Id: Ia80da6d4c165680f8c8c7cba0aa4246a5c5934da
2022-03-18 11:24:01 +00:00
lucaslin
836a3e3d83 Define new constants of ACTION_VPN_MANAGER_EVENT
CTS-Coverage-Bug: 225010642
Bug: 225010642
Test: N/A
Change-Id: I332397f4f65596740670d96c72c85ad216d2a1bc
2022-03-18 08:08:35 +00:00
Chiachang Wang
41e5cc7039 Store IkeTunnelConnectionParams in Ikev2VpnProfile
IkeTunnelConnectionParams contains more information than the
existing fields inside Ikev2VpnProfile. If the Ikev2VpnProfile
is built from an IkeTunnelConnectionParams, saving it to the
existing fields of Ikev2VpnProfile may cause information lost,
such as IKE options. Thus, store the IkeTunnelConnectionParams
as a field inside Ikev2VpnProfile.

The other Ike options are mutually exclusive with
IkeTunnelConnectionParams. The information such as Preshared
key or username/password may not return expected values if a
profile is built from an IkeTunnelConnectionParams. This may
confuse API callers for using the other getters. Thus, expose
a getter to retrieve IkeTunnelConnectionParams

Bug: 184750836
Test: atest FrameworksNetTests
CTS-Coverage-Bug: 184750836
Change-Id: I61e9a9549b87951956afdcbae2518228994e4729
2022-03-18 10:45:47 +08:00
Neil Fuller
187c975af9 Add the ability to configure NTP port for tests
Add the ability to configure NTP port for tests via the command line and
the associated plumbing / knock-ons.

In-progress CTS tests will run a fake NTP server on the device itself.
Binding to NTP's default port of 123 is restricted. Therefore, we need
to be able to override the port for tests.

adb shell cmd network_time_update_service set_server_config --port 9999
adb shell dumpsys network_time_update_service
<observe port value>
adb shell cmd network_time_update_service force_refresh
<observe false>

adb shell cmd network_time_update_service set_server_config
adb shell dumpsys network_time_update_service
<observe port value>
adb shell cmd network_time_update_service force_refresh
<observe true>

Bug: 213393821
Test: See above
Change-Id: I21e8b735fab268df0d617848b8a562f86560ad16
2022-03-17 11:36:19 +00:00
Frank Li
c48d90e91b Merge "[DU04-2]Appropriate changes to the NetworkPolicyManager API" 2022-03-16 12:28:24 +00:00
Frank
7c43d8fcac [DU04-2]Appropriate changes to the NetworkPolicyManager API
Divide the NetworkPolicyManager API
notifyStatsProviderWarningOrLimitReached into the following two APIs:
1. notifyStatsProviderWarningReached()
2. notifyStatsProviderLimitReached()

Bug: 216474563
Test: atest NetworkStatsServiceTest NetworkPolicyManagerTest
            NetworkPolicyManagerServiceTest OffloadControllerTest
Change-Id: Ic413eb532b5e24d4a7e2afabdcf643ab6607b1ed
2022-03-16 14:23:50 +08:00
Aaron Huang
2438554348 Create @StringDef for the PREFIX_* values
Bug: 222291489
Test: build, FrameworksNetTests
Change-Id: If54bed41e96a1b1ef169d89a0caa9e4300578374
2022-03-14 11:12:23 +08:00
Chiachang Wang
d734ce3202 Merge "Rename getRequiresInternetValidation to isInternetValidationRequired" 2022-03-03 00:10:54 +00:00
lifr
c8d48831b9 [SUBID01-0]Grow NetworkIdentity to include a new mSubId field
In the previous design of NSS and NPMS, those only had IMSI to identify
the cell network. Now the telephony has created the "subId" handle,
which is the preferred mechanism for identifying subscribers.

This commit adds NetworkStats support for subscriberId as a part of
the network identity key

Bug: 80526261
Test: atest NetworkTemplateTest NetworkStatsCollectionTest
            NetworkStatsServiceTest NetworkIdentityTest
            NetworkStatsDataMigrationUtilsTest

 (cherry-picked from ag/16825721)

Change-Id: Ie1fe81006555dbcca4b62457fa6c319f04b4576d
Merged-In: Ie1fe81006555dbcca4b62457fa6c319f04b4576d
2022-03-02 11:20:09 +08:00
Chiachang Wang
b1dc9fc8d8 Rename getRequiresInternetValidation to isInternetValidationRequired
Update naming from getRequiresInternetValidation to
isInternedValdiationRequired. This addresses API
review feedback.

Bug: 220129160
Test: atest FrameworksNetTests
CTS-Coverage-Bug: 220129160
Change-Id: I9e25890af6ed73538e9e44381bf05d587808c8de
2022-03-02 01:01:20 +00:00
Chalard Jean
d254813dde Rename EXTRA_TIMESTAMP into EXTRA_TIMESTAMP_MILLIS
Bug: 219820273
Test: m
Change-Id: I3005c045dee958c468e94ced0fac04324b77fca6
2022-02-25 17:00:49 +09:00
Treehugger Robot
027b7e9604 Merge "Remove @hide usage and fix NetworkPolicy backup" 2022-02-10 19:37:14 +00:00
Treehugger Robot
e82d94fde0 Merge "Expose VpnManager events API" 2022-02-10 12:36:37 +00:00
Robert Horvath
932104e096 Merge "Add Low Power Standby firewall chain" 2022-02-10 11:17:44 +00:00
Chalard Jean
b76721bb52 Expose VpnManager events API
Test: atest FrameworksNetTests:VpnTest
Change-Id: I66ed1ca69777ff8d8b0d2438e580282cfd30c9d6
2022-02-10 14:29:36 +09:00
Remi NGUYEN VAN
2f37fabe8c Remove @hide usage and fix NetworkPolicy backup
Remove usage of hidden symbols for network stats APIs, replacing them
with public API alternatives.

Also fix backup of NetworkPolicy when the set of subscriber IDs is
empty. This as not caught because the test used a hidden API builder
that creates a non-empty set containing null.

Bug: 197717846
Test: atest FrameworksCoreTests
  (cherry-picked and fixed merged conflict from ag/16781267)
Change-Id: I45a98795c571ac97bd6025988da156bd06d57e45
Merged-In: I45a98795c571ac97bd6025988da156bd06d57e45
2022-02-10 10:11:35 +08:00
Chiachang Wang
4123af09c9 Merge "Address API review feedback" 2022-02-10 00:50:30 +00:00
Robert Horvath
472ba5c869 Add Low Power Standby firewall chain
Bug: 190822356
Test: atest FrameworksNetTests
Change-Id: If5a61bbd0603c1385ecd2e8e25c8b91e4c6b315f
2022-02-09 21:04:42 +01:00
Treehugger Robot
5e7da1cfc4 Merge "Update VPN event strings for the IKE lib update" 2022-02-09 06:28:39 +00:00
Chiachang Wang
7e34f92ab2 Address API review feedback
Change naming of getExcludeLocalRoutes and setExcludedLocalRoutes
APIs based on API review feedback.

Bug: 217742354
Test: atest FrameworksNetTests
Change-Id: Ia330b571726f93fb38dc24341cc6b748269ccb61
2022-02-09 14:28:12 +08:00