Commit Graph

3151 Commits

Author SHA1 Message Date
Narayan Kamath
b12dcfb1b1 Remove org.apache.http.legacy for declared shared lib lists.
We currently unconditionally include this shared library in the
boot classpath, so attempts to compile it will fail resulting in
unnecessary logspam.

Change-Id: Iafe9b2e725e10d939cd39dd4a816a146a6031baf
2015-03-31 08:51:53 +00:00
Fabrice Di Meglio
1c1b47125d Add IntentFilter auto verification
The purpose of this feature is to prompt the Disambiguation dialog
to Users as less as possible.

- add the new "autoVerify" property to the IntentFilter class
- add new APIs to PackageManager:
 verifyIntentFilter(int, int, List<String>),
 getIntentVerificationStatus(String, int),
 updateIntentVerificationStatus(String, int, int),
 getIntentFilterVerifications(String)
for supporting IntentFilter verification
- add support for multi-user
- update PackageManager for IntentFilter verification:
basically when we are installing a new package, ask for verification
of all domains from the IntentFilters that have the "autoVerify" to true.
This means that the PackageManager will send a well defined protected
broadcast (with a new INTENT_FILTER_NEEDS_VERIFICATION action) to
an IntentFilter verifier to do the real job of verification.
We are passing in the broadcast Intent all the necessary data for
doing the verification. The PackageManager will receive as response
the result code of the domain verifications and, if needed, the list
of domains that have failed the verification.
- add a new INTENT_FILTER_VERIFICATION_AGENT permission that needs to
be set by an intent filter verifier to be considered as a trustable
party by the PackageManager.
- add also a new BIND_INTENT_FILTER_VERIFIER permission for securing
the binding between the PackageManager and a service doing the
intent filter verifications.
- add ResolveInfo filterNeedsVerification which is a boolean
to knows if the IntentFilter is of a type that needs a verification
(action VIEW, category BROWABLE, HTTP/HTTPS data URI)
- add new "domain-preferred-apps" / "d" dump command for listing the
prefered Apps for all domains
- add new "intent-filter-verifiers" / "ivf" command for listing the
IntentFilterVerifier used
- introduce the IntentVerificationService which is a basic service
for verifying IntentFilters. This service will send HTTPS requests
to the domain declared in the IntentFilter(s) for doing the
verification. This service has a low priority level so that it
can be replaced by a more sophisticated one if needed. This service
is updating the PackageManager intent verification states thru
the updateIntentVerificationStatus(...) API.
- update MockPackageManager

Change-Id: I0bfed193d0bf1f7c7ac79f6c1b160b7ab93b5fb5
2015-03-30 10:58:35 -07:00
Mike Lockwood
549a8cb66d Merge "Make the MIDI Manager optional, enabled by "android.software.midi" feature" 2015-03-28 16:00:21 +00:00
John Spurlock
0f09c3d0b6 Merge "Fix a few found doc problems." 2015-03-27 21:13:22 +00:00
Mike Lockwood
5781cd5b21 Make the MIDI Manager optional, enabled by "android.software.midi" feature
Change-Id: I76d442ea28beea4b9e2876bfef501d8f61403702
2015-03-27 13:23:41 -07:00
Alan Viverette
92d8b334e4 Merge "Clean up lint warnings in Resources" 2015-03-27 17:46:50 +00:00
Alan Viverette
a8636c9414 Clean up lint warnings in Resources
Change-Id: I28dff6f293c5b6c24fc451f282d11d648042d5dd
2015-03-27 10:44:39 -07:00
Alex Klyubin
545ebdefd2 Merge "Unhide public API about cleartext traffic policy." 2015-03-27 15:23:04 +00:00
Flavio Lerda
0f9d0fa125 Merge "Dump sharedLibraryFiles in a readable way." 2015-03-27 13:00:46 +00:00
Alex Klyubin
7cb000ff56 Unhide public API about cleartext traffic policy.
Bug: 19215516
Change-Id: I5da81a36c2f3d0edcf715a5f1b14b0a56c7abc6d
2015-03-26 11:00:04 -07:00
Zoltan Szatmary-Ban
9c5dfa5c79 Data Usage public API
Added new API consisting of android.app.usage.NetworkUsageManager and
android.app.usage.NetworkUsageStats. Through them data usage on a
network interface can be programmatically queried. Both summary and
details are available.

Bug: 19208876
Change-Id: I0e0c4b37ae23ad1e589d4b0c955b93f28ba4333e
2015-03-25 15:53:38 +00:00
Florian Salbrechter
084da9b14e Fixed wrong documentation for BLUETOOTH_SERVICE.
The documentation was incorrectly stating that getSystemService() would
return a BluetoothAdater for Context.BLUETOOTH_SERVICE. The actual
return type is BluetoothManager.
2015-03-25 11:00:55 +00:00
Flavio Lerda
dcc36bf2a4 Dump sharedLibraryFiles in a readable way.
Currently, we are dumping sharedLibraryFiles using the default
toString() method, which for an array returns a not so useful string.
Instead, use Arrays.toString() to get out something that is more useful.

Change-Id: I717e37ab38ed784a327fad59d63536ae2c56576a
2015-03-25 10:22:05 +00:00
Svet Ganov
3695b8a148 First implementation of the grant/revoke UI
Change-Id: Icdb7c822881552b30850697dba709671bf27baa5
2015-03-24 20:15:43 -07:00
John Spurlock
bc4cf00dc5 Fix a few found doc problems.
Change-Id: I98567f4a0fc96f501c00bf361688e2c55232f78d
2015-03-24 21:51:20 -04:00
Dmitriy Ivanov
6a225edccd Merge "Load libraries directly from apk" 2015-03-24 02:57:10 +00:00
Svet Ganov
95c1adea0c Add install option to grant all runtime permissions.
Change-Id: I72ba67a72025646a3d53611621b0353d3a86677c
2015-03-24 01:53:50 +00:00
Svetoslav
c6d1c345f4 Runtime permissions: per user permission tracking.
Before all permissions were granted at install time at once, so the user
was persented with an all or nothing choice. In the new runtime permissions
model all dangarous permissions (nomal are always granted and signature
one are granted if signatures match) are not granted at install time and
the app can request them as necessary at runtime.

Before, all granted permission to an app were identical for all users as
granting is performed at install time. However, the new runtime model
allows the same app running under two different users to have different
runtime permission grants. This change refactors the permissions book
keeping in the package manager to enable per user permission tracking.

The change also adds the app facing APIs for requesting runtime permissions.

Change-Id: Icbf2fc2ced15c42ca206c335996206bd1a4a4be5
2015-03-23 18:50:35 -07:00
Wale Ogunwale
e7666f9e45 Merge "Default ActivityInfo.resizeable to false for all SDK versions." 2015-03-23 22:00:01 +00:00
Alan Viverette
0ef59ac0e5 Update DatePicker and CalendarView to latest Material spec
Bug: 19431364
Change-Id: If364a051a5208d170495de4182e46b32c7560e08
2015-03-23 13:13:25 -07:00
Dmitriy Ivanov
ff193d642e Load libraries directly from apk
Introduced new 'extractNativeLibs' attribute to manifest/application.
 Setting it to false prevents installer from extracting library from apk.

 The default value for extractNativeLibs is true.

Bug: 8076853
Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
2015-03-21 11:46:11 -07:00
Casey Ho
3daef246bd Merge "Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest." 2015-03-20 21:05:04 +00:00
Wale Ogunwale
abfcc22ddf Default ActivityInfo.resizeable to false for all SDK versions.
Bug: 19347452
Bug: 19865400
Change-Id: I2afbcdb9c876c756b14068efc750093057f0b865
2015-03-20 11:32:20 -07:00
Alex Klyubin
160a253d48 am d71f548f: am 4177b8cb: Merge "Add app-level usesCleartextTraffic manifest attribute."
* commit 'd71f548f4803f0696af7de9a2989673cfd83800f':
  Add app-level usesCleartextTraffic manifest attribute.
2015-03-19 16:43:52 +00:00
Casey Ho
dbf6785c67 Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest.
Change-Id: Ic97a36498628f7f249b6776df455e01aaa995ae4
2015-03-18 20:02:25 -07:00
Alan Viverette
4a357cd2e5 Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
James Cook
f2560e62cf Merge "Improve undo support for text entered with IME" 2015-03-18 21:39:03 +00:00
James Cook
d202668670 Improve undo support for text entered with IME
Use span properties to detect:
* Composing text - don't record undo operations
* Completing a composition - record an insert undo operation
* Canceling a composition - don't record

Save the composition state on parcel/unparcel.

Stop using begin/end batch edit to try to detect when a TextWatcher
is modifying the text. IMEs trigger multiple InputFilter passes in
a single batch edit. Use SpannableStringBuilder to determine when
we're in a TextWatcher callback because it is the authority on that
state.

Fix a bug in undo manager where it doesn't forget undos correctly if
there are more than one in the stack.

Bug: 19332904
Change-Id: Iaa9b0b2a7bf6683302cc85e7616e5d5fcc9fa202
2015-03-18 14:36:41 -07:00
Alan Viverette
dd0d4b7579 Merge "Enable/disable hardware rendering on windows by application tag" 2015-03-18 21:32:19 +00:00
Alan Viverette
9b0ab65ed4 Enable/disable hardware rendering on windows by application tag
Previously, hardware rendering cannot be enabled or disabled
on windows created without a parent activity (e.g. by services)
by setting the <application> tag, "android:hardwareAccelerated"
in AndroidManifest.xml. It's enabled by default in Android L
from the commit, 5e1565ead6.
This patch provides a way of setting hardware rendering for
that case.

Change-Id: I60ee9566e99db39cd661fe6f196f43c3968b311a
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2015-03-18 14:21:04 -07:00
Ed Heyl
07459a3617 Merge "Fix build: Revert "Enable/disable hardware rendering on windows by application tag"" 2015-03-18 20:40:47 +00:00
Ed Heyl
1445469b9e Fix build: Revert "Enable/disable hardware rendering on windows by application tag"
This reverts commit ae114d2eb4.

Change-Id: I5400c9aa121491164e8739892408c377b99f3980
2015-03-18 20:39:37 +00:00
Alan Viverette
78d9de97a6 Merge "Enable/disable hardware rendering on windows by application tag" 2015-03-18 20:01:50 +00:00
Alan Viverette
ae114d2eb4 Enable/disable hardware rendering on windows by application tag
Previously, hardware rendering cannot be enabled or disabled
on windows created without a parent activity (e.g. by services)
by setting the <application> tag, "android:hardwareAccelerated"
in AndroidManifest.xml. It's enabled by default in Android L
from the commit, 5e1565ead6.
This patch provides a way of setting hardware rendering for
that case.

Change-Id: I08ce58a8644970a2a18407e83ad317a72a2dad10
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2015-03-18 12:43:08 -07:00
John Spurlock
a212e6b5b1 Merge "Update package manager documentation." 2015-03-18 19:23:17 +00: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
John Spurlock
38e6425bb4 Update package manager documentation.
Out lists are required to be non null.

Change-Id: I87b586a90f9f221bbea6f6f18135bfcdd65680c2
2015-03-18 12:09:32 -04:00
Christopher Tate
6597e3435f Notification listener backup & restore
We now back up & restore the set of enabled notification listeners.  Post-
restore, a listener that had been enabled on the ancestral device will be
enabled on the current device as soon as it's installed, matching the
user's previous configuration.  After this has happened the enable/disable
state for that app is not "sticky"; disabling it again will work as
expected.

The infrastructure for accomplishing this is general: it can be leveraged
by any ManagedServices derivative.  There's a bit of extra wiring in the
settings provider to support the restore-time information flow as well.
This is because ManagedServices -- like many other parts of the system --
monitors writes to the settings provider and does work in response to new
writes of the elements that it cares about.  Unfortunately this means that
there is no way to use the BackupAgent's restoreFinished() hook to post-
process the restored data: by the time it is run, the ManagedService's
observers have already executed and culled any unknown components from
the description that was just pushed into settings.

As of this patch, the settings provider's restore logic knows that a
particular settings element will require a message to interested observers
about the restore-driven change.  The message is delivered as a broadcast,
and is sent after the new value has been committed to the settings db.
Adding other system ManagedService handling that parallels this will only
require adding a new corresponding entry to the table of individual settings
for which the relevant "this settings element is being restored" broadcast
is sent, found in SettingsHelper.

(It isn't sent for all settings elements because very few settings elements
have semantics that require it; 3rd party code won't be running yet during
platform restore anyway; and sending up to hundreds of broadcasts during
setup & restore is far from ideal.)

Bug 19254153

Change-Id: Ib8268c6cb273862a3ee089d2764f3bff4a299103
2015-03-16 16:24:28 -07:00
Eric Laurent
aff57b7519 Merge "broadcast radio API" 2015-03-16 18:30:23 +00:00
Nicolas Prevot
8458e531bf Merge "Remove the owner userid of cross-profile intent filters." 2015-03-16 11:25:51 +00:00
Eric Laurent
2035ac85f6 broadcast radio API
Initial implementation of system APIs for broadcast
radio framework. Added manager and interfaces to control
a broadcast radio function exposed by the radio HAL.

- RadioManager: contains data structures and definitions as well as
top level API for feature discovery and tuner interface instantiation.
- RadioTuner: interface to control a broadcast radio tuner.
- RadioModule: framework component implementing the RadioTuner interface
and controlling a HW radio module via the radio HAL.
- RadioMetadata: representation of radio meta data (Station name, PTY,
song title, artwork, etc...) communicated by the framework to the client.

Change-Id: Iee42a185c694503e25f0b2dcfa417d88f5e9549b
2015-03-13 15:34:50 -07:00
Dianne Hackborn
a83ce1dd2a More work on collecting assist data.
Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at.  This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session.  This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
2015-03-12 17:07:51 -07: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
Alan Viverette
93795053da Make TypedArray and LayoutInflater exceptions more useful
Include unresolved TypedValue data in TypedArray exceptions, wrap all
LayoutInflater exceptions with the parser position.

Bug: 19658760
Change-Id: I8965bdc4d0c58c082cb7129c3b692a3e5418cfdb
2015-03-09 15:32:50 -07:00
Tor Norbye
1c2bf03d10 Annotate return values with @CheckReturn
Change-Id: Icd8fb6adb591ccd7f35f2336ae716b198abf69c5
2015-03-07 20:49:18 -08:00
Andreas Gampe
3aa2d01752 am 3f74f638: am 55966006: am 7a4cb563: Merge "Frameworks/base: Remove unnecessary Pattern instance"
* commit '3f74f6386a15d09f27dbc81edd8dd2c13e298d73':
  Frameworks/base: Remove unnecessary Pattern instance
2015-03-08 00:17:54 +00: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
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
Tor Norbye
80756e3888 Annotate ARGB integer parameters with @ColorInt
Change-Id: I307f72a382272cf18ddb6b07d9fcb81228568d9a
2015-03-05 16:34:12 -08:00
Nicolas Prevot
4b8d582151 Remove the owner userid of cross-profile intent filters.
The owner user id was used to identify in which user an app had set
a cross-profile intent filter. But it's not really necessary.

BUG:19505190

Change-Id: Iacc49d31c95e34efee1895e5fbe7224277dbc493
2015-03-05 15:28:54 +00:00