Commit Graph

1434 Commits

Author SHA1 Message Date
Junyu Lai
bbc12176d2 Merge "Fix onBlockedStatusChanged does not work on multiple networks" am: eb70ae41c6
am: db161dda22

Change-Id: I4e414fd34b463219e6374de15622918af7d7fa49
2019-04-09 06:50:52 -07:00
Junyu Lai
eb70ae41c6 Merge "Fix onBlockedStatusChanged does not work on multiple networks" 2019-04-09 12:13:26 +00:00
Chalard Jean
7559529419 Merge "Address leftover comments on aosp/894233" am: 3753f67bcd
am: c4b0483288

Change-Id: Ia08104f839ef37139a8761e2e625bb10c94c275f
2019-04-08 23:52:35 -07:00
Remi NGUYEN VAN
a6dad121c5 Merge "Expose captive portal urls for configuration" am: 55319378ee
am: c1704ceaba

Change-Id: I54050b28bbfb93e0b7e509dbe0e987a0b902b7d9
2019-04-08 23:40:05 -07:00
Chalard Jean
3753f67bcd Merge "Address leftover comments on aosp/894233" 2019-04-09 05:51:18 +00:00
Chalard Jean
ce140af98c Address leftover comments on aosp/894233
Bug: 129510344
Test: m, boots, wifi connects, resolves DNS
Change-Id: Idf24f42a86bbfcc89e3ea8cf50d1b705d72ac613
2019-04-09 12:03:28 +09:00
Niklas Lindgren
fd6f92eaa2 Expose captive portal urls for configuration
Carriers in Mainland China need to customize certain captive portal
urls. The main issue is that google servers are not accessible in
Mainland China.

Added the following captive portal resources to be targeted for overlay.
- config_captive_portal_http_url
- config_captive_portal_https_url
- config_captive_portal_fallback_urls (string-array)
- config_captive_portal_fallback_probe_specs (string-array)

These values can be customized for e g diffent countries

Bug: 111819230
Test: atest FrameworksNetTests NetworkStackTests
Test: Add a product RRO that targets a specific country code,
insert a SIM card that matches that country code and check the log
what URL is used.
Change-Id: I38a294a5e14417f65e96e76235ea153c53c4d7cc
2019-04-09 10:23:53 +09:00
Anil Admal
3b5a296b8f Merge "Extend support for requestRouteToHostAddress for backward compatibility" am: 1470d8a3b8
am: 13bd6a8585

Change-Id: Ifa60d8f2d60aba4c4e2894dc612c224d45e3992d
2019-04-08 12:36:02 -07:00
junyulai
7509e6e053 Fix onBlockedStatusChanged does not work on multiple networks
There is a logic error in maybeNotifyNetworkBlockedForNewUidRules
that caused function to return if there is no status change in
the first network. This would cause CTS failed in devices which
has volte-enabled SIM inserted.

Bug: 129409153
Fix: 117969394
Test: 1. atest com.android.cts.net.HostsideNetworkCallbackTests \
         --generate-new-metrics 20
      2. atest FrameworksNetTests

Change-Id: Ifd18d1c6ad708c1dbc793f03d8241f572af50317
2019-04-08 17:15:52 +08:00
Anil Admal
e1a2886f73 Extend support for requestRouteToHostAddress for backward compatibility
The gnss@2.0 HAL and the framework GNSS Location Provider code is
updated in Q to not call the deprecated requestRouteToHost() method.
However, devices upgrading to Q which are still using gnss@1.1 or
earlier HAL must continued to be supported.

Fixes: 121222025
Test: Tested with gnss@1.1 HAL and first API level P.  The
      ConnectivityService log message "This method exists only for
      app backwards compatibility and must not be called by system
      services" is not present for devices with first API level P.

Change-Id: I10199776ea413dc256dbf0771e6cb3eedb334495
2019-04-05 10:06:37 -07:00
Remi NGUYEN VAN
a4752ea66b Merge "Call clearCallingIdentity before notifyDnsResponse" am: c7b33f7572
am: ffc15401f3

Change-Id: I5e3d6aacbeaba7346e014875a457a0ac52977ead
2019-04-05 03:22:16 -07:00
Remi NGUYEN VAN
c7b33f7572 Merge "Call clearCallingIdentity before notifyDnsResponse" 2019-04-05 01:54:08 +00:00
paulhu
c999faee0e Merge "Fix ConnectivityServiceTest fail." am: 362d9fb687
am: f55f77908d

Change-Id: I7f185e731db91c30a9b0f14aefbdbb067942190e
2019-04-04 00:57:26 -07:00
Treehugger Robot
362d9fb687 Merge "Fix ConnectivityServiceTest fail." 2019-04-03 23:54:38 +00:00
Chenbo Feng
9a10bb92b7 Merge "Clean up permissions when uids are no longer used" am: 9235821478 am: 6825c65462
am: c3a583e52e

Change-Id: I7773132d11d6225eac91ab2fee1043159c295d83
2019-04-03 11:03:32 -07:00
Treehugger Robot
9235821478 Merge "Clean up permissions when uids are no longer used" 2019-04-03 17:15:48 +00:00
paulhu
451b1c8609 Fix ConnectivityServiceTest fail.
NetdService#getInstance() will get null object in
WrappedConnectivityService constructor. Then pass this null
INetd object to PermissionMonitor will case NPE in
PermissionMonitor#sendPackagePermissionsToNetd()

Bug: None
Test: atest FrameworksNetTests
Change-Id: Ia1c80f9600a19c4aaf3f3c1b497b355d96c49c8e
2019-04-04 00:07:40 +08:00
lucaslin
73ac951566 Merge "Fix NetworkMonitor won't do private dns resolution" am: e121a329b8 am: 39810500f0
am: 266e2c5ac2

Change-Id: I2785e0aedd229aba6c1d8e8df09ee5c7a209b74c
2019-04-03 04:35:21 -07:00
Treehugger Robot
e121a329b8 Merge "Fix NetworkMonitor won't do private dns resolution" 2019-04-03 10:50:09 +00:00
Chenbo Feng
ade2fe930a Merge "Add tests for PermissionMonitor" am: 4e39721f18 am: e11632e768
am: 073ca45f14

Change-Id: Ifcb29bfded1b1675231c397ed886506a70267279
2019-04-03 02:19:30 -07:00
lucaslin
45e639b041 Fix NetworkMonitor won't do private dns resolution
NetworkMonitor cannot do the private dns resolution due to lack
"mNetworkCapabilities". ConnectivityService will call
NetworkStackService#notifyPrivateDnsChanged() before doing
network validation. After NetworkMonitor received
CMD_PRIVATE_DNS_SETTINGS_CHANGED, it will call
isValidationRequired to check if the validation is required.
But mNetworkCapabilities didn't be set, so the
mPrivateDnsProviderHostname will be set to empty and make
EvaluatingPrivateDnsState doesn't do private dns resolution.

Bug: 129375892
Test: 1. Build pass
      2. atest FrameworksNetTests
      3. atest NetworkStackTests

Change-Id: I637212fb4746bb2e9a2f4a4457fd36c4c2701149
2019-04-03 17:09:28 +08:00
Treehugger Robot
4e39721f18 Merge "Add tests for PermissionMonitor" 2019-04-03 06:12:12 +00:00
Chenbo Feng
fe00494c97 Clean up permissions when uids are no longer used
The kernel eBPF maps have a blacklist to store all the uids that doesn't
have internet permission. When an app is unintalled from the device and
it is the last package on device that uses that uid, make sure we
cleaned the uid from the map and do not add no longer used uids into the
eBPF map. This action helps reduce the number of entries stored in the
map and reduce the chance of overflow the eBPF map.

Bug: 128944261
Test: PermissionMonitorTest
Change-Id: I10dd0113d00d6cf9ca39902d9721f2591d387d4a
2019-04-02 20:31:57 -07:00
Chenbo Feng
1401715e6f Add tests for PermissionMonitor
Add more tests to PermissionMonitor to verify the functionality related
to INTERNET permission and UPDATE_DEVIE_STATS permission. Modified some
of the class design of PermissionMonitor so that it is easier to test
the new functionalities.

Bug: 111560570
Test: PermissionMonitorTest

Change-Id: Ic5585f337db5de48e2f87bf4f01ed7d85c349827
2019-04-02 20:31:49 -07:00
Junyu Lai
ee1e583e36 Merge "Ignore the asynchronous result while stopping keepalive" am: ea6508f9b7 am: 8680cda689
am: 22f2976c84

Change-Id: I5f1709f35a5faec7d9a110f3fa24e89ed1b05fbe
2019-04-02 04:24:18 -07:00
Junyu Lai
ea6508f9b7 Merge "Ignore the asynchronous result while stopping keepalive" 2019-04-02 10:48:23 +00:00
Paul Hu
6aeeca832f Merge "Address leftover comments on 923337 and 930217." am: a9b8e31cf8 am: bc8ca075ef
am: 6106d1e017

Change-Id: I75eadb66c81d72c768e77feddd383d60f8accd65
2019-04-02 01:29:08 -07:00
Paul Hu
a9b8e31cf8 Merge "Address leftover comments on 923337 and 930217." 2019-04-02 07:39:04 +00:00
Chalard Jean
7c4f7c5fe3 Merge "Cleanup SystemReady in the network stack" am: ff23b6dce0 am: c1e58995da
am: d1a85fe60c

Change-Id: I0e57236ede9dd176cd30ea034d05205776662c91
2019-04-01 18:13:24 -07:00
paulhu
1a40765101 Address leftover comments on 923337 and 930217.
- Restrict unprivileged apps to use
  NetworkRequest.Builder#setSignalStrength.

- Remove the "throws NullPointerException" in
  CaptivePortalProbeSpec constructor.

- Remove the null check in LinkProperties.

- Add annotataion into all ConnectivityManager.NetworkCallback
  methods.

Change-Id: Id275cac1d6a30d7515cd7b113394f5e8a0179314
Fix: 129097486
Test: atest FrameworksNetTests
2019-04-01 16:24:10 +08:00
junyulai
646ee4621c Ignore the asynchronous result while stopping keepalive
Currently, onStopped callback are synchronizely triggered when
stop() was called, since the framework don't really care
about the result of stopping keepalive.

However, if keepalive failed to stop for some reason, the
handleStopKeepalive was called mistakenly and trigger additional
callback that fail the test case.

This commit is the behavior change prior to state machine
refactoring, and introduce a stopping state for ignoring the
result in the stopping state.

Bug: 129512753
Bug: 123988249
Test: 1. atest com.android.server.ConnectivityServiceTest \
         #testNattSocketKeepalives --generate-new-metrics 100
      2. atest FrameworksNetTests

Change-Id: I4fa94e0740ba488fb5fe7ac7c3812c195dd0ec4c
2019-04-01 16:22:02 +08:00
Remi NGUYEN VAN
c8f93bca44 Merge "Fix race when starting NetworkMonitor" am: ef8485cc65 am: ea71c49a0e
am: 3a8102ab8e

Change-Id: I595ecdbf0b8e91fec4287c3476239a1e6c9c80a7
2019-03-31 21:35:25 -07:00
Chalard Jean
3ee6100881 Cleanup SystemReady in the network stack
The system server (in SystemServer.java) defines the boot
sequence, during which an event called SystemReady happens.
This corresponds to a time when critical system services
that are depended upon by other components in the system
server are ready to handle requests from their dependencies.
Some system services are listening to this event to defer
initializations that depend on the critical services.

Because the network stack is only started after SystemReady,
there is no way any NetworkMonitor may be started before
SystemReady. Remove the associated mechanism.

Fix: 129376083
Test: FrameworksNetTests
Change-Id: I071eeb10d0b7c4f71af6653d322c7b442b2cc7ee
2019-04-01 13:32:25 +09:00
Remi NGUYEN VAN
ef8485cc65 Merge "Fix race when starting NetworkMonitor" 2019-04-01 03:54:03 +00:00
Remi NGUYEN VAN
ca33d197d9 Fix race when starting NetworkMonitor
NetworkMonitor obtained LinkProperties and NetworkCapabilities via
synchronous calls to ConnectivityManager after receiving an asynchronous
notification, which is prone to races: the network could be gone before
the LinkProperties/NetworkCapabilities can be fetched.

Fix the race by passing LinkProperties/NetworkCapabilities directly to
NetworkMonitor in the asynchronous notifications.

Test: atest FrameworksNetTests NetworkStackTests
Test: booted, WiFi works
Bug: 129375892
Change-Id: I200ac7ca6ff79590b11c9be705f650c92fd3cb63
2019-04-01 11:33:10 +09:00
Luke Huang
bd2a4be755 Merge "Use IDnsResolver instead of INetd for resolver related binder commands" am: efa4301a7f am: 8ef15888a5
am: 068f305fc7

Change-Id: I2d642b71df25934fddd8a1476b5d27457628b8e2
2019-03-29 02:24:24 -07:00
Luke Huang
efa4301a7f Merge "Use IDnsResolver instead of INetd for resolver related binder commands" 2019-03-29 08:45:19 +00:00
Varun Anand
06b4b6f92e Merge changes from topic "vpn_data_accounting"
* changes:
  Move BatteryStats and StatsCompanionService to use NetworkStatsService.
  NetworkStatsService: Fix getDetailedUidStats to take VPNs into account.
  Take all VPN underlying networks into account when migrating traffic for VPN uid.
2019-03-29 00:40:53 +00:00
Varun Anand
612520f544 Take all VPN underlying networks into account when migrating traffic for
VPN uid.

Bug: 113122541
Bug: 120145746
Test: atest FrameworksNetTests
Test: Manually verified on device that stats from VPN UID are moved
      appropriately based on its declared underlying network set.
Test: vogar --mode app_process --benchmark NetworkStatsBenchmark.java

Change-Id: I9d8d0cc58d18002c1c96f8ddff780ef8dc452d21
2019-03-28 10:31:49 -07:00
chen xu
5a459916e5 Merge "support msim for captiveportal notification" am: 5c83418408 am: 3555617d90
am: 32b39d1a84

Change-Id: Ia6babd4bae6fcffdc3149f76c7e378b14ec42375
2019-03-27 21:10:41 -07:00
Treehugger Robot
5c83418408 Merge "support msim for captiveportal notification" 2019-03-28 03:28:19 +00:00
Junyu Lai
bf7917290e Merge changes I0baf582f,I4bba01ba am: 6d7c97dc5c am: a0540419f9
am: 7fd6b91b04

Change-Id: I2cc021899270b41e4b9047ef32869af53ea6fb65
2019-03-27 18:43:18 -07:00
Junyu Lai
6d7c97dc5c Merge changes I0baf582f,I4bba01ba
* changes:
  Block unpriviledged apps which create keepalives with null fd
  Fix keepalive don't get removed when lower layer error
2019-03-28 00:53:20 +00:00
junyulai
828dad188c Block unpriviledged apps which create keepalives with null fd
Currently, socketKeepalive implementation is accepting null fd
due to backward compatibility with legacy packet keepalive API.
However, due to lack of the fd, the service cannot guarantee the
port is not reused by another app if the caller release the port
for any reason.

Thus, grant the null fd access only for priviledged apps.

This commit also address some comments from aosp/918533.

Bug: 126699232
Test: atest FrameworksNetTests
Change-Id: I0baf582ff4ca8af6082c3754e8dfbcd867f39792
2019-03-27 19:51:08 +08:00
Luke Huang
8141319b4d Use IDnsResolver instead of INetd for resolver related binder commands
migrate resolver related commands from INetd to IDnsResolver

Bug: 126141549
Test: atest FrameworksNetTests ConnectivityServiceTest Nat464XlatTest
      atest DnsManagerTest
Change-Id: I559c0c1304d53dde408c062e1a52e742595e7cbe
2019-03-27 17:39:07 +08:00
chen xu
5b5447e421 support msim for captiveportal notification
Bug: 123025093
Test: Manual
Change-Id: Ie04f3ae9a825ab75077a94b108ac92075b6d4753
2019-03-27 00:11:52 -07:00
Chenbo Feng
697ebc8373 Merge "Get the permission information for native services" am: 743a1c8001 am: 2a029a210c
am: e2e936d32d

Change-Id: I798cf00caee4f505d45929ddf9ccd03e658c4c3c
2019-03-26 22:53:13 -07:00
junyulai
8b381dd91b Fix keepalive don't get removed when lower layer error
Currently, if the lower layer, e.g. wifi, didn't successfully
start keepalive by any reason. Due to the startedState changed
to NOT_STARTED first, the logic inside stop() will skip the
removing process and cause leak.

Thus, moving the changing of startedState to proper place first
to unblock subsequent changes first.

Bug: 123988249
Bug: 129371366
Test: atest FrameworksNetTests
Change-Id: I4bba01bacc80e1dac2023ef831b5ade5501894e4
2019-03-27 11:38:58 +08:00
Chenbo Feng
13730b8b9e Merge "Fix the INTERNET related permissions" am: 65cef6401a am: 5289cdd37e
am: 08c2484d37

Change-Id: Id14b54002f7b3496df9e7943a127f63dcf4e82b2
2019-03-26 20:14:10 -07:00
Chenbo Feng
d72e9ab720 Get the permission information for native services
For native services such as mediaserver and audioserver, the permission
information cannot be retrieved from getInstalledPackages. Instead, the
high level permission information is avalaible in systemConfigs. With
those permission information, netd can store the complete list of uids
that have UPDATE_DEVICE_STATS permission.

Bug: 128944261
Test: dumpsys netd trafficcontroller
Change-Id: I0331d5a3a5b927a351fcfe6689ef1ba2b993db0c
2019-03-27 02:45:37 +00:00