Commit Graph

1930 Commits

Author SHA1 Message Date
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
Sreeram Ramachandran
a77760d74a Fix WiFi-Direct.
Add a new command to let netd know about routes on a p2p interface.

Bug: 15413694

Change-Id: I36effc438d5ac193a77174493bf196cb68a5b97a
2014-07-22 11:24:29 -07:00
Jeff Brown
970d4132ea Allow dreams to control screen state and brightness.
Added setDozeScreenState() and setDozeScreenBrightness() methods to
DreamService.  The values specified here only take effect once
startDozing is called and can be changed while dozing.

This required some significant rework of the display power controller
but the result seems quite nice and better represents the policy
we want to apply.

Changed the test dream a little bit to make it flash the screen
every minute using the new functions.

Bug: 15903322
Change-Id: I83bcc34503f1b87727d2b2b3c0ef08507f9f0808
2014-07-22 01:18:26 +00:00
Amith Yamasani
9c44933958 API Review: Improvements to RestrictionsManager API
Use an activity intent for local approval instead of a type.
Use PeristableBundle instead of Bundle.
Pass requestId as an explicit argument in cases where it's required.

Bug: 16400892
Change-Id: Id882033f17c39aa9cd63a7eeb73bb7b51f98cf5b
2014-07-22 00:03:39 +00:00
Jean-Michel Trivi
89c3b29a9b Rename USAGE_NOTIFICATION_TELEPHONY_RINGTONE
AudioAttributes: rename USAGE_NOTIFICATION_TELEPHONY_RINGTONE to
  USAGE_NOTIFICATION_RINGTONE in the list of usage values.
Temporarily keep the old definition to prevent transient build
  breakages, will be removed after telephony packages have been
  updated.

Bug 16401631

Change-Id: I9398443fd7ba3c30e9d371c5c5a2934b9ea6f30a
2014-07-20 20:58:47 +00:00
John Spurlock
7b41467704 Zen mode filtering should use new usage constants.
Refactor stream-based calls to usage-based calls.

Bug:15279516
Change-Id: I3f7757d8123c14670e2ad5f8e6aa4e9803efe7ec
2014-07-19 11:57:51 -04:00
Amith Yamasani
390989da19 Split telephony restrictions into outgoing calls and sms
DISALLOW_TELEPHONY renamed to DISALLOW_OUTGOING_CALLS and introduced
DISALLOW_SMS.

Outgoing emergency calls should always be permitted.

Change-Id: I0a38ef6e2df9dcf62d16fd93622ad61f4327614f
2014-07-17 12:14:52 -07:00
Julia Reynolds
38d3c26fd5 Merge "Update message on DISALLOW_REMOVE_USERS constant." into lmp-dev 2014-07-17 07:39:11 +00:00
Torne (Richard Coles)
08cfaf6726 Use the WebView's loader library to load the real library.
Load libwebviewchromiumloader and use it to load the real WebView
library, to enable sharing of the relro segment between different
application processes without requiring that the library be preloaded in
the zygote. A system service is added to track whether the relro segment
file has been prepared, and block loading of the library until it has
been.

Bug: 13005501
Change-Id: I846b37c7b8e2a4eb8a39e4fd455bccbb2048c173
2014-07-17 09:18:43 -07:00
Julia Reynolds
5b8224901b Update message on DISALLOW_REMOVE_USERS constant.
Change-Id: I4f873eba4082278553ded830bb902fb3a3195d87
2014-07-17 11:50:05 -04:00