Commit Graph

1939 Commits

Author SHA1 Message Date
Jeff Sharkey
37cf9907d2 Merge "Installing splits into ASECs!" into lmp-dev 2014-08-24 18:45:55 +00: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
Jeff Brown
7d82751530 Hide PowerManager methods that third-party apps can't use.
Change-Id: I9c4dbdef913f68939eb29f2c250c5fe3afc67399
2014-08-21 22:43:25 -07:00
Jeff Brown
0a57112354 Poke interactive hint from userActivity and add @SystemApi.
Previously we only poked the interactive hint for input events that
were dispatched through the regular input system.  However, when
using a car dock in projection mode input events are directly
delivered to apps by other system components, bypassing user activity.
So now we poke the interactive hint on all user activity.

Added an @SystemApi version of userActivity.

Added a new signature|system permission called USER_ACTIVITY
to allow system apps to poke userActivity.  For now it seems
prudent to keep DEVICE_POWER signature only.

Bug: 17043684
Change-Id: Ia84bd03083065b8938a9853c08901fbf71b2e56b
2014-08-21 22:36:45 -07:00
Jeff Brown
72671fbb20 Require DEVICE_POWER permission for DOZE_WAKE_LOCK.
This wake lock is only intended to be used internally.

Change-Id: I8d109c492605673616cf7f4f31f082a42fb1d912
2014-08-21 22:20:55 -07:00
Jeff Brown
a71f03c481 Unhide the proximity sensor wakelock.
Bug: 5354313
Change-Id: I59c6bfcd8ff2cebe264f69c49032737a45326373
2014-08-21 22:20:48 -07:00
Jeff Sharkey
8e28c9c315 Merge "Guard against EOF when reading in FileBridge." into lmp-dev 2014-08-22 00:58:02 +00:00
Jeff Sharkey
5f1ed727e2 Guard against EOF when reading in FileBridge.
Bug: 17183379
Change-Id: I8856fc149915281093f83f46bad64f211d134322
2014-08-21 17:54:29 -07:00
Julia Reynolds
2cb384f425 Prevent profile owners from setting certain user restrictions.
Bug: 16351901
Bug: 16701492
Change-Id: Ie866bc24d2d7cc15f86c5b50062a730e099612a1
2014-08-20 16:06:29 -04:00
Dianne Hackborn
249a7fdf44 Merge "Temporary: raise overflow limit, print all wake locks." into lmp-dev 2014-08-16 04:32:18 +00:00
Dianne Hackborn
acc4a12074 Temporary: raise overflow limit, print all wake locks.
Change-Id: I02baa775b8e0659bd9cd4547b8671730f056cb86
2014-08-18 16:33:44 -07:00
Sunny Goyal
681bf60ce2 Fixing bounds check.
Change-Id: Ie17b173ef88288076a5cbfdc741b8e105dcda03e
2014-08-18 11:14:42 -07:00
Dianne Hackborn
89e4ae2f50 Merge "Work on issue #16629489: Google (Play?) Services eating through battery" into lmp-dev 2014-08-16 03:56:00 +00:00
Dianne Hackborn
d953c53d3b Work on issue #16629489: Google (Play?) Services eating through battery
There is a bug in how we deal with name overflows combined with resetting
the battery stats data.  If we do a reset while a wakelock is being
actively held that has been put into the overflow bucket, then we can
end up reducing the number of known wake locks in the list so when after
that it is released we try to release it under its real name rather than
the overflow name.

This means we need to keep track of which wake locks have been placed
in the overflow bucket while they are actively being used, so we can be
sure to properly handle it as part of that bucket until it is eventually
released.

This makes things...  somewhat more complicated.  So now we have a class
to take care of all these details, and also use it for other places where
we have the same overflow semantics sync and job stats.

Also fix potential deadlock -- BatteryStatsHelper needs to call on to
ConnectivityManager to find out of there is telepohny, however we use
that class when doing a dump while the battery stats lock is held.  To
fix this, we check the connectivity state up in the battery stats service
before acquiring the lock and propagate that information through to the
dump code.

Change-Id: Ib452206af5c36f4b0f03cc94d2845d36613d1ba5
2014-08-17 12:39:36 -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
Jeff Brown
3edf5272fb Add trace tag for power management.
Instrumented the basic power manager state transitions,
calling into the Power HAL, setting the display power mode,
and setting the backlight.

Bug: 17004602
Change-Id: I4e362162ddfd7292a7eea8b5d029ce3f6593c4a9
2014-08-16 01:21:41 +00:00
Amith Yamasani
d97a0e7281 Merge "Copy certain settings to the managed profile" into lmp-dev 2014-08-15 19:14:43 +00:00
Amith Yamasani
4f7e2e334e Copy certain settings to the managed profile
All reads of those specific settings will go to the primary user.
Inserts to primary also go to managed profiles in order to notify
any observers.

This enables Location settings to be shared by both profiles.
Also some other settings related to IME and Accessibility since
those services are shared across the profiles.

Bug: 16457210
Change-Id: Ib8fd697b5c78027fcbaf245d82dda5e6d6aab4f0
2014-08-15 13:42:21 -07:00
Julia Reynolds
d438deffad Merge "Apply lockdowns when user restrictions are set." into lmp-dev 2014-08-15 19:03:20 +00:00
Julia Reynolds
3d9eb78fe9 Apply lockdowns when user restrictions are set.
Previously DMAgent would apply these lockdowns before/
after setting the matching user restrictions.

Bug: 16701642
Bug: 16945830
Bug: 16944983
Change-Id: Ib4f7145055687f12408d6ccacd8e6380406a32b2
2014-08-15 16:16:38 -04:00
Doug Zongker
f0433e50c7 Merge "@hide RECOVERY permission" into lmp-dev 2014-08-12 23:14:35 +00:00
Jeff Brown
c12035cd40 Log who is calling goToSleep().
Change-Id: Ibae61c90ee115735835e878bb3bf79eedaa0ae44
2014-08-14 01:56:48 +00:00
Dianne Hackborn
9c3e74f1f7 Fix issue #16794553: Duplicate ArrayMap entries in Bundle...
...can lead to launching of un-exported activities

We now validate the array map after unparcelling to make sure there
are no duplicate keys.

And to make up for the performance overhead this introduces, I switched
the parcelling/unparcelling code to write keys as explicit string
objects rather than generic values.  There was no reason to use generic
values since the write method itself only accepts an array map with
String keys.

Change-Id: I57bda9eb79ceaaa9c1b94ad49d9e462b52102149
2014-08-13 17:24:45 -07:00
Amith Yamasani
95ab784944 Decouple user limit from guest creation
Allow Guest to be created even if there are N users.
Allow N users to be created even if there are N-1 users
   and a Guest.
Limit number of guests and managed profiles that can
be added.

Added unit tests.

Bug: 15934700
Change-Id: I1a8f0fa38a91d71ef7b2980e05c974244dfc337a
2014-08-13 20:09:20 +00:00
Doug Zongker
183415e521 @hide RECOVERY permission
Bug: 16959027
Change-Id: I99fbdf24d5e8bce4beb32fa872e0caa6bfdbe1e9
2014-08-12 10:20:00 -07:00
Dianne Hackborn
cd0e335be3 Fix issues #16655104 and #16875776 in battery stats.
Issue #16655104: Android system used 21% of battery

We weren't clearing the current process state when we now retain
process objects across resets.

Issue #16875776: abnormal outliers in screen-off battery life in go/batterystats

The checkin data since charged was using the since unplugged data
for the amount of drain with the screen on/off.

Also added a new version tag in the checkin output containing
the platform build number and internal version format number, to
start moving away from the wasteful version code on every line.

And fixed a bug in figuring out when things have changed over
discharge levels.

Change-Id: I89b89513a748016aacc848f14bbbc8b2400d92ca
2014-08-07 22:34:27 -07:00
Kenny Guy
c08cb0ed7a Revert "Revert "Remove String version of getBadgedLabel""
This reverts commit 82020f109d78af889dfc5e86ede04c54fb6f1de2.

Bug: 16484455
Change-Id: I601edbb705cacd29bf30f90c8666c5f516796ebb
2014-08-07 21:11:15 +00:00
Christopher Tate
cbd7a6ecbb Introduce system API for distinguishing the owner user
Support services that special case the owner but are instantiated
per-user, and so need to be able to distinguish.

Bug 16661321

Change-Id: I7ff5168c91e39821317fdf5cfaba34e90d30de95
2014-08-07 19:43:17 +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
9962f335a1 Revert "Remove String version of getBadgedLabel"
This reverts commit ed0096c14ae1b17845bc9bb8fbb1cdc47adfdd68.

Change-Id: If026db7e804be81aaa02cfd2a4e1a0a03ee020f1
2014-08-07 16:48:06 +00:00
Kenny Guy
4a4f275f24 Remove String version of getBadgedLabel
It was left to allow unbundled apps time to update.

Bug: 16484455
Change-Id: Ibae2576ac7fc88000ec81c669e66536aaa2e3e79
2014-08-07 11:28:48 +00:00
Paul Jensen
6ac5db5777 Merge "Revert DNS cache flush command deletion from "Cleanup: Delete dead code."" into lmp-dev 2014-08-05 00:19:02 +00:00
Paul Jensen
b69a3a8eaa Revert DNS cache flush command deletion from "Cleanup: Delete dead code."
This reverts part of commit 7a161c535104555890fa78b99faf1f414fc03e85.
The DNS cache flushing code needs to be called when routes change.

Change-Id: I20d39eabfa088deeeeeff0c3292b1910fd948b0d
bug:16549455
2014-08-06 15:34:26 -04: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
John Spurlock
1bb480a3a4 Battery saver: new policy changes + SystemUI tweaks.
- Service policy changes: allow the user to turn off (snooze)
   saver mode below the auto-trigger level.  Plugging in the
   device always exits saver mode.
 - Default trigger level is now 0 (never) instead of 15.
 - SystemUI now also listens to a new POWER_SAVE_MODE_CHANGING,
   since waiting for _CHANGED can take seconds.
 - Move shared feature description text into the framework so it
   can be shared.
 - Tweak dialog title + action strings.
 - Remove trigger-level from SystemUI, it no longer needs it.
 - Add the ability to turn off saver mode directly from the
   notification.
 - Migrate saver confirmation dialog to common system UI dialog
   helper, and add a few convenience methods.
 - Fix bug where the status bar area would be orange over the keyguard
   in SHADE_LOCKED mode.

Bug:16214395
Change-Id: I3d1ded1eec9e63e7d97469486f6a320e1bebbccd
2014-08-02 17:12:43 -04:00
Jeff Sharkey
ceb2adca49 Merge "Persist install sessions, more lifecycle." into lmp-dev 2014-07-25 23:00:08 +00:00
Jeff Sharkey
1cb2d0d4bb Persist install sessions, more lifecycle.
To resume install sessions across device boots, persist session
details and read at boot.  Drop sessions older than 3 days, since
they're probably buggy installers.

Add session callback lifecycle around open/close to give home apps
details about active installs.  Also give them a well-known intent
to show session details.

Extend Session to list staged APKs and open them read-only, giving
installers a mechanism to verify delivered bits, for example using
MessageDigest, before committing.

Switch to generating random session IDs instead of sequential.

Defensively resize app icons if too large.  Reject runaway
installers when they have too many active sessions.

Bug: 16514389
Change-Id: I66c2266cb82fc72b1eb980a615566773f4290498
2014-07-31 15:17:03 -07:00
Amith Yamasani
8616af1a4d Setup correct initial guest restrictions
Disable SMS by default, in addition to any other the primary
user may have set.

Bug: 16474761
Change-Id: I67b510ac72c2adfcafd95fb34e50ab5d8194090a
2014-07-31 14:16:04 -07:00
Julia Reynolds
12451a39f4 Merge "API council - DISALLOW_APPS_CONTROL -- need better documentation." into lmp-dev 2014-07-25 23:01:28 +00:00
Julia Reynolds
c617f81545 API council - DISALLOW_APPS_CONTROL -- need better documentation.
Bug: 16401636
Change-Id: I168033eaabdb953d8e73f63792a7e729eb9eeff6
2014-07-29 14:01:30 +00:00
Torne (Richard Coles)
ff701a6a65 Parse system properties that are lists correctly.
String.split() returns a one-element array of the empty string if the
input is the empty string, not a zero-element array. Introduce a
getStringList function to handle this consistently in the cases where
system properties are parsed as comma separated lists.

The main result is that SUPPORTED_64_BIT_ABIS will now correctly be
empty on a 32-bit only device.

Change-Id: I6f74b48d0a6ced3cd6d49c05aad6a4b7e0b074d2
2014-07-30 12:14:40 +01:00
Amith Yamasani
bf3a946548 Set profile owner via an intent
priv apps can request to become a profile owner after setup has
completed. This will pop up a consent dialog (in Settings).

Also, clean up profile owner concept to be a component name.

Change-Id: I5e8532866e8018f61836c4e84fbbadb6150218ae
2014-07-29 23:43:32 +00:00
Sreeram Ramachandran
42065ac64c Prohibit address families by default unless a VPN explicitly allows them.
Bug: 15972465
Change-Id: I3278d94536fefacc86390c1ba4231680f7be8589
2014-07-28 18:52:41 +00:00
Sandeep Siddhartha
39c12fab49 Use blob (shared memory) for large data in sound model/recognition event/config
Also add a missing null check in writeBlob

Bug: 16516353
Change-Id: Ie702f8daae541cab7c2cee6e13d49e7fc84c84e1
2014-07-28 11:10:32 -07:00
Sandeep Siddhartha
90d7a3e996 Add read/writeBlob to Parcel
These are {@hide}en for now.

Bug: 16516353
Change-Id: Ie1635617ee8611a78be9068a7ce674e34c30301d
2014-07-25 16:50:41 -07:00
Sreeram Ramachandran
8cd33ed84e Implement support for bypassable VPNs.
Bypassable VPNs grab all traffic by default (just like secure VPNs), but:
+ They allow all apps to choose other networks using the multinetwork APIs.
  If these other networks are insecure ("untrusted"), they will enforce that the
  app holds the necessary permissions, such as CHANGE_NETWORK_STATE.
+ They support consistent routing. If an app has an existing connection over
  some other network when the bypassable VPN comes up, it's not interrupted.

Bug: 15347374
Change-Id: Iaee9c6f6fa8103215738570d2b65d3fcf10343f3
2014-07-25 15:17:23 -07:00
Kenny Guy
237aecd18d Change getBadgedLabelForUser to use CharSequence
Bug: 16401636
Change-Id: I45410a6293007dd789d6770d63397824559b756e
2014-07-25 10:12:11 +00:00
Nicolas Prevot
f1939901d2 Making the clipboard work across users.
When copying from the parent: the ClipData can be pasted in the managed profile.
When copying from a managed profile: it can be pasted in the parent,
unless the policies says it's disabled. In which case, the clipboard of the parent becomes empty.
Supporting content uris.

BUG: 15186236

Change-Id: I522564a7c07ff21df137adcda980bb52e5739964
2014-07-24 10:25:57 +00:00
Dianne Hackborn
10eaa8574b Fix issue #16467284: Make noteStartVideo and noteStartAudio nesting
Also add new methods to clear these states, so we can avoid any
nesting issues from getting the tracking state stuck.

Change-Id: Iba0eaba2a9a186355c24d392f16118982c5331ed
2014-07-23 17:05:04 +00:00
Sreeram Ramachandran
03666c705d Cleanup: Delete dead code.
Bug: 15413389
Change-Id: I315468832ef18ffc84174e54774ab63b86d284dc
2014-07-22 15:46:34 -07:00