Commit Graph

2797 Commits

Author SHA1 Message Date
Nancy Chen
e4b1d57dfd Merge "API review PhoneManager -> TelecommManager. Rename methods (6/6)" into lmp-dev 2014-08-25 22:24:09 +00:00
Adam Lesinski
6b2416492e Merge "PM: Load all splits when parsing an app manifest" into lmp-dev 2014-08-25 21:41:22 +00:00
Nancy Chen
0eb1e402c7 API review PhoneManager -> TelecommManager. Rename methods (6/6)
PhoneManager
- handlePinMMI docs should explain what a Pin is and what MMI is
- rename isInAPhoneCall to isInCall
- rename showCallScreen to showInCallScreen
- merge this class into TelecommManager, we don't need both

Bug: 16960458

Change-Id: I7d573e27ed093f2ddb7849703cc62f9916835393
2014-08-25 10:50:44 -07:00
Adam Lesinski
3bcbd906bc PM: Load all splits when parsing an app manifest
Previously the base APK would be considered without
any splits loaded into the same AssetManager. This would
prevent splits from overriding attributes in the
AndroidManifest.xml, such as enabled state based on
version, etc.

This CL loads all APKs in the cluster into a common AssetManager
from which the base AndroidManifest.xml is parsed.

Bug:17006358
Change-Id: Ib88096c49d0c4f743b7e6ba0921251459bee107c
2014-08-22 17:13:00 -07:00
Jeff Sharkey
941a8ba1a6 Installing splits into ASECs!
Sessions can now zero-copy data directly into pre-allocated ASEC
containers.  Then at commit time, we compute the total size of the
final app, including any inherited APKs and unpacked libraries, and
resize the container in one step.

This supports both brand new ASEC installs and inheriting from
existing ASEC installs.  To keep things simple, it currently requires
copying any inherited ASEC contents, but this could be optimized in
the future.

Expose new vold resize command, and allow read-write mounting of ASEC
containers.  Move native library extraction into the installer flow,
since it needs to happen before ASEC is sealed.  Move multiArch flag
into NativeLibraryHelper, instead of making everyone pass it
around.  Migrate size calculation to shared location.

Separate "other" package name in public API, provide a path to a
storage device when relevant, and add more docs.

Bug: 16514385
Change-Id: I06c6ce588d312ee7e64cce02733895d640b88456
2014-08-22 16:25:04 -07:00
Adam Lesinski
ebc3e4cbf1 Report the right resource version in am get-config
Change-Id: I79ed3db45d91d8ec7e6f67608533ce3adf22ab27
2014-08-21 12:21:45 -07:00
Jeff Sharkey
ed118e1e9f Merge "More progress towards split APKs in ASECs." into lmp-dev 2014-08-19 02:43:23 +00:00
Jeff Sharkey
bb7b7bea19 More progress towards split APKs in ASECs.
Teach DefaultContainerService to install split APKs, which will be
needed when moving to/from ASECs.  Also support forward locking for
testing purposes, even though its deprecated.

Move native library unpacking code to NativeLibraryHelper location
where it can be shared by both DCS and PMS.  Also update footprint
calculation logic to mirror the later unpack codepaths.

Immediately persist sealed sessions.  When resolving install
locations, prefer location of any existing install of that
package.  Lightweight parse requesting certificates now always
verifies that all contents are signed correctly.

Bug: 16514385
Change-Id: Ida1c4eb0f95b065104dd971e19126d4085ebf1f0
2014-08-20 12:47:27 -07:00
Adam Lesinski
54130de7d2 Fix crash when launching Activities in 'android' package
The LoadedApk for the 'android' package doesn't have a resource
directory set. This is fine since the AssetManager loads the
'android' package's resources by default.

This is a regression caused by https://googleplex-android-review.googlesource.com/#/c/525840/

Bug:17104110
Change-Id: I8a2158a75b4ff0e941837c11a2cb77a7aad09270
2014-08-20 17:58:10 +00:00
Amith Yamasani
d1d7c022c6 Rename restrictions API class and method
AbstractRestrictionsProvider -> android.service.restrictions.RestrictionsReceiver
requestPermission->onRequestPermission

Bug: 17006805
Change-Id: I03b1626d6abcd2ad739a55b60b54fdbf9810ceca
2014-08-19 17:03:41 -07:00
Nicolas Prevot
ec4bb45a8c When notify uri changes, changing the way we retrieve the userId.
Changing from UserHandle.getCallingUserId() to UserHandle.myUserId().
This makes the DocumentProvider work across users.

BUG: 16126891

Change-Id: I8ede64f2087894bb85eff5286803cdebd57e7137
2014-08-19 17:09:09 +01:00
Kenny Guy
545de86fca Merge "First part of renaming methods in LauncherApps." into lmp-dev 2014-08-16 04:29:45 +00:00
Jon Miranda
611f8f17f3 Merge "Exposes style and theme data, adds developer option." into lmp-dev 2014-08-18 21:31:41 +00:00
Jon Miranda
836c0a8b94 Exposes style and theme data, adds developer option.
Adds support for a String[] return type in ViewDebug; and in addition to that,
the hasAdjacentMapping method can use the String array as means to map a key to
its value.

Adds DEBUG_VIEW_ATTRIBUTES to Settings so that the heavy per-view
computations only affect those who opt in. This setting is used in
CoreSettingsObserver to avoid impacting start time.

Change-Id: I8f507e4e5361414c30d247e8d9815205feb5e91f
2014-08-18 18:32:53 -07:00
Dianne Hackborn
57137289a2 Merge "Fix issue #17082301: replacePreferredActivity is ignoring userId" into lmp-dev 2014-08-16 03:56:00 +00:00
Dianne Hackborn
f2ac276127 Fix issue #17082301: replacePreferredActivity is ignoring userId
It was being given the argument and just...  ignoring it.

But the bulk of this change is to make replacePreferredActivity
better about replacing -- it now detects if the request will not
make a change and, in that case, just do nothing.

The reason for this?

It turns out that each time you install an app, the telephony
system is calling this function over 20 times to set the default
SMS app.  This is almost always doing nothing, but before this
change it means we would re-write packages.xml over 20 times...!

There are definitely more improvements that can be made here (delaying
write of packages.xml to allow them to batch together, reducing
the amount of calls being made), but until then this is a big
improvement.

Change-Id: I02c4235b8ecd5c13ef53e65d13c7dc2223719cec
2014-08-16 19:34:13 -07:00
Jeff Sharkey
742e790294 Progress towards staging ASECs.
Move location selection logic into shared PackageHelper location,
and share it between DCS and PackageInstaller.  Fix bugs related to
installed footprint calculation; always count unpacked native libs.

Have PMS do its own threshold checking, since it's fine to stat
devices.  PMS only ever deleted staging ASECs, so move that logic
into installer and nuke unclaimed staging ASECs.  Allocate legacy
ASEC names using PackageInstaller to make sure they don't conflict
with sessions.

Start wiring up session to allocate ASEC and pass through staged
container for installation.

Fix bug to actually delete invalid cluster-style installs.

Bug: 16514385
Change-Id: I325e0c4422fc128398c921ba45fd73ecf05fc2a9
2014-08-18 15:52:24 -07:00
Nicolas Prévot
2e365c805a Merge "Revert "Adding the requiredForProfile flag."" into lmp-dev 2014-08-16 04:29:45 +00:00
Nicolas Prévot
6d24849387 Revert "Adding the requiredForProfile flag."
This reverts commit 531270a4a1.

BUG: 17102702

Change-Id: Iec5d047dc74bd4899662ede82c48fc024238427c
2014-08-18 12:51:11 +01:00
Alan Viverette
34a14f967a Better handling of unresolved theme attributes
Also adds a (very obviously wrong) default color to RippleDrawable

Change-Id: I6d29b371f4e59accbebf25eb059b1f372b9184b0
2014-08-15 17:15:39 -07:00
Adam Lesinski
91306bccf1 Merge "Add FeatureGroup to PackageInfo" into lmp-dev 2014-08-15 18:56:10 +00:00
Adam Lesinski
d3edfde51b Add FeatureGroup to PackageInfo
FeatureGroups replace top-level FeatureInfo objects.
FeatureGroups inherit top-level FeatureInfos but override
them if the feature names are the same.

Bug:16822121

Change-Id: I80b2cb778a0fbcb4521efce986fba641e0914290
2014-08-15 15:53:35 -07:00
Jeff Sharkey
a0907436c0 PackageInstaller API refactoring.
Switch to using IntentSender for results to give installers easier
lifecycle management.  Move param and info objects to inner classes.

Bug: 17008440
Change-Id: I944cfc580325ccc07acf22e0c681a5542d6abc43
2014-08-15 15:57:02 -07:00
Kenny Guy
f939dbaf76 First part of renaming methods in LauncherApps.
Added new versions of the APIs that need
renaming.

Bug: 17008230
Change-Id: Ic74d21115dd250082f6dbc45d1301635cc176cfc
2014-08-15 16:35:28 +01:00
Jeff Sharkey
e9b78fdbbe Fix javadoc on PROTECTION_FLAG_APPOP.
Change-Id: I36e339ac2c6e6842441fd2572b0b8cda24bd34ca
2014-08-14 16:01:37 +00:00
Jim Miller
4d64746d6a Revert "Add new intent to prompt user for their device credential."
Move API to KeyguardManager.

Fixes bug 17006280

This reverts commit 2e7beadedeb7d41d8c2d1cc62956bdd9f5081d26.

Change-Id: I7b58bb4d9db828028c1021f17b01745c5ec2161e

Conflicts:
	core/java/android/content/Intent.java
2014-08-15 00:35:50 +00:00
Jeff Sharkey
9f991a2f3e Fix javadoc attr reference.
Change-Id: I330ba0cac66b4515388287c0ec4856e3ce6c93cb
2014-08-13 18:38:55 +00:00
Dianne Hackborn
3c9ad6ebd8 Merge "Fix some IntentFilter docs." into lmp-dev 2014-08-12 23:14:35 +00:00
Dianne Hackborn
dc894046be Fix some IntentFilter docs.
Change-Id: I1dc6feb41bf275583d8b25ed5ca98d2b1432c752
2014-08-12 18:59:28 -07:00
Narayan Kamath
4903f64ba2 Persist the cpuAbiOverride setting.
If an app is installed with an ABI override (adb install -r --abi)
we should remember this so that we don't revert to the scan derived
ABI on the next reboot.

bug: 16476618

Change-Id: I6085bc0099eb613dd9d3b07113c7c13859780697
2014-08-13 12:41:19 +01:00
Jean-Michel Trivi
37d7804627 HDMI plug intent and associated information
Read HDMI device information from audio ports and add it as
 extras in the connection intent.
Document the new extras in the connection intent.
Make Intent.ACTION_HDMI_AUDIO_PLUG public.

Bug 10549017

Change-Id: I6236b5363f00c433e443195fae8c43af2fc834f7
2014-08-12 17:16:30 +00:00
Amith Yamasani
a6f4d58b90 Allow singleton providers to accept connections from other users
This is required for singleton providers like sms log.

Change-Id: Icb18a764c27dc1b43f8b8bcc24c21c91274995fd
2014-08-08 16:50:42 -07:00
Nicolas Prevot
d18a1da18d Merge "Validate that the authority of incoming uris matches." into lmp-dev 2014-08-07 18:53:12 +00:00
Nicolas Prevot
f300babd25 Validate that the authority of incoming uris matches.
BUG: 16864837

Change-Id: I2d4473985777b9525b101c1b02ad2395342b9722
2014-08-08 18:27:00 +01:00
Nicolas Prevot
c3093eb86b Merge "Making getProviderMimeType work across users." into lmp-dev 2014-08-07 18:39:40 +00:00
Nicolas Prevot
1dddc7fc79 Making getProviderMimeType work across users.
For apps with cross-user uri grants, but without INTERACT_ACROSS_USERS.

BUG: 16128346

Change-Id: I0136cd274eaf457804d196c09f746f66c1fe599f
2014-08-08 15:26:23 +01:00
Jeff Sharkey
6c0b9da65e Handle null IPackageDeleteObserver.
Bug: 16862614
Change-Id: I0c197a994b89d49123027f24fe46827c2b994ab6
2014-08-08 05:08:58 +00:00
Jeff Sharkey
f060095423 Logic to confirm uninstalls.
Prompt user for confirmation when caller doesn't have DELETE_PACKAGES
permission.  Also extend uninstall events to return failure codes.

Bug: 16515814
Change-Id: I15b52190ff02dbeaaf038b92364264f64c57ba89
2014-08-08 00:45:20 +00:00
Alan Viverette
b1e1dbfb36 Update disabled states to be less opaque
Also adds Resources method for retrieving floating-point values.

BUG: 16374059
Change-Id: I68c6a40cbe5badfad624548b9abf2d657dbc2019
2014-08-08 00:18:23 +00:00
Jeff Sharkey
7328a1b39b Logic to confirm permissions on install sessions.
When an app without INSTALL permission attempts to commit a session,
we involve user to confirm permissions.  We currently point at the
base APK, which defines all permissions for an app, handling the case
where a session may only be adding splits.

Add failure codes to represent rejection.  Fix bug by ignoring stages
during initial boot scan.

Bug: 16515814
Change-Id: I702bb72445216817bcc62b79c83980c1c2bb0120
2014-08-07 22:40:38 +00:00
Christopher Tate
d5cf722ae6 Reify the transport lookup/selection API
Introduce a stable BackupTransport interface class for transport
implementations to derive from.

Make the interface for viewing/selecting the active backup transport
part of the stable API.

Make restore-related classes (RestoreSession, RestoreSet) stable API.

Express backup manager APIs needed for transport operation as
@SystemApi methods in BackupManager.

Bug 16661321

Change-Id: I423b87ae8f45c1b77831d4f8ffd97715484c2d2b
2014-08-07 19:43:22 +00:00
Dianne Hackborn
0068d3dcf1 Fix issue @16555033: Battery history overflowing too much
- No longer track process starts/stops normally.
- Increase buffer size to 256KB.
- Buffer size increase requires reworking how battery stats
  are retrieved, since it is going to be hitting IPC limits.
- Also, store the last full stats after a reset, to be reported
  at the next checkin.
- Also, discharge and charge times are tagged with the screen
  and battery save state during that time.

Change-Id: Ie108ac9b626846108a9bb858101ac2b93276ac16
2014-08-07 12:19:39 -07:00
Kenny Guy
65810072d6 Remove LauncherApps method left for compat.
Method was left while updating unbundled apps
which have now been updated.

Bug: 16864685
Change-Id: I687cb23a1b60b88eeb988f3cf2604dc24b739121
2014-08-07 16:09:10 +00:00
Jeff Sharkey
fbd0e9fa37 Surface user action events when un/installing.
This will be used shortly to connect up with permissions
confirmation UI.

Bug: 16515814
Change-Id: If28cecc28549900d960ac107a1fba0b10ce5bd7b
2014-08-07 00:23:54 +00:00
Svetoslav
c71c42fdb2 Polish of the app widgets cross-profiles feature.
1. Added API for badging an arbitrary drawable at a given location.

2. Updated the icon and previewImage deprecation as they are no longer
   returning a badged drawable. The methods to load the icon and the
   preview are now just making it easier for a developer to get the
   drawables.

3. Fixed a bug in AppWidgetServiceImpl leading to a crash when a user
   is removed.

4. Fixed a bug in AppWidgetHost which was unnecessarily caching its
   package name and having code paths where the cached value was not
   populated when calling into the system.

bug:14991269

Change-Id: I50d011a6597d88814715d5ec04ee67815e8ce0bd
2014-08-07 00:12:27 +00:00
Alexandra Gherghina
e41ce995a0 Add hidden API for removing cross-profile package filters
Bug: 16646591
Change-Id: Iaf6837fe4390ac1018c49df366ea434776ed7244
2014-08-06 14:52:50 +00:00
Amith Yamasani
f17e498fea Merge "Allow phone UID to export singleton providers" into lmp-dev 2014-08-05 00:19:02 +00:00
Amith Yamasani
41c1ded7f0 Allow phone UID to export singleton providers
Also add a user variant of replacePreferredActivity for use
by SmsApplication.

Map user restrictions for SMS/MMS to AppOps perms.

Bug: 16681533
Change-Id: I3dfed5fc754e33bb51c6f571851653a7c2770e46
2014-08-05 14:37:27 -07:00
Svetoslav
976e8bd201 Allow adding widgets from user profiles.
The goal of this change is to enable support for appwidget from
user profiles to the user main profile. A user profile is a user
which is associated as a child of the main user profile. For example,
a user may have a personal (parent) and corporate (child) profile.
The device policy should be able to control whether adding a widget
from a child profile and given packages is allowed. This change
assumes that all packages from managed profiles are white listed.
Another change will add the device policy changes.

Change-Id: I267260b55d74c48b112a29979a9f59eef7a8194e
2014-08-05 20:57:20 +00:00
Jeff Sharkey
f174c6e6de Stronger constraints around install session IDs.
Generate positive, non-zero session IDs, and don't recycle them
within a given boot.  Guard against ID starvation by crazy apps.

Bug: 16792837
Change-Id: I6035afe4d942d358b5ca12b4f818c55885b74aba
2014-08-05 17:46:05 +00:00