Commit Graph

2850 Commits

Author SHA1 Message Date
Todd Kennedy
72cfcd02b8 Move 'un/install' to cmd
Move the implementation of the install variants and uninstall to the cmd
command. Additionally, make two other important changes: 1) replace calls
to the legacy PackageManager#installPackageAsUser with the PackageInstaller
2) allow streaming package bits for 'pm install'

Change-Id: I5680f57208d377daadb69b2cc09c233c02fe5016
2015-11-09 15:07:18 -08:00
Guang Zhu
f49bec047a Merge "Revert "Move 'un/install' to cmd"" 2015-11-09 18:10:54 +00:00
Todd Kennedy
18bc3305e4 Revert "Move 'un/install' to cmd"
This reverts commit ec059d839d.

Change-Id: Ieaa1373e96fb4cc20aa41c3159518bd9e86c572b
2015-11-09 15:36:43 +00:00
Nicolas Prévot
d59262667c Merge "Add method to tell the dpc if provisioning is allowed." 2015-11-09 13:49:31 +00:00
Jeff Sharkey
e17ac15697 More APIs for encryption-aware apps.
Apps can mark manifest components as being encryption-aware, which
means they can safely be run before the credential encrypted storage
is available.

Start adding filtering logic so that we only return these components
when a user is running "with amnesia."  That is to say, only device
encrypted storage is available, so the user is running but with only
partial knowledge of its data.

To avoid calling into ActivityManager with the PackageManager lock
held, we quickly determine user state and splice the state into the
flags for later per-component evaluation.

Bug: 22358539
Change-Id: Idc56ec29f1ef04da8963e004314d7f5e47400997
2015-11-08 13:29:16 -08:00
Jeff Sharkey
15447798a3 Initial file-based encryption public APIs.
Define two explicit directories where device-encrypted and
credential-encrypted data will be stored.  Third-party apps only
need access to the device-encrypted directory, so that's the only
API exposed for now.

General cleanup in how ApplicationInfo details are derived.

Bug: 22358539
Change-Id: If0a0108721a4aa1c3052b4912e08604bbf24e1ae
2015-11-06 18:35:27 -08:00
Makoto Onuki
86cd001e36 Merge "Have AudioService listen to DISALLOW_UNMUTE_MICROPHONE and" 2015-11-06 18:29:12 +00:00
Todd Kennedy
ec059d839d Move 'un/install' to cmd
Move the implementation of the install variants and uninstall to the cmd
command. Additionally, make two other important changes: 1) replace calls
to the legacy PackageManager#installPackageAsUser with the PackageInstaller
2) allow streaming package bits for 'pm install'

Change-Id: Ia49dac0ccd6470f9d1c1964bdeb3c0b22b856075
2015-11-06 09:27:22 -08:00
Paul Lawrence
6bcc32504f Fix build
Change-Id: I0ebff8e41c2aa5bec2466d075d9143a5a525e02d
2015-11-05 14:17:03 -08:00
Paul Lawrence
9548b380d9 Merge "Add developer option to convert from FDE to FBE" 2015-11-05 21:41:03 +00:00
Makoto Onuki
d45a4a2ecb Have AudioService listen to DISALLOW_UNMUTE_MICROPHONE and
... DISALLOW_ADJUST_VOLUME, instead of UserManager pushing
new settings to AudioService.

Also:
- Allow PO to set these two restrictions.

- Now AS.setMasterMuteInternal() respects mUseFixedVolume to make
it consistent with readPersistedSettings().

- When a user switches and restores the mute state in
AS.readPersistedSettings(), also check the current user restrictions
in addition to system settings. Because of the delay in AudioService
before persisting the mute settings in setMasterMuteInternal() and
setMicrophoneMute(), there's was an edge case
DISALLOW_UNMUTE_MICROPHONE and DISALLOW_ADJUST_VOLUME would be ignored
when the user switches right after they are set.

Bug 24981972

Change-Id: I4d9b709a0a0e6812319204568c6e44d6664bdeb4
2015-11-04 14:29:31 -08:00
Paul Lawrence
3806d9c562 Add developer option to convert from FDE to FBE
This set of changes adds the screen that offers this conversion,
and the plumbing so the option is only available on suitable
devices.

It does not implement the conversion mechanism.Add conversion from FDE to FBE

Change-Id: Idf7bc834f30b3d1b0473e0a53c985ef01dd0ad18
2015-11-04 08:51:27 -08:00
Nicolas Prevot
07387fedfa Add method to tell the dpc if provisioning is allowed.
The DPC can use it to tell if provisioning a managed profile or for
device owner would work or not.

BUG:25338478
Change-Id: I09ea6a9f23a8e88e4ed37c048170b2a68213086e
2015-11-04 14:50:22 +00:00
Clara Bayarri
965da39942 Create a File Based Encryption check API
Change-Id: Ibf41f98818ea801b9f690200c340be80c3b9bf31
2015-11-04 12:27:39 +00:00
Fyodor Kupolov
8240275381 Introduced short-term lock for UMS internal state
Added mUsersLock - short-term lock for internal state, when interaction and
synchronization with PM is not required. Modifications to mUsers and
mRemovingUserIds must be guarded by 3 locks: mInstallLock, mPackagesLock and
mUsersLock. While reads can use mUsersLock.

Testing revealed that the following methods in UMS often cause contention:
- exists
- getUserInfo
- getProfileParent

They all now use a short-term lock mUsersLock for reads.

Bug: 24979571
Change-Id: Ie3a22ea7cbb450c7969800fe2a4a2b2516165e5b
2015-11-03 11:56:33 -08:00
Makoto Onuki
5263492de6 Merge "Allow DO to disable camera device-wise." 2015-11-02 22:00:09 +00:00
Makoto Onuki
759a763f5f Allow DO to disable camera device-wise.
Bug 24538855

Change-Id: I421690f14ee57fa818d2b233fe48a90a0a575a9e
2015-11-02 13:33:58 -08:00
Badhri Jagan Sridharan
2b2e24c2ab Merge "BatteryService: Add Max charging voltage" 2015-11-02 18:35:09 +00:00
Amith Yamasani
8f18dd4dfa Merge "Don't store a static instance of UserManager" 2015-10-30 18:19:08 +00:00
Amith Yamasani
c0688301de Don't store a static instance of UserManager
Otherwise the context within it can't be GCed.
It's better to leave the caching to the ContextImpl.

Bug: 25308506
Change-Id: I9be3ba5b1bb6cdc88b77520b2fbd72d9b72ef30d
2015-10-30 10:40:03 -07:00
Dianne Hackborn
2e44107bf7 Implement shell commands for battery and activity services.
The battery service just implements the existing commands that
are available through dump.

The activity service implements the small set of commands that
are available through dump (not the rest of the dump commands),
and also introduces some of the simple "am" shell commands as
a proof-of-concept of moving those into the service implementation.

Change-Id: If5ff80930dde787703e2682e43c36ce1dab05d69
2015-10-29 16:39:43 -07:00
Makoto Onuki
a3c1250a2f Fix javadoc
Change-Id: Iade890cd14bcac844f8ccc1ddde90120600fd64a
2015-10-28 10:18:32 -07:00
Badhri Jagan Sridharan
f92fcfe36a BatteryService: Add Max charging voltage
Bug: 25229483
Change-Id: Ibeba97eb145c3d59a763bd8632ab7fcc43118e4b
2015-10-27 20:21:22 -07:00
Makoto Onuki
068c54a5be Layer user restrictions
- Now DPMS remembers user restrictions set by DO / PO in their ActiveAdmin.

- User restrictions set by DO/PO will no longer be saved by UserManger.  Instead,
when needed, UMS will consult DPMS to build "effective" user restrictions.

- UM.getUserRestrictions() will now always return "effective" user restrictions.

- DPMS migrates existing user restrictions per the eng spec.

- Also now UM.setUserRestrictions() will crash.  UMS.setUserRestrictions() has
been removed.
This was needed because UM.setUserRestrctions(UM.getUserRestrictions()) will no
longer be a valid use like it used to be.

- Also introduced a fined-grained lock for user restrictions in UM to avoid
deadlock between DPMS and also for better performance.

Bug 23902097

Change-Id: If0e1e49344e2f3e9226532d00777976d1eaa7df3
2015-10-27 14:26:06 -07:00
Adrian Roos
f8ae610e8c Merge "Revert "Revert "Track ashmem memory usage in Parcel""" into mnc-dr-dev am: 93a6b4c129 am: a53bbb652b am: 5e5f718d23
am: 989b719e64

* commit '989b719e649266f41353ff5266cabd5b42a297a5':
  Revert "Revert "Track ashmem memory usage in Parcel""
2015-10-23 18:37:05 +00:00
Adrian Roos
989b719e64 Merge "Revert "Revert "Track ashmem memory usage in Parcel""" into mnc-dr-dev am: 93a6b4c129 am: a53bbb652b
am: 5e5f718d23

* commit '5e5f718d236234f3a4bc5826dc805b6b8c53283c':
  Revert "Revert "Track ashmem memory usage in Parcel""
2015-10-23 18:25:02 +00:00
Adrian Roos
a53bbb652b Merge "Revert "Revert "Track ashmem memory usage in Parcel""" into mnc-dr-dev
am: 93a6b4c129

* commit '93a6b4c12904bd1804a540d006c183851b0aea33':
  Revert "Revert "Track ashmem memory usage in Parcel""
2015-10-23 17:29:13 +00:00
Adrian Roos
0450565d9a Revert "Revert "Track ashmem memory usage in Parcel""
This reverts commit e2adb2cf0f.

Bug: 25004154
Change-Id: I9b432d1ebc39f3bbcd7afdefc403f0fb6ced8158
2015-10-22 17:49:38 -07:00
Ian Pedowitz
ab49c51342 Merge "Revert "Track ashmem memory usage in Parcel"" into mnc-dr-dev am: 09fd4ecf90 am: b402735fc0 am: 07129d53b5
am: d3511518f9

* commit 'd3511518f927eead41fb33c56803104672dcffc2':
  Revert "Track ashmem memory usage in Parcel"
2015-10-22 22:53:24 +00:00
Ian Pedowitz
d3511518f9 Merge "Revert "Track ashmem memory usage in Parcel"" into mnc-dr-dev am: 09fd4ecf90 am: b402735fc0
am: 07129d53b5

* commit '07129d53b5380ec556fa14c7506a26b6776e629a':
  Revert "Track ashmem memory usage in Parcel"
2015-10-22 22:46:06 +00:00
Ian Pedowitz
b402735fc0 Merge "Revert "Track ashmem memory usage in Parcel"" into mnc-dr-dev
am: 09fd4ecf90

* commit '09fd4ecf90c7ae2536a6848e8c88c4878e0e0c24':
  Revert "Track ashmem memory usage in Parcel"
2015-10-22 22:32:37 +00:00
Ian Pedowitz
e2adb2cf0f Revert "Track ashmem memory usage in Parcel"
This reverts commit ab3f972403.

Bug: 25169267
Bug: 25191602
Bug: 25004154
Change-Id: Ic51e62515273e4687359dfd9ff770a4d06c0c667
2015-10-22 22:09:04 +00:00
Adrian Roos
b531762c89 Merge "Track ashmem memory usage in Parcel" into mnc-dr-dev am: 33e1d376eb am: 655c12edb0
am: fda65d780e

* commit 'fda65d780eea9f696b087deb8d532b87e44877b6':
  Track ashmem memory usage in Parcel
2015-10-22 01:02:27 +00:00
Adrian Roos
655c12edb0 Merge "Track ashmem memory usage in Parcel" into mnc-dr-dev
am: 33e1d376eb

* commit '33e1d376ebd643cba5b507d0005b87d49e246bb5':
  Track ashmem memory usage in Parcel
2015-10-22 00:49:52 +00:00
Adrian Roos
ab3f972403 Track ashmem memory usage in Parcel
Bug: 25004154
Change-Id: Id9d5656dd0605f1b50525596b75601309f67ebdc
(cherry picked from commit 4701a496a5)
2015-10-22 00:31:47 +00:00
Adrian Roos
bc14a194e0 Merge "Track ashmem memory usage in Parcel" 2015-10-22 00:31:17 +00:00
Adrian Roos
4701a496a5 Track ashmem memory usage in Parcel
Bug: 25004154
Change-Id: Id9d5656dd0605f1b50525596b75601309f67ebdc
2015-10-21 16:52:15 -07:00
Tao Bao
48d7b31b4b Merge "Clean up the uncrypted OTA package on bootup." am: 5d562d4d2f am: ac140e7f76
am: db33bfc2a9

* commit 'db33bfc2a96c38eba5b67c82cb4fee69c52b80ad':
  Clean up the uncrypted OTA package on bootup.
2015-10-21 18:22:13 +00:00
Tao Bao
db33bfc2a9 Merge "Clean up the uncrypted OTA package on bootup." am: 5d562d4d2f
am: ac140e7f76

* commit 'ac140e7f7690979378897546e7934381f62922ab':
  Clean up the uncrypted OTA package on bootup.
2015-10-21 18:05:18 +00:00
Tao Bao
ac140e7f76 Merge "Clean up the uncrypted OTA package on bootup."
am: 5d562d4d2f

* commit '5d562d4d2fe5697468e5b93b183ed8ea42e115a2':
  Clean up the uncrypted OTA package on bootup.
2015-10-21 17:51:53 +00:00
Dianne Hackborn
ccbf4e4211 Merge "Initial implementation of light-weight idle mode." 2015-10-20 17:51:34 +00:00
Dianne Hackborn
08c47a5dec Initial implementation of light-weight idle mode.
This mode turns on after the screen has been off for 15 minutes,
and then cycles through 15 minutes of idle and 1 minute of
maintenance, ragardless of whether the device is moving around.

It currently only impacts network access and sync/job scheduling.
It does not remove access to wake locks or alarms for any apps.
It also doesn't report in the public API that the device is in
idle mode (since it isn't modifying the behavior of the power
manager) -- this is probably what we desire, since we don't want
stuff like GCM to be reporting these frequent changes.

We'll probably at least want to have the alarm manager do some
kind of more aggressive batching of alarms in this most (not allowing
more than one wakeup every minute?).  That's for the future.

Also updated batterystats to include this new information, which
means the format of some of the data has changed -- device_idle
is no longer a flag, but an enum of (off, light, full), and there
is no information about time spent in light modes.

Also added new data about the maximum duration spent in both light
and full idle modes, to get a better understanding of how those
are behaving.

And did a little cleanup of DeviceIdleController, removing the
sensing alarm which was redundant with the regular alarm.

Change-Id: Ibeea6659577dc02deff58f048f97fcd9b0223307
2015-10-20 10:43:14 -07:00
Tao Bao
87212ad6a8 Clean up the uncrypted OTA package on bootup.
An OTA package needs to be uncrypted before rebooting into recovery if
it sits on an encrypted /data partition. Once uncrypt gets started, we
cannot re-run it on the package again. Because the file may have been
fully or particially uncrypted and we may end up with a corrupt file
under recovery. Always clean up the package when the device boots into
the normal system to avoid that.

Bug: 24973532
Change-Id: I91682c103d1f2b603626c4bf8d818bced71e3674
2015-10-19 14:49:09 -07:00
Jeff Sharkey
e1ed980d4c am de0b34ea: am d56756fd: am 535726f6: am 0c15693e: Merge "Update docs to reflect adoptable behavior." into mnc-dr-dev
* commit 'de0b34ea14cfd5a5d219ee6e3d15ca4b04b6ce2e':
  Update docs to reflect adoptable behavior.
2015-10-16 16:45:35 +00:00
Jeff Sharkey
de0b34ea14 am d56756fd: am 535726f6: am 0c15693e: Merge "Update docs to reflect adoptable behavior." into mnc-dr-dev
* commit 'd56756fdee9fce3d08bea769710d7173bcbc263a':
  Update docs to reflect adoptable behavior.
2015-10-16 16:38:29 +00:00
Xiaohui Chen
f04f3005b0 Merge "Add UserHandle.isSystem() api" 2015-10-16 16:29:44 +00:00
Jeff Sharkey
535726f637 am 0c15693e: Merge "Update docs to reflect adoptable behavior." into mnc-dr-dev
* commit '0c15693e8de6f89fab7ca3d582f0a8605a54df9f':
  Update docs to reflect adoptable behavior.
2015-10-16 16:25:38 +00:00
Jeff Sharkey
0c15693e8d Merge "Update docs to reflect adoptable behavior." into mnc-dr-dev 2015-10-16 16:18:38 +00:00
Xiaohui Chen
fd5b77444e Add UM.isSameProfileGroup()
This optimizes the performance to check if two users are in the same
profile group.

Change-Id: I493a3475b848487836f4dbe01529c63165ace483
2015-10-15 22:02:07 +00:00
Xiaohui Chen
1fa7680c9c Add UserHandle.isSystem() api
This is added in order to deprecate the isOwner() api.

Bug: 24869636
Change-Id: I80a7a5559525faf261b9d9c7a8593e6ff5db4b22
2015-10-15 12:09:32 -07:00