Commit Graph

1143 Commits

Author SHA1 Message Date
Chenbo Feng
b9e294616c Merge "Clean up the permission control code in framework" am: 78d6a42e99
am: a4cbe3d728

Change-Id: I1af059171c5d80be7abaee636f012f3b55dac2df
2019-05-13 11:32:59 -07:00
Treehugger Robot
78d6a42e99 Merge "Clean up the permission control code in framework" 2019-05-13 18:04:50 +00:00
Chalard Jean
414b8c8b1c Merge "Support strict mode private DNS on VPNs that provide Internet." am: a56eab41a6
am: 549439cc92

Change-Id: I28cc679def7cdd4dc5187e65f4524c3998ebcafc
2019-05-10 04:33:43 -07:00
Chalard Jean
a56eab41a6 Merge "Support strict mode private DNS on VPNs that provide Internet." 2019-05-10 09:39:17 +00:00
Junyu Lai
a33165110a Merge changes Ibff278a6,If6d537a3 am: ecc6fad658
am: a865058628

Change-Id: Ic51f3b32375378ff74bdd54d1f36569b277fc80f
2019-05-09 23:30:19 -07:00
Lorenzo Colitti
80986d9a53 Support strict mode private DNS on VPNs that provide Internet.
Currently, strict mode private DNS does not work on VPNs because
NetworkMonitor does not validate VPNs. When a VPN connects, it
immediately transitions to ValidatedState, skipping private DNS
hostname resolution.

This change makes NetworkMonitor perform private DNS hostname
resolution and evaluation even on VPNs.

In order to ensure that the system always immediately switches to
the VPN as soon as it connects, remove the unvalidated penalty
for VPN networks. This ensures that the VPN score is always 101
and the VPN always outscores other networks as soon as it
connects. Previously, it would only outscore other networks
when no-op validation completed.

Bug: 122652057
Test: atest FrameworksNetTests NetworkStackTests
Test: manually ran a VPN with private DNS in strict mode
atest android.net.cts.ConnectivityManagerTest com.android.cts.net.HostsideVpnTests
Change-Id: Iaa78a7edcf23755c89d7b354edbc28d37d74d891
2019-05-10 14:30:54 +09:00
Treehugger Robot
ecc6fad658 Merge changes Ibff278a6,If6d537a3
* changes:
  Revert "Add NATT keepalive resources and methods into IpSecService"
  Revert "[KA11] Verify fd ownership and allocate resource for NattKeepalive"
2019-05-10 01:42:26 +00:00
Junyu Lai
4e645f30a9 Revert "Add NATT keepalive resources and methods into IpSecService"
This reverts commit 2445227fa8.

Reason for revert: Adds dependency between IpSecService and
                   ConnectivityService may lead to future deadlock
		   problems. Uses a simpler approach instead,
		   hence the solution is not needed.
		   See aosp/954040.

Change-Id: Ibff278a6eee666cd85dba81c2bed94d568679b02
2019-05-10 00:58:18 +08:00
Xiao Ma
c4e4fd7bee Merge "adopt non-blocking method to obtain the IpMemoryStore service." am: b340a6988b
am: c657a844ea

Change-Id: If0d43f21710ca31149610d3e6a5f0d7e4acc11a2
2019-05-09 04:55:13 -07:00
Xiao Ma
b340a6988b Merge "adopt non-blocking method to obtain the IpMemoryStore service." 2019-05-09 11:30:56 +00:00
Etan Cohen
06927ada84 Merge "[CS] Unregister callback as part of onUnavailable dispatch" am: 6b88a9192a
am: 7c49d9b39d

Change-Id: Ida684c441e7aaedce9a29da071ef5a68403d08b3
2019-05-08 22:42:55 -07:00
Lorenzo Colitti
830e9a784c Merge "Add IPsec checks for IPSEC_TUNNEL feature" into qt-dev
am: 44d474d7c7

Change-Id: I9bd0fa3958c63a148af98abfe7cc6e4301cf01c2
2019-05-08 21:20:19 -07:00
Etan Cohen
9b09a16930 [CS] Unregister callback as part of onUnavailable dispatch
The onUnavailable semantics promise that it is equivalent to calling
the unregister callback method. But - it doesn't unregister the callback
allowing it to be reused. Fixed.

Additionally, modified the unregisterNetworkCallback method to not fail
on duplicate unregistration (since a callback could now self
unregister). Instead simply print a log.

Bug: 130651445
Test: atest ConnectivityServiceTest
Change-Id: I4c54b003a733eb0b1e4fd8674ed13081b1bef8e3
2019-05-09 02:41:40 +00:00
Xiao Ma
a489a8d495 adopt non-blocking method to obtain the IpMemoryStore service.
Test: atest FrameworksNetTests
Change-Id: I7de4f23370bdf9c9df5e74ed074c794080d93d95
2019-05-09 10:39:50 +09:00
Junyu Lai
17a45f4d6e Revert "[KA11] Verify fd ownership and allocate resource for NattKeepalive"
This reverts commit cecd4a3d64.

Reason for revert: Adds dependency between IpSecService and
                   ConnectivityService may lead to future deadlock
                   problems. Uses a simpler approach instead,
                   hence the solution is not needed.
                   See aosp/954040.

Change-Id: If6d537a39595cf132d3ed81d4eaac6700f5f0ab3
2019-05-08 11:44:20 +08:00
Benedict Wong
e265d5f9a5 Add IPsec checks for IPSEC_TUNNEL feature
This patch adds checks to ensure that the IPSEC_TUNNEL feature flag is
enabled.

Bug: 117183273
Test: Compiles & tests passing
Change-Id: I2699dda29e1eed139bc6fd1b70071e5ab33cad88
2019-05-08 00:11:28 +00:00
Chenbo Feng
05887f99c6 Clean up the permission control code in framework
Delete the unused NetworkManagementService API for set/remove
permissions. Use PERMISSION_NONE to replace NO_PERMISSIONS so the
framework now use the same set of permission constant when communicate
with netd.

Bug: 128944261
Test: PermissionMonitorTest.java

Change-Id: I25224c9576f52d2a0a0bd2182325c7aac7b28eb5
2019-05-07 13:50:25 -07:00
Paul Hu
2372345957 Merge "Add CTS API coverage for APIs which are used by NetworkStack" am: 1c9ca3b0f6
am: b276709976

Change-Id: Id3f0d1c19a76c7987b69e449203fc50423f5e531
2019-05-01 21:52:29 -07:00
Paul Hu
1c9ca3b0f6 Merge "Add CTS API coverage for APIs which are used by NetworkStack" 2019-05-02 01:37:26 +00:00
paulhu
f32da69eec Add CTS API coverage for APIs which are used by NetworkStack
Change-Id: I4f6c34f3bcfa65e60cf73fc1b7cab2d83c32836a
Bug: 129200003
Bug: 129200292
Bug: 129199996
Bug: 129200261
Bug: 129200513
Bug: 129200316
Bug: 129200589
Bug: 129200181
Bug: 129200669
Bug: 129200504
Bug: 129200478
Test: atest FrameworksNetTests
Test: atest CtsNetTestCases: added tests pass
2019-04-30 17:26:24 +08:00
Mark Chien
d0f8ca8126 Support adding NATT keepalive packet filter
Support adding NATT keepalive packet filter to APF
filter.
Generating APF program will be addressed in another CL.

Bug: 33530442
Test: - atest NetworkStackTests
      - atest FrameworksNetTests

Change-Id: I403cd14ac9aa6b001c4e580abbb33a615931a192
Merged-In: Idaa7238a5c9acdae9f6cff13095ee9436c7c92c8
(cherry picked from commit 038c11d564)
2019-04-30 11:26:26 +08:00
Mark Chien
7d64434c73 Merge "Support adding NATT keepalive packet filter" am: d157594a2a
am: b9e515c331

Change-Id: Idaa7238a5c9acdae9f6cff13095ee9436c7c92c8
2019-04-29 09:34:37 -07:00
Aaron Huang
9eeaa3aa9e Support adding NATT keepalive packet filter
Support adding NATT keepalive packet filter to APF
filter.
Generating APF program will be addressed in another CL.

Bug: 33530442
Test: - atest NetworkStackTests
      - atest FrameworksNetTests

Change-Id: I4961d5da343d8700600269632787c28112f0f9f1
2019-04-29 19:33:45 +08:00
Paul Hu
1cff26a707 Merge "Move more network unit tests to common tests" into qt-dev 2019-04-29 01:36:42 +00:00
Lorenzo Colitti
bc2aa3472f Make DNS cache lifecycle management explicit
1. ConnectivityService calls netd binder to create/destroy network directly.
2. Call dnsresolver binder to create/destroy cache after create/destroy network.
3. Remove unused network create/destroy methods in NetworkManagementService.

Bug: 129453995
Test: atest FrameworksNetTests

Merged-In: I388e208143c38b89bcbb0589de393250024d59aa
(cherry picked from commit 204ca13e63)

Change-Id: I4d3dfd9305b60a724aa2dc38448948d8e710c932
2019-04-26 02:13:59 +00:00
Lorenzo Colitti
30d7a16ddb Merge "Make DNS cache lifecycle management explicit" am: a6d5664819
am: 57646109fd

Change-Id: I51cf1b7cfd49d4731d922578e8512a1326ebec63
2019-04-25 17:50:05 -07:00
Lorenzo Colitti
a6d5664819 Merge "Make DNS cache lifecycle management explicit" 2019-04-26 00:23:22 +00:00
Paul Hu
469c5d69e5 Move more network unit tests to common tests
This adds the moved tests to CTS as well.
The moved unit tests are appropriate for CTS as they test data holder
classes that need to function properly for apps to work.

Test: atest FrameworksNetTests
Test: atest CtsNetTestCases: added tests pass
Bug: 129199900

Change-Id: I895d2b57da658d5bed28ebe128611d5d15835742
Merged-In: I9f708a252ab606b782f5f828dce8c1690c3703bf
Merged-In: I895d2b57da658d5bed28ebe128611d5d15835742
(cherry picked from commit cc21fbd483)
2019-04-25 23:16:13 +08:00
Lorenzo Colitti
067b9dc406 Merge changes from topic "niap-vpn" into qt-dev
* changes:
  Reinstate new VPN uid filtering unit tests
  Revert new tests and PackageManager mock
  Block incoming non-VPN packets to apps under fully-routed VPN
2019-04-25 04:23:01 +00:00
Rubin Xu
123847466e Reinstate new VPN uid filtering unit tests
Mock out PackageManager and returns correct information corresponding
to the test app package itself.

Test: atest --generate-new-metrics 10 com.android.server.ConnectivityServiceTest
Bug: 114231106
Bug: 130397860

Merged-In: Ic2faef44831575b2d03bc00ef2553d5c549adc95
Change-Id: Ic2faef44831575b2d03bc00ef2553d5c549adc95
(cherry picked from commit 4469b1d8a5)
2019-04-24 14:10:21 +00:00
Wayne Ma
e9635d80f1 Merge "Backwards-incompatible resolv module API change for making setResolverConfiguration take a parcelable." into qt-dev 2019-04-24 13:05:59 +00:00
Lorenzo Colitti
a6824ccb8a Revert new tests and PackageManager mock
A mocked PackageManager caused test failures in existing tests.
Revert that for now to make tests pass again.

Bug: 114231106
Bug: 130397860
Test: atest FrameworksNetTests

Merged-In: Ib59e211d4329f885108de9ea0a74669ffb144e17
(cherry picked from commit 8574c9bf35)

Change-Id: I603a0b0dfb67a942679a668c182aa650774c80b2
2019-04-24 13:55:48 +01:00
Rubin Xu
9a3f724597 Block incoming non-VPN packets to apps under fully-routed VPN
When a fully-routed VPN is running, we want to prevent normal apps
under the VPN from receiving packets originating from any local non-VPN
interfaces. This is achieved by using eBPF to create a per-UID input
interface whitelist and populate the whitelist such that all
non-bypassable apps under a VPN can only receive packets from the VPN's
TUN interface (and loopback implicitly)

This is the framework part of the change that build the whitelist.
The whitelist needs to be updated in the following cases:
* When a VPN is connected and disconnected
    This will cover the change to allowBypass bit, since that can't be
    changed without reconnecting.
* When a VPN's NetworkCapabilites is changed (whitelist/blacklist app changes)
* When a new app is installed
* When an existing app is removed
* When a VPN becomes fully-routed or is no longer fully-routed

New user/profile creation will automatically result in a whitelist app change
transition so it doesn't need to be handled specially here.

Due to the limitation of the kernel IPSec interacting with eBPF (sk_buf->ifindex
does not point to the virtual tunnel interface for kernel IPSec), the whitelist
will only apply to app VPNs but not legacy VPN connections, to prevent breaking
connectivity with kernel IPSec entirely.

Test: atest PermissionMonitorTest
Test: atest android.net.RouteInfoTest
Test: atest com.android.server.ConnectivityServiceTest
Test: atest HostsideVpnTests
Bug: 114231106

Merged-In: I5af81bc80dadd086261ba4b1eb706cc873bb7cfa
Change-Id: I5af81bc80dadd086261ba4b1eb706cc873bb7cfa
(cherry picked from commit 65968ea16b)
2019-04-24 11:56:46 +01:00
Rubin Xu
4469b1d8a5 Merge "Reinstate new VPN uid filtering unit tests" am: 554a15d5ea
am: 89213aa483

Change-Id: Ic2faef44831575b2d03bc00ef2553d5c549adc95
2019-04-24 03:05:12 -07:00
Rubin Xu
9e64dc05d2 Reinstate new VPN uid filtering unit tests
Mock out PackageManager and returns correct information corresponding
to the test app package itself.

Test: atest --generate-new-metrics 10 com.android.server.ConnectivityServiceTest
Bug: 114231106
Bug: 130397860
Change-Id: Ib921700eda417f411d7a2c77c1140fba9ab50bbb
2019-04-23 18:04:14 +01:00
Junyu Lai
df9591a4dc Merge "[KA11] Verify fd ownership and allocate resource for NattKeepalive" am: fb36d44462
am: 91dab790e7

Change-Id: I410acc19ceb13e32c65cbdf3095da9db0802470c
2019-04-23 01:18:54 -07:00
junyulai
cecd4a3d64 [KA11] Verify fd ownership and allocate resource for NattKeepalive
Since socket keepalive APIs for UDP encapsulation sockets are
public to generic app. In order to ensure the given fd is valid,
this change verifies the resource id inside the UDP
encapsulation socket by using methods provided by IpSecService.

Bug: 125517194
Fix: 123968920
Test: 1. atest FrameworksNetTests --generate-new-metrics 10
      2. atestcom.android.server.ConnectivityServiceTest \
         #testNattSocketKeepalives --generate-new-metrics 100
Change-Id: I408aacc19b364683854d15a095c34e72389a6e5b
2019-04-23 10:47:19 +08:00
Chalard Jean
98c59fafc2 Fix an argument to the legacy broadcast
Test: new test for this
Fixes: 62650382
Change-Id: I918b8271d3c3c058553ca888cb54cd36a6efba66
Merged-In: I0fc408d546ae9d72b7dd9415e502252b484d4329
Merged-In: I9282930106d1eee3274d9e5c4e89de60e929a0e6
2019-04-23 02:36:32 +00:00
Chalard Jean
807983b976 Merge "Fix an argument to the legacy broadcast" am: b00786fe21
am: b39b829601

Change-Id: I0fc408d546ae9d72b7dd9415e502252b484d4329
2019-04-22 18:12:27 -07:00
Chalard Jean
b00786fe21 Merge "Fix an argument to the legacy broadcast" 2019-04-23 00:38:10 +00:00
Benedict Wong
544c09a340 Merge "Add NATT keepalive resources and methods into IpSecService" am: c345527430
am: f8893a980f

Change-Id: I3affb5bdbb0c3f980b6606d728668e74c31646d0
2019-04-22 13:44:20 -07:00
Benedict Wong
c345527430 Merge "Add NATT keepalive resources and methods into IpSecService" 2019-04-22 20:03:54 +00:00
Paul Hu
dc3d4a1e3c Merge "Move more network unit tests to common tests" am: 4a208ae14a
am: 7668894c47

Change-Id: I9f708a252ab606b782f5f828dce8c1690c3703bf
2019-04-22 07:30:55 -07:00
Paul Hu
4a208ae14a Merge "Move more network unit tests to common tests" 2019-04-22 13:59:25 +00:00
Chalard Jean
72102e5bbd Fix an argument to the legacy broadcast
Test: new test for this
Fixes: 62650382
Change-Id: I918b8271d3c3c058553ca888cb54cd36a6efba66
2019-04-22 22:26:16 +09:00
Luke Huang
a24d5d8f8b Make DNS cache lifecycle management explicit
1. ConnectivityService calls netd binder to create/destroy network directly.
2. Call dnsresolver binder to create/destroy cache after create/destroy network.
3. Remove unused network create/destroy methods in NetworkManagementService.

Bug: 129453995
Test: atest FrameworksNetTests
Change-Id: I15660d27f735e33d621d4af8972cdf115bf76dfa
2019-04-22 17:43:37 +08:00
Chalard Jean
ff46a2567b Make LegacyTypeTracker testable
...and add basic trivial tests for it.

Test: this, and ConnectivityServiceTest
Bug: 62650382
Change-Id: Ie7ca938e6f66f1b15feb6ed93afa0aebb20884ae
2019-04-22 15:44:23 +09:00
Chalard Jean
1ad99fb064 Merge changes Id598ae1d,I475bd011
* changes:
  Fix a possible crash when the listener is null
  Straighten AIDL interface for the memory store
2019-04-22 02:15:04 +00:00
Chalard Jean
da3421e6e5 Straighten AIDL interface for the memory store
Some names were still wrong somehow, and the wrappers were
missing.

Test: NetworkStack & FrameworkNetTests
Change-Id: I475bd011ad9bc714a07021a9dfd85c4876f8e9ad
Merged-In: I475bd011ad9bc714a07021a9dfd85c4876f8e9ad
2019-04-22 00:40:28 +00:00
Chalard Jean
ee88a6e264 Merge "Make LegacyTypeTracker testable" am: 54cedaca89
am: fd22a78946

Change-Id: I53457ad6af430c551c6909a7e68127a3667efde9
2019-04-21 17:25:03 -07:00