Commit Graph

3894 Commits

Author SHA1 Message Date
Selim Gurun
75827b2fb6 Fix build break
Bug: 26874366
Change-Id: Ic7634cb9d823d4f74d2893f4c46a77a5af02a0a1
2016-02-09 10:55:33 -08:00
Selim Gurun
2d291d89f9 Introduce a use32bitAbi flag
Bug: 26874366

On Multiarch apps, it might be necessary to prioritize 32bit Abi ahead
of 64bit ones. The use32bitAbi flag enables this.

This CL also reverts the public api changes in  I2c1fd1d036efe72b28b5fe996416df69a583959f and Ie3ecea6d84e2cb1522e736a21c3a3a24ac62eb27. Previously
the same functionality was provided using a raw abi string that
utilized cpuabioverride flag.

Change-Id: Idce3cbfedd11ef9079ce8a2901e69d30b1cf9ef4
2016-02-09 10:20:21 -08:00
Svet Ganov
354cd3ce22 Multi packages per APK
This change introduces the ability to have multiple packages per
APK. The feature is currently restricted to privileged apps and
updates to such apps.

In essence the manifest can have multiple child package declarations.
A child package can declare everything an Android package can except
some tags or attributes that are not applicable and instead inherited
from the parent when needed. For example, the target SDK of the parent
applies to all children.

A child package can be updated only through the parent package.
A package with multiple child packages is installed, uninstalled
atomically - no partial installs where some child packages are not
installed.

The remaining work is to ensure broadcasts are also sent for child
packages. This will come in a subsequent change.

Sample app:ag/848432

Design doc: https://docs.google.com/document/d/18nFWtJuZchLxrHf5SBbJW03-Ky9Rh_G0-OVB14b6u78

Change-Id: I6fd021d981bf5786290e0c53502724a14c97358c
2016-02-08 15:14:07 -08:00
Jeff Sharkey
e4697136ed Migrate default app data on non-FBE devices.
When a system app requests "forceDeviceEncrypted" they expect their
default app storage to point at a consistent location regardless of
device FBE support.  So when booting upgraded non-FBE devices, we
may need to migrate any data from CE to DE.  Note that on non-FBE
devices these are just semantic locations with identical protection.

This migration *only* works for non-FBE devices; changing
forceDeviceEncrypted flags on an FBE device always requires a full
data wipe.

Bug: 26668510
Change-Id: Ic5dfeaaf2db26c385901a638ca8ec35eb3c52859
2016-02-06 20:45:15 -07:00
Jeff Sharkey
37355a9f5d Tweaks to file:// Uri StrictMode checks.
Whitelist two more legacy intent actions, and don't enforce the
StrictMode checks when resolving intents that might be coming from
legacy apps.  Newer apps would have already been yelled at directly
before getting to the resolver.

Bug: 26976516, 26977622
Change-Id: Ibf72a361ed68c52cfaac16c32ab40e79005a42e7
2016-02-05 16:19:13 -07:00
Makoto Onuki
911db2e19a Merge "Remove com.google.android.syncadapters.contacts from exception list" 2016-02-05 19:51:18 +00:00
Makoto Onuki
e798ba1033 Remove com.google.android.syncadapters.contacts from exception list
Bug 26902400
Bug 26481405

Change-Id: I3b4d0217ee033f727074f68ebe6a1c1461509d04
2016-02-05 11:45:02 -08:00
Roozbeh Pournader
fee4484637 Various LocaleList cleanups
- Remove the LocaleList#getPrimary() API. It had become confusing
  after locale negotiation was completely implemented. For example,
  it could create the confusion that calling getPrimary() on the
  default locale list would provide the default locale, etc.
- Use the adjusted locale list from LocaleList.getAdjustedDefault()
  in Paints created with no locale list provided.
- Change LocaleList#get() to treat out of bound indexes from both
  negative indexes and too large indexes the same way.

Bug: 26984092
Bug: 26193251
Bug: 26834387
Change-Id: I75f77aea6b75e38793ed8477e5e5a4420d5e6d85
2016-02-04 15:44:03 -08:00
Mikhail Naganov
278fb3b359 Make flags related for "external services" public
ServiceInfo.FLAG_EXTERNAL_SERVICE is set when the service is
exported with the new public manifest attribute "android:externalService"

Context.BIND_EXTERNAL_SERVICE is used by clients when they
are binding such service.

Bug: 22084679
Bug: 21643067
Change-Id: Ifd708f90b47a1571cd54c5ec9fc217f0567d5ff4
2016-02-03 16:22:33 -08:00
Andreas Gampe
fe54b11803 Merge "Frameworks/base: Add A/B OTA preopting" 2016-02-02 16:01:11 +00:00
Wale Ogunwale
f70fb29c83 Merge "Allow apps that target less than N SDK to be resizeable." 2016-02-01 23:58:32 +00:00
Selim Gurun
0829fd4b26 Merge "Run 32-bit app in multiArch APK." 2016-02-01 23:40:23 +00:00
Andreas Gampe
a89087542f Frameworks/base: Add A/B OTA preopting
Add an OTA Dexopt service. Refactor package manager service and
package dex optimizer to reuse some code. Add knowledge about
OTA flag to installer.

Bug: 25612095
Change-Id: I7dd6bb468fea44b9d3acf0ac7d7404fb02d0f30a
2016-02-01 15:38:21 -08:00
Tao Bai
c9a0237f5f Run 32-bit app in multiArch APK.
Bug: 26874366

Change-Id: I2c1fd1d036efe72b28b5fe996416df69a583959f
2016-02-01 14:54:37 -08:00
Wale Ogunwale
163828db30 Allow apps that target less than N SDK to be resizeable.
If an app says it is resizeable then make it resizeable
regardless of the SDK it is targetting.

Change-Id: I51a1c5417657c6b15ce035f8d5af202506f4120a
2016-02-01 11:48:19 -08:00
David Brazdil
8486786493 Merge "Add 'package compile' shell command" 2016-02-01 18:44:22 +00:00
David Brazdil
493411ace4 Add 'package compile' shell command
Bug: 26707406
Change-Id: I554969c9f3b3153179370d3d23a88fa7e8693885
2016-02-01 18:32:55 +00:00
Ruben Brunk
33e0a5f7ed Merge "Add feature tag for high-performance VR devices." 2016-02-01 18:20:00 +00:00
Shreyas Basarge
40a11e525c Merge "Updated Javadoc to reflect min period" 2016-02-01 16:07:21 +00:00
Shreyas Basarge
e96c3b7eff Updated Javadoc to reflect min period
Javadoc updated and logging added for
min period and min flex enforcements
in JobScheduler and SyncManager.

Bug: 26874152
Change-Id: Ifdd248b776a1bd04df21b7b9f0ac96bdef0f8bb6
2016-02-01 16:03:36 +00:00
Shreyas Basarge
a491c07f36 Merge "SyncManager on JobScheduler" 2016-02-01 15:32:58 +00:00
Wale Ogunwale
14a79bd12a Merge changes I8d546487,Ib62d357f
* changes:
  Allow resizeableActivity to be specified at the application level
  Renamed manifest attributes initialWidth/Height to defaultWidth/Height
2016-01-31 20:02:45 +00:00
Wale Ogunwale
174d36d87a Merge "Renamed FLAG_ACTIVITY_LAUNCH_TO_SIDE to FLAG_ACTIVITY_LAUNCH_ADJACENT" 2016-01-31 19:57:16 +00:00
Jeff Sharkey
a8b42780c2 Ignore null actions.
Bug: 26862905
Change-Id: I30a21e67b0f60ebca5eaccc843834059e52a6b78
2016-01-30 17:58:09 -07:00
Jeff Sharkey
634dc42c9e Throw when using deprecated file modes.
installd no longer grants o+x to private app data directories for
apps targeting N, so the long-deprecated MODE_WORLD_READABLE and
MODE_WORLD_WRITEABLE flags no longer have any effect, which may lead
to frustrating debugging sessions.

So to help clearly communicate that these flags no longer work, let's
throw when an app targeting N tries using them.

Bug: 26886867
Change-Id: I97dae6182fc3c55639ff37a39c4aae6dd0bed507
2016-01-30 17:48:32 -07:00
Jeff Sharkey
35871f2c2b Offer to migrate databases and SharedPreferences.
Databases and SharedPreferences often involve multiple files under
the hood, so developers wanting to migrate them between different
storage contexts should ask us to make sure all relevant files are
migrated correctly.

This makes a best-effort attempt to recover from battery pulls
during migration, while still trying to alert developers to
conflicting files.

Bug: 26668510, 25860525
Change-Id: I9ffa3e8cb6191dfd4237b9466a081d6d77df3ba0
2016-01-30 17:03:23 -07:00
Wale Ogunwale
6afdf91b17 Allow resizeableActivity to be specified at the application level
Makes it easier for developers to set a state for all their activities
vs. doing it individually.

Bug: 26508215
Change-Id: I8d546487b6461a03f75cce7760522e7af9fc2740
2016-01-30 13:01:33 -08:00
Wale Ogunwale
b12e1099ce Renamed manifest attributes initialWidth/Height to defaultWidth/Height
Per feedback from API council.

Bug: 26508215
Change-Id: Ib62d357f0e6309ad6f6305ba5ac376c5e3ab04e7
2016-01-30 12:24:44 -08:00
Wale Ogunwale
2a25a62739 Renamed FLAG_ACTIVITY_LAUNCH_TO_SIDE to FLAG_ACTIVITY_LAUNCH_ADJACENT
Per feedback from API council.

Bug: 26508215
Change-Id: Id17166fe981587c9c16c382ccbdf0846ed2ae5d6
2016-01-30 11:27:21 -08:00
Jaewan Kim
54fa566ab7 Merge "PIP: Use StatusBarService to handle PIP key" 2016-01-30 01:06:29 +00:00
Shreyas Basarge
8c834c0767 SyncManager on JobScheduler
SyncManager now uses JobScheduler for scheduling
and persistence purposes.

Change-Id: I38c92aedbf4d891ca297644d0b706835aaedfcd6
2016-01-29 22:15:15 +00:00
Wale Ogunwale
b1faf60b89 Use resizeMode integer instead of resizeable boolean.
Changes activity manager and window manager to use resizeMode
as defined by ActivityInfo#resizeMode instead of a boolean.

Bug: 26774816
Change-Id: I8cef46d9fba6bfdd21df7da63ed5d5330ad03d4b
2016-01-29 07:44:33 -08:00
Jaewan Kim
c552b04cb4 PIP: Use StatusBarService to handle PIP key
Bug: 26591829
Change-Id: I7051fab966e2fc0887b2a21ddbf11aff7e16804b
2016-01-29 18:40:47 +09:00
Jeff Sharkey
344744b496 Exposing file:// beyond your app is bad, m'kay?
For several releases now we've told developers that sharing raw files
between apps is a recipe for trouble.  There are at least three major
problems with sending raw files:

-- Apps sending generic intents can't know who is at the other end,
so they may not have access to shared storage locations.  This is
more likely now that runtime permissions require apps to explicitly
ask users for permission.

-- Apps making files in their private storage world-readable has been
deprecated for several releases, and now in N it's fully blocked.  If
we let these intents through, the receiving app would fail to open
the file, when the real blame rests on the sending app.

-- Devices with user profiles can't share raw files when using
cross-profile intent filters, since filesystem access is fully
locked down between users.

The time has finally come to communicate clearly that if you're
sharing content between apps, you need to use content:// Uris.  We
added the simple FileProvider several years ago to give apps a clean
way to migrate with minimal work on their part.

Bug: 26860922, 9069185
Change-Id: I075f627f6a0d6c7fca2c090ca133b9aae9801c64
2016-01-28 19:20:12 -07:00
Jeff Sharkey
c26d59f6ab Fix activity-alias encryption awareness bug.
Since the activity-alias is backed by the same code as the original
activity definition, they should both have an identical encryption
awareness.  This fixes a bug where we accidentally dropped that value.

Bug: 26731340
Change-Id: I6ad615332df7d16542893a49e6997c88fc24334b
2016-01-28 13:30:07 -07:00
Fyodor Kupolov
7b9f2e1d86 Merge "Added SystemApi for getting serial numbers of users" 2016-01-28 18:58:05 +00:00
Fyodor Kupolov
940e8577a1 Added SystemApi for getting serial numbers of users
Also added UserHandle version of queryBroadcastReceiversAsUser.

Bug: 25844894
Change-Id: I78ecbef186e4ced10425ae2899db72c2d91c5792
2016-01-28 10:55:28 -08:00
Jeff Sharkey
ec498e8ebe Merge "Report FBE through a feature string." 2016-01-28 18:20:03 +00:00
Jeff Sharkey
b92b05bb4b Report FBE through a feature string.
Since devices can be converted to enable/disable FBE across a
factory reset, we offer to add the features dynamically depending
on device status.

Bug: 26808417
Change-Id: I905140ba500a5e69756b547f2b1d6167b9a37dc6
2016-01-28 11:10:03 -07:00
Ryan Lothian
0a4b4cdf1c Merge "Update SharedPreferences javadoc" 2016-01-28 17:48:17 +00:00
Wale Ogunwale
d26176f360 Support different multi-window compatibility modes
- Change idea of activity resizablility from true or false to
unresizeable, cropped_windows, resizeable, and resizeable_and_pipable
- Default pre-N apps to cropped_windows mode and N or greater apps to
unresizeable or resizeable depending on the value of resizeableActivity
attribute.
- Mark legacy apps that specify fix orientation or immersive only mode
as unresizeable.
- Change to hide docked stack when unsupported app is the focus app.

Bug: 26774816
Change-Id: Ie473d36ca95f08e9332ab10fd2f0ec17ef50a02f
2016-01-28 08:33:46 -08:00
Ryan Lothian
868ed48c13 Update SharedPreferences javadoc
Remove 6-year-old promise to add multi-process support
for SharedPreferences: our docs elsewhere suggest using
a ContentProvider for multi-process preferences instead.

Change-Id: Ic44550ce46fe62ed2c4ab40b6fa7f7090d5b1d7b
2016-01-28 11:19:29 +00:00
Tenghui Zhu
de3dbb463c Merge "Gradient for VectorDrawable's fill and stroke" 2016-01-28 03:41:15 +00:00
Suprabh Shukla
5fc9b8b86b Merge "Added a constant to be used as an Intent extra" 2016-01-28 02:32:34 +00:00
Suprabh Shukla
74a2fe4f03 Added a constant to be used as an Intent extra
Added a constant which can be specified to skip the uninstallation
confirmation dialog. Useful in cases where we want to show a different
warning message to the user before starting the UninstallerActivity

Change-Id: Ia87184a9ad715b628118feb447388625b8bf7f1c
2016-01-27 17:51:40 -08:00
Peng Xu
a35b5539a9 Dynamic Sensor Discovery Implementation
Defined the dynamic sensor meta data type and UUID of sensor, as well
as the broadcast intent that is related to dynamic sensor status
change.

Modify SensorManager, SystemSensorManager and the JNI layer to support
dynamic sensor discovery.

Added SensorNotificationService to notify apps that sensor connected
or disconnected via broadcast.

Change-Id: I28adfb005357d7e3983d65117d6865830c75027d
2016-01-27 16:37:22 -08:00
Teng-Hui Zhu
dbee9bb342 Gradient for VectorDrawable's fill and stroke
Add ComplexColor interface for both GradientColor and ColorStateList.
Set up constant state, factory, theme attrs for GradientColor, while
refactoring the ColorStateList's similar code. (Functionality in CSL should
be the same).

Support themeing in both the root and item level in GradientColor.
For example, both startColor in <gradient> tag or color in <item> tag can
have theme color.
Add tests for both simple and complex cases with themeing etc.

Hook up the native VectorDrawable implementation using 2 extra JNI calls for
simplicity. Such calls only happen at inflate and applyTheme call.

b/22564318

Change-Id: Ibdc564ddb4a7ee0133c6141c4784782f0c93ce0e
2016-01-27 16:32:42 -08:00
Felipe Leme
8b0b0e3b92 Merge "Minor improvements on parseCommandArgs," 2016-01-27 23:21:14 +00:00
Ruben Brunk
31d80ea181 Add feature tag for high-performance VR devices.
Bug: 26667978
Change-Id: I4adeaebdf4cb77eb8ba889bd25f678d873c493cd
2016-01-27 12:52:40 -08:00
Arunesh Mishra
a772e5fc06 SoundTrigger API improvements.
This CL implements the SoundTrigger API improvements as given in b/22860713. Only the java-level
parts are implemented in this CL.

Key changes include:

* Addition of a SoundTriggerManager/SoundTriggerDetector system API to manage
  the sound-trigger based sound models.
* Addition of a SoundTriggerService service that manages all sound models
  including voice (keyphrase) and sound-trigger based models.
* Includes logic to write sound-trigger based models to the database.
* VoiceInteractionManager service now uses SoundTriggerService instead of
  SoundTriggerHelper.

Bug: 22860713
Change-Id: I7b5c0ed80702527c4460372efeb5e542d3693a69
2016-01-27 12:49:20 -08:00