Commit Graph

1864 Commits

Author SHA1 Message Date
Shishir Agrawal
7ea3e8bf89 Unhiding MSIM APIs.
1. Unhide MSIM APIs in TelephonyManager that already have non-MSIM equivalent
   APIs public.
2. Make MSIM API naming consistent (overloaded, no suffix).
3. Unhide APIs in SubscriptionManager that are necessary for MSIM.

Bug: 26772894
Change-Id: Ibebab7379ea79c8e4812bbd190342827048e30e2
2016-01-26 13:47:27 -08:00
Jeremy Klein
36c7aa0325 Expose a simple tethering API which includes provision checks.
This CL exposes startTethering and stopTethering functions which also
encapsulate all provisioning check logic. Right now, only silent checks
are implemented, but UI checks will come in a follow-up CL. GTS tests
and Settings changes are under the same topic ID.

BUG: 26247383
Change-Id: I65f61d899594cb3f9035d8496366af17a57a090f
2016-01-25 16:37:09 -08:00
Felipe Leme
ecfcceaecb Fixed RestrictBackgroundStatus signature by adding @hide.
BUG: 26082535
Change-Id: I2e4b63327a8f791db01ee0c1ab090557170857fa
2016-01-25 12:09:03 -08:00
Felipe Leme
1b103238b9 Created new public API so applications can customize its metered network
usage while running in background.

The new API is 'int getRestrictBackgroundStatus()' and returns the
following values:

 - RESTRICT_BACKGROUND_STATUS_DISABLED: no restrictions
 - RESTRICT_BACKGROUND_STATUS_WHITELISTED: restriction but app is
   whitelisted
 - RESTRICT_BACKGROUND_STATUS_ENABLED: full restriction

The proper way to interprete these values for using metered networks
while running on background is:

 - When disabled, there is no restriction and the application could use the
   metered networks freely.

 - When whitelisted, the application can use the metered network, but should try
   to minimize the usage.

 - When enabled, the application should not try to use metered networks at
   all, since the usage will be denied.

BUG: 26451391
Change-Id: If07d42bb88e4c02802df0234861f38aef2cfead7
2016-01-22 10:50:11 -08:00
Felipe Leme
0b23389fc7 Merge "Added API to whitelist apps for background restriction." 2016-01-21 00:26:23 +00:00
Felipe Leme
b85a637eac Added API to whitelist apps for background restriction.
The new APIs are:

    void addRestrictBackgroundWhitelistedUid(int uid);
    void removeRestrictBackgroundWhitelistedUid(int uid);
    int[] getRestrictBackgroundWhitelistedUids();

The whitelist is persisted in the same XML used for the other policies,
using the new 'whitelist and 'restrict-background' tags. Examples:

3 whitelisted apps:

<whitelist>
  <restrict-background uid="10001" />
  <restrict-background uid="10009" />
  <restrict-background uid="10086" />
</whitelist>

No whitelisted app:
<whitelist />

BUG: 26451391

Change-Id: I01b114c346fd8abc05433ad43d010379384f8c2b
2016-01-20 13:10:10 -08:00
Jeff Davidson
c48e3b602e Merge "Implement roaming tracking in NetworkStats summary queries." 2016-01-20 01:43:02 +00:00
Jeff Davidson
a6a78076ee Implement roaming tracking in NetworkStats summary queries.
Whether a network is deemed roaming or not was already being tracked
as part of the NetworkIdentitySet, so the underlying data store
already tracks roaming and native data separately. However, this data
was being aggregated together in NetworkStatsCollection#getSummary,
since the NetworkIdentitySet is converted to an iface name for the
purposes of matching, and the iface name will be identical whether or
not the iface is considered roaming. Now it is separated.

Also fixes a long-standing bug in NetworkIdentitySet where an identity
read from a saved file would always be considered roaming == false,
even if it wasn't at the time it was written.

Bug: 25813438
Change-Id: I11ab5b51182ed8da7af8fde468df065f9fdc3dad
2016-01-19 16:57:51 -08:00
Robin Lee
b68d2d5b68 Merge "Always-on app VPNs" 2016-01-14 11:37:18 +00:00
Robin Lee
244ce8ef5f Always-on app VPNs
Bug: 22547950
Change-Id: I46b204170bfac58d944f39b22f815b080de71a58
2016-01-12 19:54:54 +00:00
Udam Saini
b6bb986889 Merge "Makes captive portal server calculation in one place." 2016-01-12 18:40:45 +00:00
Jeremy Klein
502658dd90 Merge "Add a TETHER_PRIVILEGED permission and use it where needed." 2016-01-11 19:10:22 +00:00
Udam Saini
b7c2487c8b Makes captive portal server calculation in one place.
This also creates a hidden api for the captive portal server calculation
so that the Setup Wizard can use this as well.

bug:13246857
Change-Id: I4dfd0916df97cfce13252c7cc15f7bd05ed95f77
2016-01-08 14:38:31 -08:00
Jeremy Joslin
2ceac5ad94 Use UserHandle.USER_SYSTEM in place of 0.
Change-Id: I3bc5f2d326b0b5c6797f3ac259d0e3d42a3afa0f
2016-01-08 09:30:44 -08:00
Jeremy Klein
d42209db96 Add a TETHER_PRIVILEGED permission and use it where needed.
BUG: 26247383
Change-Id: I73f7227d77926faa9081e83eccb83c8ddee33e08
2016-01-07 10:11:24 -08:00
Jeff Sharkey
51f3908c6a Merge "Consistent naming for PackageManager methods." 2016-01-06 22:26:16 +00:00
Jeff Sharkey
e06b4d1d9f Consistent naming for PackageManager methods.
When hidden PackageManager methods take a userId argument, they
should be named explicitly with the "AsUser" suffix.  This fixes
several lagging examples so that we can pave the way to safely
start passing flags to new methods without scary overloading.

Also fix spacing issues in various logging statements.

Change-Id: I1e42f7f66427410275df713bea04f6e0445fba28
2016-01-06 15:21:06 -07:00
Jeremy Joslin
904bfb5fc4 Exit getAllValidScorers early if not the primary. am: 5b294b45d0 am: 2a5f880c9e
am: 0807537ac2

* commit '0807537ac25bb0557a009e64eb1e399296c7531b':
  Exit getAllValidScorers early if not the primary.
2016-01-06 21:52:43 +00:00
Jeremy Joslin
0807537ac2 Exit getAllValidScorers early if not the primary. am: 5b294b45d0
am: 2a5f880c9e

* commit '2a5f880c9e3c14c5e3421259f7904d9c352f79dc':
  Exit getAllValidScorers early if not the primary.
2016-01-06 21:48:30 +00:00
Jeremy Joslin
5b294b45d0 Exit getAllValidScorers early if not the primary.
This fixes the crash that occurs when getAllValidScorers() is invoked by
a non-primary user when a scorer is active.

BUG: 23040221
Change-Id: I42c9e18d74389be3191258ca5626f2c433ca7cc7
2016-01-05 17:44:05 -08:00
Przemyslaw Szczepaniak
e69a31d750 Use HexDump instead of java.lang.IntegralToString
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.

(cherry picked from commit 3f72604be8)

Change-Id: I0527d580f5975dca0dfaa6f86fa3695dd49d0849
2015-12-22 13:10:55 +00:00
Jeff Sharkey
f0d7633bdc Add tagging variants for DatagramSocket.
Oops, we missed these along the way.

Bug: 25799174
Change-Id: I4ad368f9faee4b1996d605534dce4c2b23dbe200
2015-12-04 15:32:07 -07:00
Neil Fuller
1d4775fbb2 Merge "Add thread safety documentation" 2015-12-04 11:09:53 +00:00
Neil Fuller
71fbb81b14 Fix @code escapes
The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
2015-12-02 14:24:11 +00:00
Lorenzo Colitti
def4cb0c7d Don't match network requests to legacy API requests.
Currently, we look at network requests that are created by the
current requestNetwork API to see if they look like requests
that could have been created using the legacy
startUsingNetworkFeature API.

This causes those networks to be added to LegacyTypeTracker,
and so cause CONNECTIVITY_ACTION broadcasts, be accessible
using getNetworkInfo(int type), etc. This was done in the L
timeframe so that apps could request networks using the
then-new requestNetwork APIs and still use them using legacy
APIs such as requestRouteToHost.

However, the resulting CONNECTIVITY_ACTION broadcasts are
expensive. requestRouteToHost has been deprecated since L, and
mixing the old and new APIs was never recommended, so it's time
to delete this hack.

Bug: 22513439
Bug: 23350688
Bug: 25295964
Change-Id: Id867058446e5ee44396743d126d26fa57da0c990
2015-11-27 11:46:19 +09:00
Neil Fuller
bf0dc0fba7 Add thread safety documentation
An upcoming change will remove "synchronized" from the API docs. This change
documents those cases where the guarantees can be determined from code
inspection.

Bug: 25767152
Change-Id: I75083ce01513ed315222304fe3f34190d40748cb
2015-11-26 13:33:48 +00:00
Lorenzo Colitti
3c9b733843 Merge "Fix javadoc for the NetworkRequest version of requestNetwork." 2015-11-26 08:16:51 +00:00
Lorenzo Colitti
36728a9f1a Fix javadoc for the NetworkRequest version of requestNetwork.
The documentation for this method says that the request can be
released using releaseNetworkRequest, but that's not true.
releaseNetworkRequest only takes a PendingIntent, and can only be
used to release a request filed with a PendingIntent.

Fix the docs to say that the request needs to be released using
unregisterNetworkCallback.

Change-Id: If044fd2d463ab8d09874172d5d56946251057a3c
2015-11-26 17:06:20 +09:00
Lorenzo Colitti
d117946299 Make the new NetworkRequest flavour consistent with the others.
Change-Id: I491eb0b6d2fa0f1c472c97ef403488407e71803e
2015-11-25 15:47:14 +09:00
Lorenzo Colitti
7754abb2fc Merge "Temporarily add a requestNetwork flavour that takes a legacy type" 2015-11-25 06:37:25 +00:00
Lorenzo Colitti
7de289f355 Temporarily add a requestNetwork flavour that takes a legacy type
This method is public @hide to support progressive refactoring of
tethering away from startUsingNetworkFeature to requestNetwork,
without getting in the way of the CONNECTIVITY_ACTION cleanup in
b/22513439 .

Bug: 9580643
Bug: 22513439
Change-Id: I9053ec746cc8f415a2d5849f044667eeb14e1b19
2015-11-25 12:00:52 +09:00
Przemyslaw Szczepaniak
3f72604be8 Use HexDump instead of java.lang.IntegralToString
java.lang.IntegralToString is being removed, replaced
all its usage by com.android.internal.util.HexDump.

Bug: 24932279
(cherry-picked from 15fc0548a536750110e159e06a39ba943eccdd81)

Change-Id: Id6ab88337af12d93cd73c41775b9d5baa1e61d96
2015-11-20 14:11:02 +00:00
Chad Brubaker
e33f81f81c Merge "Use duck typing in X509TrustManagerExtensions" am: 9c3982f75d am: a26cafc2b2
am: cd03475fc4

* commit 'cd03475fc44ed52939e836b8c3a9426691beedd8':
  Use duck typing in X509TrustManagerExtensions
2015-11-12 23:07:20 +00:00
Chad Brubaker
a26cafc2b2 Merge "Use duck typing in X509TrustManagerExtensions"
am: 9c3982f75d

* commit '9c3982f75da19e2c0e146e7f251514a44412da0c':
  Use duck typing in X509TrustManagerExtensions
2015-11-12 19:33:31 +00:00
Chad Brubaker
bfcd67f71e Use duck typing in X509TrustManagerExtensions
X509TrustManagerExtensions assumes that the default X509TrustManager is
an instance of conscrypt's TrustManagerImpl. That's no longer going to
always be the case. Instead use duck typing to support any
X509TrustManagers that have the extra methods required for
X509TrustManagerExtensions.

Change-Id: If23471bda590d5e131bb1e802a60599957bc7f37
2015-11-11 13:38:33 -08:00
Christopher Tate
0a61b36013 Introduce socket stats tag for restore traffic
As well as system API for emplacing it.

Change-Id: If33fbd23552261efe3b00d75c22ff823564f43e6
2015-11-10 11:13:12 -08:00
Chad Brubaker
ec95c407b4 Add stub isSameTrustConfiguration API
This API will be used in WebView to help determine whether secure
connections to hostname A can be used for secure communication to
hostname B (e.g., HTTP/2 connection pooling).

This is needed because with the new network security configuration a
completely different trust configuration may be used for
foo.com and bar.foo.com, so even if the foo.com certificate contains a
SAN for bar.foo.com it may not be valid for bar.foo.com given the
applications trust configuration.

Change-Id: I87184d392b9a7eca53a9c837996ca7ab5cd5bf12
2015-10-28 14:25:06 -07:00
Erik Kline
1ad4e22534 Also treat loss of IPv6 as a loss of provisioning.
Bug: 23226635
Change-Id: Icebb7d83ed5b3b796901b9f023909a02eb461941
2015-10-27 17:11:27 +09:00
Lorenzo Colitti
67fb3d7358 Merge "Reinstate CHANGE_NETWORK_STATE as a normal permission." into mnc-dr-dev am: 809dcade99 am: bdc458048a am: bb8f652372
am: 8ecad265b6

* commit '8ecad265b6db57f78dd142e974057c91f69489ed':
  Reinstate CHANGE_NETWORK_STATE as a normal permission.
2015-10-22 06:33:09 +00:00
Lorenzo Colitti
8ecad265b6 Merge "Reinstate CHANGE_NETWORK_STATE as a normal permission." into mnc-dr-dev am: 809dcade99 am: bdc458048a
am: bb8f652372

* commit 'bb8f652372f261edd2083103d4300a9173993706':
  Reinstate CHANGE_NETWORK_STATE as a normal permission.
2015-10-22 06:28:24 +00:00
Lorenzo Colitti
bdc458048a Merge "Reinstate CHANGE_NETWORK_STATE as a normal permission." into mnc-dr-dev
am: 809dcade99

* commit '809dcade9906001f6aa51a68aa783e20bb1d7c0d':
  Reinstate CHANGE_NETWORK_STATE as a normal permission.
2015-10-22 06:18:43 +00:00
Lorenzo Colitti
809dcade99 Merge "Reinstate CHANGE_NETWORK_STATE as a normal permission." into mnc-dr-dev 2015-10-22 06:15:05 +00:00
Lorenzo Colitti
d542705066 Reinstate CHANGE_NETWORK_STATE as a normal permission.
This is a partial revert of http://ag/738523 , but not a full
revert because M apps that have gone through the WRITE_SETTINGS
route to obtain permission to change network state should
continue to have permission to do so.

Specifically:

1. Change the protection level of CHANGE_NETWORK_STATE back from
   "signature|preinstalled|appop|pre23" to "normal". This allows
   apps that declare CHANGE_NETWORK_STATE in their manifest to
   acquire it, even if they target the M SDK or above.
2. Change the ConnectivityManager permission checks so that they
   first check CHANGE_NETWORK_STATE, and then ask Settings
   if the app has the WRITE_SETTINGS runtime permission.
3. Slightly simplify the code in the Settings provider code that
   deals specifically with the ability to change network state.
4. Make the ConnectivityService permissions checks use the
   ConnectivityManager code to avoid code duplication.
5. Update the ConnectivityManager public Javadoc to list both
   CHANGE_NETWORK_STATE and WRITE_SETTINGS.

Bug: 21588539
Bug: 23597341
Change-Id: Ic06a26517c95f9ad94183f6d126fd0de45de346e
2015-10-22 08:33:45 +09:00
Jeff Sharkey
71f9a6f7a9 Merge "Ignore network policies with missing IMSI." into mnc-dr-dev am: 38463bb950 am: 5d7604323f am: 3b30aae6e7
am: 647afb199e

* commit '647afb199eb60f20bf3dcc49d48bffd46bb2d0d5':
  Ignore network policies with missing IMSI.
2015-10-20 23:08:08 +00:00
Jeff Sharkey
647afb199e Merge "Ignore network policies with missing IMSI." into mnc-dr-dev am: 38463bb950 am: 5d7604323f
am: 3b30aae6e7

* commit '3b30aae6e702cbdad4ada69b76e4bc50fa2e161c':
  Ignore network policies with missing IMSI.
2015-10-20 18:33:48 +00:00
Jeff Sharkey
5d7604323f Merge "Ignore network policies with missing IMSI." into mnc-dr-dev
am: 38463bb950

* commit '38463bb950390a7b50fb07a990d9ed6990d07539':
  Ignore network policies with missing IMSI.
2015-10-20 17:32:57 +00:00
Jeff Sharkey
56859f323c Ignore network policies with missing IMSI.
In rare cases, we might have created a network policy before an IMSI
was available.  Because this policy is persisted, and we incorrectly
think that it always applies, we end up annoying the user when data
usage goes over the 2GB default warning threshold.

This patch fixes the network matching logic to ignore these empty
network policies when present.

Bug: 24972775
Change-Id: Id26499b6716121dddf0f2c05b848b0bed5995e72
2015-10-19 16:52:08 -07:00
Jerry Wong
32d52f344a Incorrect time used in some NTP server responses
Per RFC 4330, a NTP server response should be discarded when:
    - the stratum is 0 (unspecified), or
    - the leap indicator is 3 (unsync'ed), or
    - the mode is not 4 (server) / 5 (broadcast), or
    - the transmitted time is 0.

Update SntpClient so that such responses would be discarded.

Additionally:
    - make some variables suitably "final"
    - enable logging
    - add alternate requestTime() for testing
    - add some miniscule test coverage

Cherry-picked from Jerry Wong's

    https://partner-android-review.googlesource.com/#/c/460074

Bug: 24719581
Change-Id: Id11a79a6e53ce95500ed4b4d691a29c260666f6c
2015-10-17 03:36:32 +09:00
Jeff Sharkey
75f4786606 resolved conflicts for f20a5700 to master
Change-Id: I1f13a63c3680901fac58ef709118c9242032b11f
2015-10-12 17:51:45 -07:00
Jeff Sharkey
f20a5700a4 am 75051c3a: am 7f6d8754: am a03ecf7d: Merge "Push firewall rules up to ConnectivityService." into mnc-dr-dev
* commit '75051c3a62123b4668231d0243ba11462e02ac5a':
  Push firewall rules up to ConnectivityService.
2015-10-12 16:55:58 +00:00