Commit Graph

47771 Commits

Author SHA1 Message Date
Alex Klyubin
f9034cc4ae Add android.security.NetworkSecurityPolicy.
The initial purpose of the NetworkSecurityPolicy class is to provide a
way for network libraries to check whether cleartext network traffic
(e.g., HTTP, WebSockets, XMPP, IMAP, SMTP) should be blocked from this
process.

The policy is set declaratively by the app developer in the app's
manifest and can be queried from ApplicationInfo.flags. Unfortunately,
several network stacks (bundled and unbundled) do not have a reference
to ApplicationInfo or Context.

Alternatives:
* Keep this API hidden (and thus potentially move it from framework to
  libcore), thus precluding unbundled HTTP stacks from using the API.
* Introduce a new java.lang.System property instead of this API.
  However, such properties are a mess and not as powerful/extensible
  as a public class.

Bug: 19215516
Change-Id: If22056a74d257bf1d805ebb4fc284240b3d338f1
2015-03-19 10:27:48 -07:00
Alex Klyubin
4177b8cbbf Merge "Add app-level usesCleartextTraffic manifest attribute." 2015-03-19 16:10:20 +00:00
Shawn Willden
e90774ddbc Rename KM_TAG_USER_AUTH_ID to KM_TAG_USER_AUTH_TYPE.
Also change to an ENUM, to match changes in keymaster_defs.h

Change-Id: Ieda3402563b0b9e4e8b100eb69a94651e51c6347
2015-03-18 18:28:39 -06:00
Shawn Willden
254c58c4e7 Merge changes Id9a22ad3,I629ab2c4
* changes:
  Add KM_TAG_AUTH_TOKEN.
  Add support for KM_TAG_USER_SECURE_ID.
2015-03-19 00:27:38 +00:00
Mathieu Chartier
437ac8f844 Merge "Add JIT late override property" 2015-03-18 22:56:55 +00:00
Andreas Gampe
13dbc3d48d Merge "Frameworks/base: Fix potential NPE in InputMethod" 2015-03-18 22:19:58 +00:00
Mathieu Chartier
7a49028aa2 Add JIT late override property
Required for JIT debug property since user builds can't restart
the shell.

Bug: 19735273

Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8
2015-03-18 15:18:52 -07:00
Alex Klyubin
01a959d60a Add app-level usesCleartextTraffic manifest attribute.
The attribute declares whether the app intends to use cleartext
network traffic (e.g., HTTP, WebSockets, XMPP, SMTP, IMAP -- without
TLS or STARTTLS). The default value is true. If set to false, the app
declares that it does not intend to use cleartext network traffic. In
this case the app requests the platform, tooling, and third-party
libraries to prevent it from using cleartext traffic. The danger of
cleartext network traffic is that its confidentiality, authenticity,
and integrity are not guaranteed.

This feature is designed to help apps which care about security of
data exchanged over the network. These apps can accidentally
regress/downgrade to using cleartext network communications. This
typically happens when the server the app communicates with all of a
sudden tells it to use cleartext communications (e.g, HTTP URL
instead of an HTTPS URL) or when one of the components of the app gets
updated and regresses to cleartext communications without the
developer noticing.

In general, the prevention measures are on best effort basis. It's
impossible to automatically prevent all instances of cleartext
traffic. For example, an app bent on bypassing restrictions could
perform low-level network I/O with unusual TCP packet fragmentation,
or could use a custom application-level protocol.

The expectation is that most apps use libraries for network
communications and these libraries over time will start to honor this
flag, thus increasing the protections offered by it.

Bug: 19215516
Change-Id: I8700d51ddbc5d528faa4b6a5fa5bc9551ad02d13
2015-03-18 10:46:56 -07:00
Andreas Gampe
4236ad7a2f Frameworks/base: Fix potential NPE in InputMethod
Don't read the size of an unchecked list.

Bug: 19797138
Change-Id: I9d8c087aff7bc9cc1e8aae9a0b489e23b5442765
2015-03-17 21:07:21 -07:00
Andreas Gampe
4976e2de8d Frameworks/base: Fix visibility flag in Editor
Fix double check.

Bug: 19797138
Change-Id: I95e694f384f1f25d6cf3b6a1669052940385e41d
2015-03-17 16:08:43 -07:00
Andreas Gampe
9568772acb Merge "Frameworks/base: Fix format string in Geofence" 2015-03-17 21:30:49 +00:00
Andreas Gampe
1414a6291d Frameworks/base: Fix format string in Geofence
%p is not a valid conversion in format strings. It is also superfluous,
as it is already known that location is null.

Bug: 19797138
Change-Id: I5784e28b05b4ca9aac57e0fc9da4a7f01d9b3247
2015-03-17 21:30:20 +00:00
Andreas Gampe
aae42eb261 Merge "Frameworks/base: Fix format string in Camera" 2015-03-17 20:52:21 +00:00
Andreas Gampe
02ffb2aad9 Frameworks/base: Fix format string in Camera
One cannot print a boolean with %d. That will result in an exception.

Bug: 19797138
Change-Id: I86c42ea834cebebaecff8463637cc9de14d1fc88
2015-03-17 20:51:38 +00:00
Andreas Gampe
be549f9b8e Merge "Frameworks/base: Fix precedence bug" 2015-03-17 20:36:21 +00:00
Andreas Gampe
869d26fda0 Frameworks/base: Fix precedence bug
Explicit cast has higher precedence than shift.

Bug: 19797138
Change-Id: Ifcf569bf774fbf65ee50c078f736ad167bcc6b8c
2015-03-17 20:31:22 +00:00
Andreas Gampe
0ae488e1cb Merge "Frameworks/base: Use || instead of |" 2015-03-17 20:28:53 +00:00
Andreas Gampe
e1b9262084 Frameworks/base: Use || instead of |
Nothing wrong with | in this case, but || is canonical.

Bug: 19797138
Change-Id: I5f145736a5470f7cde06efce9a217d86eda2135f
2015-03-17 20:27:42 +00:00
Andreas Gampe
4d9076437c Merge "Frameworks/base: Fix trivial equals implementation" 2015-03-17 20:25:20 +00:00
Andreas Gampe
610b2c778c Frameworks/base: Fix trivial equals implementation
The comparator's equal implementation doesn't satisfy the constraints
of an equals method, namely being reflexive. Use the standard Object
implementation instead.

Bug: 19797138
Change-Id: I74f888e99533e1945aab7ab10fe8ee3ded6388f4
2015-03-17 20:24:45 +00:00
Andreas Gampe
345a8f69ea Merge "Frameworks/base: Fix a comparison" 2015-03-17 00:12:25 +00:00
Andreas Gampe
5eb421221b Merge "Frameworks/base: Force long computation" 2015-03-16 20:37:02 +00:00
Andreas Gampe
6878ee57b4 Merge "Revert "Frameworks/base: Fix a constructor"" 2015-03-16 17:51:15 +00:00
Andreas Gampe
8c80efeaeb Revert "Frameworks/base: Fix a constructor"
The constructor was public API, doh. Gotta do this differently.

This reverts commit 33c5b2a62f.

Change-Id: Iadca87fe6a8866a8bd9d6f2a91578ec0d4c44691
2015-03-16 17:51:01 +00:00
Andreas Gampe
d61cbf9a08 Merge "Frameworks/base: Fix a constructor" 2015-03-16 16:51:01 +00:00
Andreas Gampe
5abcd06b1f Merge "Frameworks/base: Fix always-false equals" 2015-03-16 15:28:53 +00:00
Andreas Gampe
63662320ae Frameworks/base: Force long computation
Ensure that an int-based computation is carried out as long.

Change-Id: I23b10a95600674e8a5a65c0ea349afdc6aa152ae
2015-03-15 20:17:07 -07:00
Andreas Gampe
650989b0b5 Frameworks/base: Fix a comparison
Change-Id: I80d62869920e77110c95f20369ec2631c75f6ed4
2015-03-15 18:04:41 -07:00
Andreas Gampe
33c5b2a62f Frameworks/base: Fix a constructor
This was meant to be a constructor, according to the comment.

Change-Id: Ief49011b392e58b37d9acb4a3f754f1828b256af
2015-03-15 14:29:16 -07:00
Andreas Gampe
007cfa73b8 Frameworks/base: Fix always-false equals
Rect != Insets.

Change-Id: I3d4ff890608e446b51f09a1b633af742f0c069d4
2015-03-15 14:19:43 -07:00
Andreas Gampe
65ac8a2bd7 Frameworks/base: Fix missing cast
Without a cast, the division is integer division.

Change-Id: I050e53778de8b1591a0be16ebbee8eed70eb1528
2015-03-15 14:10:23 -07:00
Shawn Willden
fe2b1a8298 Add KM_TAG_AUTH_TOKEN.
Change-Id: Id9a22ad32137f3e0380c2812f790bbecab511d11
2015-03-14 10:51:56 -06:00
Shawn Willden
7714a9413f Add support for KM_TAG_USER_SECURE_ID.
Change-Id: I629ab2c47ee6d42de20a963ef283e330364c8ee7
2015-03-14 10:50:32 -06:00
Stephen Smalley
16d1cce8ff Drop unusable SELinux APIs.
setSELinuxEnforce is not allowed by policy.
get/setBooleanValue and getBooleanNames are moot since SELinux
policy booleans are forbidden by CTS.

Change-Id: I512953edd1c38828efce698ae8475603775c32e8
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-03-13 14:09:26 -04:00
Lorenzo Colitti
2f196e6c81 Merge "Remove dead code, mostly DataStateTracker." 2015-03-12 07:27:27 +00:00
Fyodor Kupolov
7487657ee9 Extracted a separate class to run dexopt on packages
performDexOptLibsLI and related methods were extracted to PackageDexOptimizer
class. Minor refactoring of PackageManagerService.

This is a non-functional change. It should simplify further work to allow
storing OAT files inside package dir.

(cherry picked from commit eeea67b8c3)

Change-Id: I3494a2da70605362bb6fb4625ffbee1cbe1cd457
2015-03-11 16:03:41 -07:00
Marco Nelissen
926ebb860a Fix context leak
Using an activity context with AudioManager could cause that context
to be held on to longer than desired, for example if the caller
acquired audio focus but never abandoned it. Fix acquire/abandon in
VideoView, and use the application context in AudioManager to mitigate
the issue for other misbehaving code.

Bug: https://code.google.com/p/android/issues/detail?id=152173
Change-Id: I0fb8390207422c784800dda25b1f2c03d4574bcd
2015-03-11 10:00:28 -07:00
Paul Jensen
7fad4eb4b5 Remove dead code, mostly DataStateTracker.
Change-Id: I1433937bffdb29bd42fb1adbfcf0a50ceffac7dd
2015-03-11 10:03:58 -04:00
Andreas Gampe
174a44888e am 7f383873: Merge "Frameworks/base: Pass APK debugability to installd"
* commit '7f383873566024c7121cadae3bbdd2a7c47150bc':
  Frameworks/base: Pass APK debugability to installd
2015-03-10 02:10:22 +00:00
Andreas Gampe
7f38387356 Merge "Frameworks/base: Pass APK debugability to installd" 2015-03-09 22:14:54 +00:00
dcashman
db7fa51ff0 am c7446790: Merge "ZygoteConnection: remove obsolete security checks."
* commit 'c74467902b5a9a7267b6cb8f30b364b8373eac72':
  ZygoteConnection: remove obsolete security checks.
2015-03-09 20:51:33 +00:00
dcashman
fc4c0bf8bc ZygoteConnection: remove obsolete security checks.
SELinux guarantees that only the system_server and permissive domains such as su
are allowed to connect to the zygote socket. Remove obsolete security checks
that were only applicable when other processes could connect.

Bug: 19624279
Change-Id: I1c925d7facf19b3953b5deb85d992415344c4c9f
2015-03-09 12:37:08 -07:00
Andreas Gampe
735600c1e6 Frameworks/base: Pass APK debugability to installd
Change-Id: Id17ec72babe2ee88713a0d274eff86508de30666
2015-03-09 08:57:23 -07:00
Andreas Gampe
5596600697 am 7a4cb563: Merge "Frameworks/base: Remove unnecessary Pattern instance"
* commit '7a4cb563a29f05658760739d3bc2e70bd6342174':
  Frameworks/base: Remove unnecessary Pattern instance
2015-03-07 17:13:16 +00:00
Andreas Gampe
a3d5b2304c am cdc19f3f: Merge "Frameworks/base: Remove unnecessary Pattern instance"
* commit 'cdc19f3f8a20b975e8e70f4b4cce5ce2be811726':
  Frameworks/base: Remove unnecessary Pattern instance
2015-03-07 17:13:09 +00:00
Andreas Gampe
7a4cb563a2 Merge "Frameworks/base: Remove unnecessary Pattern instance" 2015-03-07 01:03:14 +00:00
Andreas Gampe
055678b5fe Frameworks/base: Remove unnecessary Pattern instance
Using a static Pattern in UriMatcher prevents compile-time
initialization.

It is also not efficient, as String.split has a fast path for simple
splits.

Bug: 19542228

Change-Id: Ie9e5bfe6da04c6d05ec10b1426d0cd136ef46ef2
2015-03-07 00:19:01 +00:00
Andreas Gampe
18e99c1288 Frameworks/base: Remove unnecessary Pattern instance
Using a static Pattern in ActivityThread prevents compile-time
initialization of ActivityThread and GestureDetector, which depends
on the former.

It is also not efficient, as String.split has a fast path for simple
splits.

Bug: 19542228

Change-Id: I5bb843c08c81e0d259bb8afafa87a8467bb1730e
2015-03-07 00:18:15 +00:00
Andreas Gampe
9c0ba24f3b am 6695b992: Merge "Frameworks/base: Add removeAll for ArraySet"
* commit '6695b9920d15f8d9a17d6b0c66b863d1c2e38584':
  Frameworks/base: Add removeAll for ArraySet
2015-03-05 17:15:58 +00:00
Andreas Gampe
f9345e93db Frameworks/base: Add removeAll for ArraySet
Add a simple ArraySet.removeAll(ArraySet) method. This avoids two
allocations, a MapCollections helper and an Iterator object, over
the removeAll(Collection) code.

KeySetManagerService heavily calls removeAll during boot (about 9K
times in AOSP). This reduces GC stress and optimizes the removal
(about half the time the removed collection has only one element).
The removal method in KeySetManagerService is also done under a lock,
so that it gates parallelization efforts in PackageManagerService.

Bug: 19498314
Change-Id: Ib0e483adfd09831cd66ab19a820ebf6544a2b66f
2015-03-04 17:14:10 -08:00