Commit Graph

1972 Commits

Author SHA1 Message Date
John Spurlock
8d4e6cb060 Saver: PowerManager call to set low power mode.
- Add an explicit power manager call to set the low power mode state,
  instead of trying manage everything around a single setting.
- When low-power mode is triggered by falling below the configured
  threshold, it does not update the setting.
- The "is-enabled" api returns setting || below configured trigger.
- Move the snooze management into the new api call.
- Callers (sysui + settings) updated to use the api instead of the
  setting.
- Handles the case where the level does an unpowered leap out of the
  low battery level. (Possible if powered in-between while the device
  is off)

Bug:17460535
Change-Id: Ic030504c9cad9868a7137abbe837b170da37852b
2014-09-14 14:07:23 -04:00
Dianne Hackborn
33d738a102 Allow throwing UnsupportedOperationException across Binder.
Change-Id: I3a9b81958886033d546c3a20331716dbb9492365
2014-09-12 14:23:58 -07:00
Alexandra Gherghina
64d4dca63f Assign default icon to users at creation time and in SystemUI.
Right now different code in System UI, Settings app and other places replace the
user icon with their own default. This tries to make it consistent by moving the
mechanism used in Settings in a helper class.

Bug: 17311038
Change-Id: Ic858c65bf82a98b9806dbba029e7cdcf441f372e
2014-09-12 15:43:42 +01:00
Michael Wright
1208e2718d Change constant to PowerManager.RELEAES_FLAG_WAIT_FOR_NO_PROXIMITY
Bug: 17290118
Change-Id: Iae3866bf3f7ac24f756ec4c183e848a79d1f779b
2014-09-12 00:23:14 +00:00
Amith Yamasani
8cd28b57ed Apply cross-user restrictions to Shell
Even though Shell user is allowed to perform cross-user actions,
lock that path down if the target user has restrictions imposed by
the profile owner device admin that prevents access via adb.

If the profile owner has imposed DISALLOW_DEBUGGING_FEATURES, don't
allow the shell user to make the following types of calls:
start activities, make service calls, access content providers,
send broadcasts, block/unblock packages, clear user data, etc.

Bug: 15086577
Change-Id: I9669fc165953076f786ed51cbc17d20d6fa995c3
2014-09-10 17:15:06 -07:00
Amith Yamasani
da6e6c888f Merge "User restriction to disallow outgoing NFC beam" into lmp-dev 2014-09-09 20:29:57 +00:00
Amith Yamasani
26af829fd7 User restriction to disallow outgoing NFC beam
This can be controlled by MDMs via DPM.

Also fixes:
 - javadoc for restrictions
 - persisting of cross profile copy/paste restriction

Bug: 17387303
Change-Id: Ie148f56189181d2a4c6345c0823d417ab13a94a3
2014-09-09 12:09:47 -07:00
Andreas Gampe
6b0ed64fb8 Frameworks/base: Add native bridge post-fork initialization
(cherry picked from commit d7746a8b65ee4690427ed798816f970218578fa3)

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
2014-09-08 13:07:59 -07:00
Jeff Sharkey
e016605981 Merge "Delayed ASEC allocation, refine progress handling." into lmp-dev 2014-09-08 16:38:42 +00:00
Jeff Sharkey
77d218e186 Delayed ASEC allocation, refine progress handling.
For restore use-case, session creation needs to complete quickly, so
delay ASEC allocation until session is opened.  When preflighting
size checks, only consider external when we have a known size for the
container.  Also relax size checks when using MODE_INHERIT_EXISTING
on external, since we don't know how much of existing app will be
copied over.

Consider session as "active" while commit is ongoing, until we're
either finished or pending user interaction.

Always publish first client needle movement away from 0.  Use 25% of
internal progress to reflect ASEC allocation.

Avoid CloseGuard messages about leaking PFDs.

Bug: 17405741, 17402982
Change-Id: I6247a1d335d26621549c701c4c4575a8d16ef8c2
2014-09-08 09:31:49 -07:00
Dianne Hackborn
b30c9920df Merge "Fix issue #17391969: Only exception on Message.recycle() when target-sdk > 20" into lmp-dev 2014-09-07 19:04:05 +00:00
Dianne Hackborn
7895bc2e63 Fix issue #17391969: Only exception on Message.recycle() when target-sdk > 20
Change-Id: Iaf271c96901c5dba15831681269a49ad4aaa57fd
2014-09-05 17:50:47 -07:00
Dianne Hackborn
ce78347c37 Merge "Fix issue #17397177: BatteryStats reporting error on job start/stop" into lmp-dev 2014-09-06 00:49:28 +00:00
Dianne Hackborn
c3940bc1ba Fix issue #17397177: BatteryStats reporting error on job start/stop
Dumb, dumb, dumb mistake.

Also fix battery stats wakeup reason tracking to use a SamplingTimer
(like kernel wake locks) so we can track both the duration and count
for each wakeup reason.

Change-Id: I89d69661006dc533622b1b7e68a139166d3a6975
2014-09-05 17:33:06 -07:00
Svetoslav
c7d62f02b8 Addressing API council comments for UserManager.
bug:17390424

Change-Id: I498d2541289915cb7db16e5c3249ccc7a7dc5ee6
2014-09-05 10:07:02 -07:00
Jeff Sharkey
d3cc74cac2 Merge "Move Size parceling to Bundle." into lmp-dev 2014-09-05 16:46:00 +00:00
Amith Yamasani
a240d8377a Merge "Don't allow guests to install from unknown sources" into lmp-dev 2014-09-05 16:32:30 +00:00
Jeff Sharkey
5ef33984d0 Move Size parceling to Bundle.
Size itself shouldn't be Parcelable, since that would be a layering
violation.

Bug: 17390381
Change-Id: Ica62709bd889db51c916c550a0146714b002baa3
2014-09-05 09:07:35 -07:00
Dianne Hackborn
edfc6af590 Merge "Fix issue #17375172... sshhhhhh!!!" into lmp-dev 2014-09-04 23:08:24 +00:00
Dianne Hackborn
521e4bd7c5 Fix issue #17375172... sshhhhhh!!!
Change-Id: Idf3eafe829418bfc29e31f893ae6cff249488ffa
2014-09-04 14:50:26 -07:00
Amith Yamasani
29ce85bab9 Don't allow guests to install from unknown sources
Added a user restriction when creating a guest.
Made sure that guests can't install profile owners that
could undo the restriction.

Bug: 17359648
Change-Id: Icdd919e8b1cbd79a69aacb76e573ec3449f18e4c
2014-09-03 17:30:43 -07:00
Amith Yamasani
bef1036af7 Merge "Add some @SystemApi tags for internal user-related APIs" into lmp-dev 2014-09-03 20:26:10 +00:00
Amith Yamasani
0e8d7d63ba Add some @SystemApi tags for internal user-related APIs
Also added an internal isManagedProfile()

Bug: 17371392
Change-Id: Ibcc26771d954505cbd530192bf4a8a25a8d4cae0
2014-09-03 13:17:28 -07:00
Lorenzo Colitti
089ea995ba Merge "Pass the socket mark for DNS queries to dnsmasq." into lmp-dev 2014-09-02 22:39:18 +00:00
Paul Lawrence
e2c88d39b2 Add constants so we can distinguish decryption failures
Bug: 17213613
Change-Id: I6bc10a1ed0855f6946ea9eb2f8d2db00c1af327c
2014-09-02 18:26:32 +00:00
Amith Yamasani
1df1473008 Make it possible to remove current user
Due to the async nature of switching users, it's not possible to
switch and remove immediately. So mark the switch target user as
soon as the user switch is requested, so that a remove will proceed
without failing at stopUserLocked().

Also, fix a similar problem with deleting the current guest and
switching to a new guest. It was attempting to remove the current
user which will result in a failed stopping of the user.
Added a way to mark the current guest
for deletion so that a new one can be created, switched to and the
old one deleted. If runtime fails, old guest is already marked for
deletion and will be cleaned up on restart.

Bug: 17321533
Change-Id: I4be0fb956227e0bb95588b5b1f2867fb1e655c0d
2014-08-29 22:06:16 -07:00
Lorenzo Colitti
b57edc5ae9 Pass the socket mark for DNS queries to dnsmasq.
This makes tethered clients use the correct DNS servers when
tethering to non-default networks like the DUN APN.

Bug: 16357676
Change-Id: I8933b6de198a92c2aaf0291931ace8966ddba275
2014-08-29 10:21:58 -07:00
Jeff Sharkey
73a8217803 Keep tests building.
Bug: 17183379
Change-Id: I7f52af3201975e8c626a6c6d7f508fd8d006b204
2014-08-29 00:10:14 -07:00
Jeff Sharkey
c62f2e1bb7 Merge "FileBridge needs to keep strong reference to PFD." into lmp-dev 2014-08-29 06:52:55 +00:00
Jeff Sharkey
9a1507aa10 FileBridge needs to keep strong reference to PFD.
Even though we've grabbed the underlying FD, the PFD could be GC'ed
and when finalized it would end up closing the underlying FD.  This
fix ties the PFD object lifecycle to the returned OutputStream.

Bug: 17183379
Change-Id: Ibee8f4cf78fee357181a250d15f2a653294b2877
2014-08-28 20:38:10 -07:00
Michael Wright
b4558af745 Merge "Change constant to PowerManager#FLAG_WAIT_FOR_DISTANT_PROXIMITY" into lmp-dev 2014-08-28 00:00:56 +00:00
Michael Wright
219857b900 Change constant to PowerManager#FLAG_WAIT_FOR_DISTANT_PROXIMITY
Also add docs to PowerManager.WakeLock#release(int)

Bug: 17290118
Change-Id: Ibcbc4279efdd0f275808042356e6ff843958e23f
2014-08-27 15:37:27 -07:00
Jeff Sharkey
d3ca991700 Report FileBridge failures as wtf().
Bug: 17183379
Change-Id: Ifd4dc690c04439e1f7abebd8e0ca4e1ff97d9cc8
2014-08-26 14:23:28 -07:00
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