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 1a405fe300950d6ceae2166fd074b596d8110dbe)
Change-Id: I929a05c24df01e21415535a333bb14ac4b790a9d
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 25147878974f82f875062e99cdee85dd33f3f078)
Change-Id: I46da93ba4afa968facf98f7c3d844fd0c469095a
This patch changes sligthly the two web probes mechanism for captive
portal detection and network validation so that DNS resolution is always
done for both probes.
In general the target web servers of the two parallel HTTP and HTTPS probes
are now different. This introduces a bias in the latency measurement of
th HTTPS probe since this latency will also include DNS resolution in
general.
Test: manual verification + $ runtest frameworks-net
Bug: 32198726
(cherry picked from commit ab61e7c324b24e46829495bc2597e42ea907c53d)
Change-Id: I3b32ae451f2241849fffe24956758a9f571b1ef1
This patch adds first validation information to:
- ValidationProbeEvent, by extending the probe_type int field of to
also include a bit indicating if the probe was part of a first
validation attempt or not.
- NetworkMonitorEvent, by defining new contants for the event_type
field.
Test: $ runtest frameworks-net
+ manually generating events and inspecting the
output of $ adb shell dumpsys connmetrics list
Bug: b/32198726
(cherry picked from commit 147aa6d53bc1e9f8a3632553abcf936023806e1d)
Change-Id: Ie7a62c4f62a13ce52806d3adaa9e627cb246073c
Test: new unit test + $ runtest franeworks-net
Bug: 32833400
(cherry picked from commit f98182ef5e80ede5de7f2c2a5f40fc92a46c9704)
Change-Id: Ifaf6e778c811c7d865c790a293b1fce3f43cad1c
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 99c8294ef0c7a720364abb5884063e0a9d1bb5fe)
Change-Id: If41a24989d5f65aeb439f68741f511b5eb53b18d
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 38be57b438a0c1754091f045317db2049304e16f)
Change-Id: I196ab9ef7f5abe456a783eed65db09279d2ecb8c
This is a continuation of b/26545374, since now we can also set the
metered bit with NetworkScorer. The tracking of metered state changes
will be implemented in a seperate CL.
Bug: 31015360
Bug: 26545374
Test: N/A
(cherry picked from commit 9ac251d1169639c7b955d63b21e80cbc5c394090)
Change-Id: I6a2fcc8577d62daa8823dff9e0128a5cf39ede7b
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 574f370c6da52eeffe747248d68ef044617c7bcf)
Change-Id: Ie09b2f43cf6ec745e404d5ec98bd0b072d211ea3
Properly account for VPN apps that make heavy use of the tun
interface. Prior to this change a VPN app could be incorrectly charged
for more data than it actually used if it sent more traffic through
the tun interface than the underlying interface.
This change excludes VPN app traffic on the tun interface from the
adjustment pool and doesn't redistribute traffic to the VPN app.
Instead all of the redistributed traffic is deducted from the VPN app
which effectively represents any overhead incurred by the VPN app.
BUG: 30557871
(cherry picked from commit 8b436d865c9f287e9ae491e5278cd8874f4a865b)
Change-Id: I06f01aa8fe5fdc06b2d36cfb9c68feb244c2e5de
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 c4fe5d373caa9f53686e4d58e61394dd40558957)
Change-Id: If13b363889a8e9396273a90c3d9f9421a48aecbc
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 7724cdd8b90006c852644d06cf6c8a28450c71c6)
Change-Id: If956addbf8e7b11b36a4b966de7fca00e8f362c1
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 d42650faaa33ec6274278c65a6042228555ddd4f)
Change-Id: I1b5fe2a361b5f623a8310ae698497c83d72f3034
This avoids a NullPointerException when trying to call the callback
and gives a more readable error message.
(cherry picked from commit 5f277e1667b49976a77c9fa79b9a04d775f3b49e)
Change-Id: Ia419ff68ef10f308f9e44be47420e27099ee6070
This patch adds a TokenBucket class that can accumulate and distribute
tokens over time.
Test: comes with unit tests.
Bug: 32198637
(cherry picked from commit 998493f0ee39ae0e9ffdea27f48f1b11b0807fcb)
Change-Id: I4012ae6d02f7004bceee9a2ba03914f2a2506031
Test: IpConnectivityMetricsTest passes. Also manually changed the new
setting and verified the buffer size is as expected after flushing the
buffer.
Bug: 32198637
(cherry picked from commit 05686dbb6b965eb1a54591d2ed2334337886c6ee)
Change-Id: Iefbeac3a688b260fb3f92dfe0bfd9db28e26749d
This makes the policy for mixed HTTP/HTTPS content match Chrome.
This allows us to display login pages where unimportant
subresources are HTTP.
Bug: 32171569
(cherry picked from commit 625166377b2d7c5f09d1e7617b3eac3a464fba53)
Change-Id: Ia82958192d978280715442e182c34f9da5c88c66
Test: manually created a bug report and inspected content.
(cherry picked from commit 51d14cb60793a9a073b8a29ff7875bb518cd7d54)
Change-Id: I9649cc2f9bb7a1975e60baaae55fcdb2a48c3b93
This patch adds a version field to ipconnectivity.proto and populates it
to 2, which is the logical version number for NYC-MR2.
Test: IpConnectivity{EventBuilder,Metrics}Test pass
Bug: 32127906
(cherry picked from commit d680d4c856f54bea0c60dea74ba4204822391e49)
Change-Id: If8f167c0dc4c1abe0e235e2adfd131168a4ddc52
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 681fcda5896fd6c94f8a543ef9983c0a0644e87e)
Change-Id: I7cd3086544c881915fc6dbf14b87a24ab0cd8748
Test methods not tagged with @{Small,Medium,Large}Test will not appear
in the Android Platform Continuous Testing dashboard.
Test methods tagged with @LargeTest will not be run in the Android
Platform Continuous Testing dashboard.
Test: ApfTest passes ($runtest frameworks-net)
Bug: 31479480
(cherry picked from commit 4195c28347cc100954f83c3c92b4dde4673f8608)
Change-Id: Ia215fc8e2ccc61f6223c24fdf390e1e759de302f
This was broken by the implementation of IPv6 tethering, which
relies on various private classes which end up calling unmockable
final classes like NetworkInterface.
Making everything public like this is almost certainly not the
best way of fixing this test, but on the other hand there is
value to the test continuing to pass.
Test: runtest frameworks-net # Everything passes.
Test: IPv6 tethering continues to work.
(cherry picked from commit 7e0eeca8ba4063d0d35dda9a8dfcc612e45efb87)
Change-Id: I8a3cf466871c026f4ae0f5cfa73071338cdf5b7e
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 ecc986d430f4b8158f177ed97d2edb741f11ff71)
Change-Id: I993eeaa5dec001c39389023f355f506129b356e7
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 281a17c9580de5c9898be7d9654d428801976511)
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
Change-Id: Ifab32c9214e9caab71dbf93b3d3ca88df6f49636
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 c8c1027762d66c12c9c153ccbb8f80acdee8571c)
Change-Id: I3c702bd981ed80ed606be0fb52d61eb3d7195a6f
Test: ConnectivityServiceTest updated with test cases.
Test: Manually tested against att-wifi in B42.
Bug: 30222699
(cherry picked from commit be96da11ccb5dd500f920c3ba90d350857293b3d)
Change-Id: I90c0f97fe0e41de4059bceae7b56ab3a70145696
This patch replaces System.currentTimeMillis() with
SystemClock.elapsedRealTime() to make RA lifetime computation more
resilient to various external events inducing jumps in
currentTimeMillis().
Test: ApfTest passes.
(cherry picked from commit 305af8e98a4fce712c1a93daf3b050dac2e8b91a)
Change-Id: If19011fc0c905948f2e42b975cfcc5f8672a95fb
This patch removes the synchronization around the private variable
mRunning inside of IpReachabilityMonitor and instead qualifeis the field
as volatile.
Synchronization is not needed for reads/writes on native fields or
object references because they are already guaranteed to be atomic.
Synchronization here was used for enforcing memory visibility across
concurrent threads indirectly through monitor acquire/release.
The volatile keyword achieves this in a more explicit way.
Also, this patch changes the way that probeAll() copies the
IpReachabilityMonitor's mIpWatchList by temporary holding mIpWatchList
keys into an ArrayList instead of a more expensive HashSet. Since Java
HashSet are just degenerated HashMaps, and that key iteration order is
based on key hash, the iteration order over this temporary collection
will be consistent for the same mIpWatchList.
Test: refactoring CL. Existing unit tests still pass.
(cherry picked from commit b0f1186c034c4df9eb54ed29944d16ce6d7ade56)
Change-Id: I48d2b4d837a459150cd431b400ec01b87b48c014
This patch adds a getUint8 getter for ByteBuffers and changes ApfFilter
to make uses of getUint8/16/32 everywhere.
The return types of getUint16 is also changed from long to int, which
will expand gracefully to long as an unsigned int as it is guaranteed to
be positive after getUint16.
Test: ApfTest passes
(cherry picked from commit 995dd94673005b43d32456e2de5fda0090b23576)
Change-Id: I606ebc5aedfcacde400d27cc6bc37145769b122c
specified for a given network.
Bug: 10705136
(cherry picked from commit 54f0d9edbf7f6ea6dd805dc77fdbf2c3848188e2)
Change-Id: I89e2fdfbbfa981d435a2974422d9d9c009872d76
Adds support for dynamic ImsService Binding (change 1/3). Included
in this change:
- AIDLs for ImsServiceController
- ImsFeature/ImsServiceBase definitions
- KEY_CONFIG_IMS_PACKAGE_OVERRIDE CarrierConfig option
Test: Unit Tests in opt/telephony
Bug: 30290416
Change-Id: Ic4cb1d85a29681b08a6a525c588a72209862dcc3
crash_dump needs to acquire CAP_SYS_PTRACE to be able to ptrace
processes with capabilities. selinux should hopefully be sufficient for
restricting ptrace to processes that should do it.
Bug: http://b/34694637
Test: debuggerd `pidof system_server`
Change-Id: If46f0b9baa54529780f7767f309f76b102a42ab4