Commit Graph

3576 Commits

Author SHA1 Message Date
Hugo Benichi
f4fcd280f1 DO NOT MERGE Unit tests for NetworkNotificationManager
Test: new unit test, no functional changes.
Bug: 32198726

(cherry picked from commit baebb23d3c)

Change-Id: I123de68de9ae353b95edce89eb570cfbb5f8d9a3
2017-01-20 15:08:38 +09:00
Jeff Sharkey
475c3eadb0 StrictMode to detect untagged network traffic.
Network usage is tracked by the kernel at the UID level, which is
granular enough for normal apps, but large components (such as the
system server) are impossible to debug without adding additional
socket tagging to help identify subsystems within a UID.

To help ensure that system components tag all their network traffic,
this change offers a new StrictMode option to detect and report
untagged sockets.

Test: builds, boots, all common traffic tagged
Bug: 30943431, 30414041
Change-Id: I825c7941076054732264690247de2863342638e2
2017-01-19 20:52:05 -07:00
sj.cha
a256f19d3a Infinite reboot when OS upgrade from M to N with set Always-on VPN
Symptom : Infinite reboot

Reproduce step :
1. Set the Always-on VPN in M OS
2. OS upgrade from M to N

Reproduce frequency : 100%

Reason of issue :
https://android.googlesource.com/platform/frameworks/base/+/9b74791
As you know, in M OS, Always-on VPN information is stored in keystore with encryted.
However, in N OS, there is no encryption when it put in keystore.
So, You deleted keystore check(locked/unlock) logic on ConnectivityService.
By this reason, when device upgrade to N OS(set Always-on VPN), it goes infinite boot.
(Cannot read old always-on vpn information untill device unlock.)

Solution :
I founded exception handling when this case as follows:
If getting Credentials.LOCKDOWN_VPN information has null value(catch the exception),
updateLockdownVpn returns false value.

Signed-off-by: SangJin Cha <sj.cha@lge.com>
Change-Id: I6fd980152440bb5248aab45e2f8fda448d3f6c7b
2017-01-20 12:40:15 +09:00
Tamas Berghammer
b4958e68d1 Merge "DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"" into nyc-mr1-dev-plus-aosp am: a05cbcb4b1
am: 3b9f1466b1  -s ours

Change-Id: Ie697d5efaea39e1522e947ac1a8f38f1443a1964
2017-01-18 22:38:09 +00:00
Tamas Berghammer
1e5b34d567 DO NOT MERGE: Revert "Update package names to work with the proto3 compiler" am: 4dac494ece -s ours
am: 8ad263e479  -s ours

Change-Id: I17090081cb6721124d3ba513f8d59f1982764cb8
2017-01-18 22:12:04 +00:00
Tamas Berghammer
3b9f1466b1 Merge "DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"" into nyc-mr1-dev-plus-aosp
am: a05cbcb4b1

Change-Id: I9d5789a9c4f12c12c5cc13eb8f92d3084a818440
2017-01-18 20:32:44 +00:00
Tamas Berghammer
8ad263e479 DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"
am: 4dac494ece  -s ours

Change-Id: I09a58385e10e135af06dff346624dcbc9eb76a4f
2017-01-18 20:22:57 +00:00
Tamas Berghammer
9443bca1e9 Merge "Update package names to work with the proto3 compiler" into nyc-mr1-dev-plus-aosp am: 4ce688e0d8
am: 0d53c255ad

Change-Id: I229a5c77a0dc5d75afc43669eb1d58d16f492844
2017-01-18 20:02:42 +00:00
Tamas Berghammer
a05cbcb4b1 Merge "DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"" into nyc-mr1-dev-plus-aosp 2017-01-18 19:59:59 +00:00
Tamas Berghammer
04ff5d580f Update package names to work with the proto3 compiler am: 0c0c8f7825 -s ours
am: 3c5feceabd

Change-Id: I092a61abba417a71fe1a8eb9d29016e74808feb2
2017-01-18 19:55:14 +00:00
Tamas Berghammer
4dac494ece DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"
This reverts commit 0c0c8f7825.

Change-Id: I6e8d193fa22e0e7e30b214c13ae0480d3c9b0dc6
2017-01-18 19:33:22 +00:00
Tamas Berghammer
0d53c255ad Merge "Update package names to work with the proto3 compiler" into nyc-mr1-dev-plus-aosp
am: 4ce688e0d8

Change-Id: Ia944e535f7329c32bf34770fb0d99019cc1091f9
2017-01-18 18:06:43 +00:00
Tamas Berghammer
3c5feceabd Update package names to work with the proto3 compiler
am: 0c0c8f7825  -s ours

Change-Id: I8c957a9ad00cb393dbaaa05bec9730cc3a84a94e
2017-01-18 17:44:23 +00:00
Tamas Berghammer
4ce688e0d8 Merge "Update package names to work with the proto3 compiler" into nyc-mr1-dev-plus-aosp 2017-01-18 12:58:01 +00:00
Tony Mak
a631cff09b DO NOT MERGE: Show notification for always-on app VPN
am: dc464b9525  -s ours

Change-Id: I8af0a0746154d5774b0fb841616b57ce65a36707
2017-01-18 10:49:08 +00:00
Stephen Chen
eaef497013 DO NOT MERGE: Implement metered tracking for NetworkStats summary queries.
am: 5df334f572  -s ours

Change-Id: I970aed286a5bcc69d2ee69ea23b53af36dc2bbea
2017-01-18 10:48:16 +00:00
Hugo Benichi
7879e7c7c9 DO NOT MERGE: ConnectivityServiceTest: fix testAvoidBadWifiSettings
am: 0bcc4a517e  -s ours

Change-Id: Ifdac8feb994342d18a0795a676da558445867b1f
2017-01-18 10:47:07 +00:00
Hugo Benichi
151e0a67ee DO NOT MERGE: Fix ConnectivityServiceTest testRequestBenchmark
am: 020844b6cf  -s ours

Change-Id: Iccb849a88e017c3189b2c374a98c44dc58085861
2017-01-18 10:46:07 +00:00
Felipe Leme
7f60f6a75b DO NOT MERGE: Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock.
am: 5210ff9305  -s ours

Change-Id: I4c92c8bfe7cd19839a86a63e5afb3b3868a63825
2017-01-18 10:43:14 +00:00
Felipe Leme
d145693309 DO NOT MERGE: Use @Ignore to explicitly disable a @Test method.
am: cf0dc7a2cf  -s ours

Change-Id: I6e6fea2d375c40e53fee1877abeb06a9e6d2e218
2017-01-18 10:42:03 +00:00
Felipe Leme
d3a7c39d35 DO NOT MERGE: Fixed NetworkStatsServiceTest and converted it to JUnit4.
am: d63c8bc4a2  -s ours

Change-Id: I72964aed5f8f27120300948d57e4083bb81f06ec
2017-01-18 10:41:08 +00:00
Hugo Benichi
0a9c28205d DO NOT MERGE: ConnectivityThread: use lazy holder idiom
am: e4f69293e9  -s ours

Change-Id: I8af8bbe0b13b73d4c394c182d299a57c7d8b5736
2017-01-18 10:40:14 +00:00
Hugo Benichi
3c38b629b8 DO NOT MERGE: ConnectivityManager: use ConnectivityThread looper
am: 9954fbdb65  -s ours

Change-Id: I12d27fd45f1182719df8c538e734419b640977e8
2017-01-18 10:38:59 +00:00
Hugo Benichi
e2f67798b4 DO NOT MERGE: ConnectivityManager: a simpler CallbackHandler
am: 5d2047de7b  -s ours

Change-Id: Ie2413170190809b0a95749f6788fb54b0a9bafd7
2017-01-18 10:37:50 +00:00
Jeremy Klein
ad320f75fb DO NOT MERGE: Add a null check for the OnStartTetheringCallback.
am: d707b3716b  -s ours

Change-Id: I62e8648a232f8c9ec1fe97270b654078a59e3cb9
2017-01-18 10:37:31 +00:00
Etan Cohen
3a8e46f7aa DO NOT MERGE: [CS] Remove timeout event after first available
am: a814243e87  -s ours

Change-Id: I84244312fb5314ac1d177571ff1a3fdd070480ef
2017-01-18 10:37:25 +00:00
Lorenzo Colitti
4a2c8d5351 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
am: e8d1e9daa0  -s ours

Change-Id: I255b736255c6f165f1600fe064e86bbd33bfe810
2017-01-18 10:37:05 +00:00
Lorenzo Colitti
90ee9fceb0 DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
am: 0c7a3c349d  -s ours

Change-Id: If776d54cd1138a9266268f43833f6c329cd6285d
2017-01-18 10:37:00 +00:00
Lorenzo Colitti
b96a901889 DO NOT MERGE: Move FakeSettingsProvider to a common location.
am: cf31451670  -s ours

Change-Id: I896ce2cf8abf50e5189f609a4f810296817695c9
2017-01-18 10:36:56 +00:00
Hugo Benichi
37a22e5500 DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
am: 30c0460727  -s ours

Change-Id: Ifd485f77ada20a0773e791816e811fdf22442a92
2017-01-18 10:36:52 +00:00
Erik Kline
138ca12a42 DO NOT MERGE: Support timeouts for requestNetwork() invocations.
am: ee83e11aeb  -s ours

Change-Id: Ife31e9372728e888ccf175f0a38577e17c3fc468
2017-01-18 10:36:44 +00:00
Pierre Imai
c8dcc19b39 DO NOT MERGE: Silence the obnoxious MTU 0 error message that occur when no MTU is specified for a given network.
am: 9e98fecd15  -s ours

Change-Id: I3fa3801e54b06ea4e51f1e0d3577a309f1b970ab
2017-01-18 10:36:39 +00:00
Tony Mak
dc464b9525 DO NOT MERGE: Show notification for always-on app VPN
This is the same notification as the one shown during legacy lockdown
mode, sans the 'reset' button.

The notification is only shown during times when VPN has not yet
established or has failed, for example during boot or after a crash.

Bug: 29123115

(cherry picked from commit 9ca892f698)

(cherry picked from commit c777123d5c)

Change-Id: I42b4b24e25175bb7628b46a79431d2592644803c
2017-01-18 19:08:44 +09:00
Stephen Chen
5df334f572 DO NOT MERGE: Implement metered tracking for NetworkStats summary queries.
Dependent on ag/1550196 where API is defined.

Bug: 31015360
Bug: 26545374
Test: runtest --path
frameworks/base/core/tests/coretests/src/android/net/NetworkStatsTest.java,
other test classes.

(cherry picked from commit 9369e9d105)

(cherry picked from commit 757658193d)

Change-Id: I79e401fc4159264a075febba82bd8c295b8e677f
2017-01-18 19:08:41 +09:00
Hugo Benichi
0bcc4a517e DO NOT MERGE: ConnectivityServiceTest: fix testAvoidBadWifiSettings
This patch introduces an assertEventuallyThat helper function in
ConnectivityServiceTest which given a boolean function retries until the
function returns true or until a maximum retry time is reached.

This function is used to fix flakyness of testAvoidBadWifiSetting where
the Message posted by reevaluate() could reach the Handler's
MessageQueue after waitForIdle takes effect, resulting in the test to
fail.

Instead of fixing the flakyness by introdcing hard sleep times,
assertEventuallyThat is used to reduce the overall test time.

With this change the test has been observed to pass with 100% success
rate over 50000 invocations.

Test: $ runtest frameworks-net
Bug: 32561414

(cherry picked from commit b54c8cffa8)

(cherry picked from commit b1bddc92c5)

Change-Id: I432f90a699dadfef37a5d0a69e25050753340964
2017-01-18 19:08:39 +09:00
Hugo Benichi
020844b6cf DO NOT MERGE: Fix ConnectivityServiceTest testRequestBenchmark
This patch fixes flakyness of testRequestBenchmark by adjusting time
limit for callback registration from 100ms to 180ms, and time limits for
onAvailable and onLost triggers from 30ms to 40ms.

With these timeouts the test succeeds 100% over 5000 iterations.

When using 150ms for registration timeout, running the test 5000 times
fails 2 times.

When using 30ms for onLost timeout, running the test 5000 times fails
1 times.

In addition, this patch also cleans testRequestBenchmark and uses the
more stable SystemClock.elapsedRealtime() for duration measurements.

Test: $ runtest frameworks-net
Bug: 32561414

(cherry picked from commit 766e564647)

(cherry picked from commit 8436dae4c3)

Change-Id: I3caf10025f203156a297c0b522f24768a18accc9
2017-01-18 19:08:37 +09:00
Felipe Leme
5210ff9305 DO NOT MERGE: Refactored NetworkStatsServiceTest to use Mockito instead of EasyMock.
Test: m -j32 FrameworksServicesTests && adb install -r -g ${ANDROID_PRODUCT_OUT}/data/app/FrameworksServicesTests/FrameworksServicesTests.apk && adb shell am instrument -e class "com.android.server.net.NetworkStatsServiceTest" -w "com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner"

BUG: 30943463

(cherry picked from commit de2a6f1b1d)

(cherry picked from commit 6670ab4480)

Change-Id: I93cdfc8753dcded141732c0587783d1fa2085f5a
2017-01-18 19:08:29 +09:00
Felipe Leme
cf0dc7a2cf DO NOT MERGE: Use @Ignore to explicitly disable a @Test method.
BUG: 30839080
BUG: 31007021

(cherry picked from commit a4dc2a7129)

(cherry picked from commit b8a440f538)

Change-Id: I45efc93b40e526467c97d0735289db1404ccd22d
2017-01-18 19:08:27 +09:00
Felipe Leme
d63c8bc4a2 DO NOT MERGE: Fixed NetworkStatsServiceTest and converted it to JUnit4.
Most tests were failing because due to a null NetworkCapabilities.
Example:

1) testNetworkStatsWifi(com.android.server.net.NetworkStatsServiceTest)
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.net.NetworkCapabilities.hasCapability(int)' on a null object reference
	at
	com.android.server.net.NetworkStatsService.updateIfacesLocked(NetworkStatsService.java:983)

BUG: 30839080

(cherry picked from commit f96df4b298)

(cherry picked from commit 00a6e6c111)

Change-Id: I6eee96178ade6adfc1406e06d5376206ca2420e5
2017-01-18 19:08:25 +09:00
Hugo Benichi
e4f69293e9 DO NOT MERGE: ConnectivityThread: use lazy holder idiom
This patch changes the way that the ConnectivityThread is lazily
instantiated by using the "lazy initialization holder class idiom".

The first code point that tries to obtain a reference to the unique
ConnectivityThread instance will trigger the creation of the Singleton
class, which will guarantee a thread-safe initialization of the static
INSTANCE field inside Singleton according to the language specs.

This is the Item #71 of Effective Java.

The unique static instance of ConnectivityThread is not stored directly
inside ConnectivityThread class but is stored in a static nested class.
This is to avoid triggering the creation of that unique instance when
Zygote does class preloading at phone startup. Otherwise this would lead
to Zygote creating a new OS thread during preloading, which is a fatal
error.

Test: frameworks-wifi tests pass
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 3ab84b087a)

(cherry picked from commit 8f201294fe)

Change-Id: Ic9a31809ef19e618246f9aa17f5df29bd65f8510
2017-01-18 19:08:23 +09:00
Hugo Benichi
9954fbdb65 DO NOT MERGE: ConnectivityManager: use ConnectivityThread looper
This patch removes the static singleton looper used by
ConnectivityManager and instead uses the common ConnectivityThread.

This allows to removes the static atomic counter used to track
the number of registered NetworkCallback in ConnectivityManager, because
the looper is not turned off anymore when no callbacks are registered.

Also an overloaded version of sendRequestForNetwork is added taking as a
new parameter a Handler. This will allow to overload various callback
and request related API calls with user provided Handlers.

Test: ConnectivityServiceTest passes
Bug: 26749700
Bug: 28537383
Bug: 32130437

(cherry picked from commit 3b41f05d68)

(cherry picked from commit 301b09738a)

Change-Id: If5c1e46ca6c4a09ef526cbe09654c5f55ef8d6ce
2017-01-18 19:08:21 +09:00
Hugo Benichi
5d2047de7b DO NOT MERGE: ConnectivityManager: a simpler CallbackHandler
This patch simplifies CallbackHandler in the following way:
  - CallbackHandler directly uses the static references to
    sNetworkCallback and sCallbackRefCount. This allows to remove
    instance fields in CallbackHandler.
  - CallbackHandler does not have a reference to ConnectivityManager
    anymore
  - CallbackHandler.getObject() is now generic in a type-safe way.

Test: ConnectivityServiceTest passes
Bug: 28537383
Bug: 32130437

(cherry picked from commit 0b42baf68a)

(cherry picked from commit 56260ed9cb)

Change-Id: I4d0b2441b6af76bc56b19218210a2a381532a3c4
2017-01-18 19:08:18 +09:00
Jeremy Klein
d707b3716b DO NOT MERGE: Add a null check for the OnStartTetheringCallback.
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.

(cherry picked from commit 35e99ea8ef)

(cherry picked from commit fb63d5a4ef)

Change-Id: Ia5f328c4b25aa6624dc3c8493eb0c7bbab99904c
2017-01-18 19:08:14 +09:00
Etan Cohen
a814243e87 DO NOT MERGE: [CS] Remove timeout event after first available
Guarantees that timeouts are only delivered if a network never
becomes available. Once a network is available the timeout is
canceled.

Bug: 31402633
Test: all timeout related unit tests pass (new one added)

(cherry picked from commit 5eba9d7061)

(cherry picked from commit 3fb372fe9f)

Change-Id: I0cf1a2b7d25bc9912e03fca30621809a9071396c
2017-01-18 19:08:11 +09:00
Lorenzo Colitti
e8d1e9daa0 DO NOT MERGE: Move the connectivity tests to frameworks/base/tests/net.
This will give us a good place to put all the networking tests.

Fix: 31479480
Test: adb  shell am instrument -w -e notClass com.android.server.connectivity.tethering.TetherInterfaceStateMachineTest 'com.android.frameworks.tests.net/android.support.test.runner.AndroidJUnitRunner'  # PASS

(cherry picked from commit 5a7c486d70)

Change-Id: I4c417c2ba0747d2085169e47ae4a99e93c4d8814
2017-01-18 19:08:05 +09:00
Lorenzo Colitti
0c7a3c349d DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
Removing the static dependency on guava reduces test compile time
by about 20 seconds on a Z840, thus substantially speeding up the
compile/test cycle.

Make FutureIntent public instead of package-private because it is
used directly by NetworkPolicyManagementServiceTest, which as of
this CL is now in a different package.

(cherry picked from commit 6a64dd2178)

Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest  # PASS
Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest  # Already failing.
Bug: 31479480

(cherry picked from commit 834805275a)

Change-Id: I8a95d4618dced81f173d2b38b9c1dfe3860b348a
2017-01-18 19:08:02 +09:00
Lorenzo Colitti
cf31451670 DO NOT MERGE: Move FakeSettingsProvider to a common location.
(cherry picked from commit 4163f9ca8f)

Test: runtest frameworks-util -c com.android.internal.util.test.FakeSettingsProviderTest
Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest
Test: runtest frameworks-services -c com.android.server.retaildemo.PreloadAppsInstallerTest
Test: runtest frameworks-services -c com.android.server.retaildemo.RetailDemoModeServiceTest
Bug: 31479480

(cherry picked from commit 4166a1fcfa)

Change-Id: Ib82b162f354b8cbb521bc0783556f3225b4d12ac
2017-01-18 19:08:00 +09:00
Hugo Benichi
30c0460727 DO NOT MERGE: ConnectivityServiceTest: mark flaky test as such
This patch extracts into its own independent test a test sub-block looking
for a race condition when not waiting on handlers to become idle:
there is no way to prevent the race from not happening when looking for
it this way. This makes the test flakky.

This new independent test is tagged with @FlakkyTest(tolerance = 3).

Test: ConnectivityServiceTest passes, with higher probability.
Bug: 31479480

(cherry picked from commit 144810b6cf)

Change-Id: I32632bb763585c23f1de5bb1811a384a35bf9f64
2017-01-18 19:07:59 +09:00
Erik Kline
ee83e11aeb DO NOT MERGE: Support timeouts for requestNetwork() invocations.
(cherry-pick of 0b7a74842b)
(cherry picked from commit 155a59aa63)

Bug: 21414325

(cherry picked from commit 5791c5f681)

Change-Id: I640c43315a071ecbf881e5ce898164915e0b787f
2017-01-18 19:07:33 +09:00
Koichi, Sugimoto
45dbfe7c3e Disable always-on VPN in factoryReset
When network setting reset is started while always-on VPN is enabled,
application crash occurs with IllegalStateException in prepareVpn().

Therefore, it's necessary to also disable always-on VPN in factoryReset
before prepareVpn() when turning off VPN.

Bug: 29030858
Change-Id: I08c5406717dd7937d197c2e934a56d037477aafc
2017-01-18 10:02:58 +00:00