55 Commits

Author SHA1 Message Date
Jason Monk
b0dced8173 Add an API to clear the device owner.
Only the device owner will be able to clear itself.

Change-Id: Ie3231467d92e8c5d22ec51256177793f34110432
2014-06-06 17:03:43 -04:00
Jason Monk
f10606a9a4 Merge "Add device-owner based setting of global proxy." 2014-06-06 20:50:23 +00:00
Jason Monk
03bc991834 Add device-owner based setting of global proxy.
Re-hide the setGlobalProxy on the ConnectivityManager as it requires
CONNECTIVITY_INTERNAL.  Instead add a function to the DevicePolicyManager
to set the global proxy, that can only be called by the device owner.

Change-Id: I9ffb2cc4f30a6dc9b868d86f056e1fbd512d8dfc
2014-06-06 16:43:17 -04:00
Alexandra Gherghina
56e0d8003b Merge "Clean up deleted users in DevicePolicyManagerService" 2014-06-06 16:14:53 +00:00
Kenny Guy
73a41d2c4e Fix bug with sending intents to correct user for device admin.
Password change intents etc. were always being sent to
owner rather than user the device admin was installed for.
Also add TODO to not assume profile parent is OWNER.

Bug: 15442331
Change-Id: I7e58069bc4a6ab94f038ae1b80c044d666986318
2014-06-05 18:10:43 +01:00
Alexandra Gherghina
22745f4c9a Clean up deleted users in DevicePolicyManagerService
Bug: 15405715
Change-Id: Icd958fe9378deb92f25622b341e0502d865b742f
2014-06-05 11:19:29 +01:00
Sander Alewijnse
1b8737ee18 Merge "Remove enableSystemApp() and enableSystemAppWithInten()." 2014-06-04 10:11:46 +00:00
Amith Yamasani
f20d640fa2 Restrictions Manager
Mechanism to register a provider for requesting an
administrator to respond to permission requests.

Request format and response format constants.

Description of manifest template for static restrictions.
Int type introduced in RestrictionEntry.

Needs more javadoc and better description of manifest templates,
including specifying the XML attributes.

Change-Id: I5a654d364e98379fc60f73db2e06bf9a8310263d
2014-05-31 16:41:35 -07:00
Sander Alewijnse
866896df16 Remove enableSystemApp() and enableSystemAppWithInten().
Use setApplicationBlocked() and setApplicationsBlocked() instead.

Change-Id: I3d323d704db0a45e936f63675821707b4fddc48b
2014-05-27 11:56:49 +01:00
Nicolas Prevot
8194899071 Rename code related to cross-profile intents.
For example, replace ForwardingIntentFilter by CrossProfileIntentFilter

Bug: 15023443

Change-Id: Iee8cdf578817ef9956bcdece803a49b0d07b67f7
2014-05-23 13:16:01 +01:00
Julia Reynolds
1e95839823 Create deviceowner gated APIs for creating and removing users in devicepolicymanager.
This will allow DMAgent to manage users for EDU's cart model user case.
Bug: 15015887

Change-Id: I1eadf1701cb75fc4b50eb1a0df1525eff818286e
2014-05-22 12:02:23 -04:00
Robin Lee
a9e460aefc Remove enforceManagedProfile for listing keyguard features
Change-Id: Ic89f09ada046f64b089b977868b6f37bc0a6de91
2014-05-21 15:19:40 +01:00
Narayan Kamath
d862ebb603 resolved conflicts for merge of fcc4fed3 to master
Change-Id: Icebca982b01debd67a1470c02651ef8936f6e5b0
2014-05-21 12:07:35 +01:00
Robin Lee
c8e4b8107a Merge "DPM: Disallow some DeviceAdmin policies for ProfileOwners" 2014-05-21 09:41:19 +00:00
Robin Lee
a9ee672953 DPM: Disallow some DeviceAdmin policies for ProfileOwners
A profile owner should only have control over the profile. All of the
following device admin APIs that affect the device beyond the profile
that they are called from are now disallowed:

 - Camera enable/disable
 - Keyguard
 - Wipe external storage

@bug 14434826

Change-Id: I69acfdf6f654f48b5db91aeb3ea86662d7857075
2014-05-21 09:40:19 +00:00
Jeff Brown
6d8fd27e51 Make power button behavior configurable.
Allow power button to be used to either go to sleep as usual,
which may doze, or skip that completely and really go to sleep.
May also really go to sleep and go home all at once.

Bug: 14406056
Change-Id: Ia19e2551b9c2a72271bb2eddd5c0d1749761e019
2014-05-20 21:24:38 -07:00
Julia Reynolds
37f4e44ae6 Merge "Add Device/Profile Owner gated apis for setting/getting blocked packages." 2014-05-20 22:19:02 +00:00
Julia Reynolds
966881e895 Add Device/Profile Owner gated apis for setting/getting blocked packages.
DMAgent currently needs to live in /system/priv-app in order to
(among other things) set and get blocked packages. These APIs will
get us closer to being able to move DMAgent out of priv-app.
Bug: 14945334

Change-Id: I108e2013c67409dca554acf78e3a710745900706
2014-05-20 17:59:58 -04:00
Julia Reynolds
da55165321 Allow device/profile owners to update settings.
Device owners can update Settings.Secure and Settings.Global settings.
Profile owners can update Settings.Secure settings.

DMAgent currently needs to live in /system/priv-app in order to
(among other things) update global and secure settings. This change will
get us closer to being able to move DMAgent out of priv-app.
Bug: 14965414

Change-Id: If2cc3a56de91bffde33b838ab8ecea2c32412803
2014-05-20 17:49:45 -04:00
Amith Yamasani
3a48359443 Use correct package name for profile owner
Fixes reboot loop when you have a managed profile on your device.

Change-Id: I935ded447f226ee0507d3dcf22a730a7fb61a0c0
2014-05-16 15:25:33 -07:00
Jason Monk
9fcff5aadd Fix NPE in DevicePolicyManagerService
Bug: 15015897
Change-Id: Id9f6ae8b5abf96d35f799b150210813fb52da54c
2014-05-16 14:56:57 -04:00
Jason Monk
62062996dd Notify AppOpsService of UserRestrictions and Owners
This makes the DevicePolicyManagerService and UserManagerService
push the DeviceOwner/ProfileOwners and user restrictions on boot
as well as on any change.

This also adds a list of restrictions that allow any op to connected with
a user restriction such that it will return MODE_IGNORED when the user
restriction is present (except for the device/profile owner).

Change-Id: Id8a9591d8f04fe5ecebd95750d9010afc0cd786c
2014-05-16 13:12:41 -04:00
Jessica Hummel
91da58ded2 Allow setting password restrictions from a managed profile.
A managed profile will now share password settings with its parent.

- the current password is always stored in the parent
- admins of profiles are notified if that password changes
- checks for password quality now take the requirements of admins on
   the parent and its profiles into account

Todo:

- Currently KeyguardSecurityContainer wipes the whole device when
  the maximum fails has been reached on any profile.
  We need to limit the wipe to the profile for which the fails exceeded
  the maximum number.
- Intents with ACTION_SET_NEW_PASSWORD need to be forwarded to the parent
  of the profile when sent from a managed profile

Change-Id: I8532c59f753f8d9c61200f553f275214ad90276e
2014-05-09 16:16:02 +01:00
justinzhang
511e0d8323 DevicePolicyManager Authentication for Lock Task
Here we let DevicePolicyManager keep a list of tasks that are
allowed to start the lock task mode. This list can only be set by
a device owner app. The ActivityManager will call
DevicePolicyManager to check whether a given task can start the
lock task mode or not.

Change-Id: I650fdae43fc35bf9fd63452283f4e2bbadd11551
Bug: 14611303
2014-05-08 15:00:14 -04:00
Sander Alewijnse
5c02db60be Add API to disable account management for certain types
of accounts.

The account types with disabled account management are stored in a
blacklist in the active admin object, editable by profile owners.

Change-Id: I57dc5f709ad79674fa28dd006969283585daea24
2014-05-08 12:28:07 +01:00
Jason Monk
54a9ebb509 Fix build
Change-Id: I87c037faee19b434be741104cdddb9c467f20606
2014-05-07 15:26:34 -04:00
Adam Connors
010cfd4581 Add enableSystemApp methods to DevicePolicyManager
These methods allow profile or device owners to enable
systems apps pre-installed in the primary user in the
managed profile. Apps can be specified by either package
name or intent.

Bug: 13587051

Change-Id: Ifcbc68c139308506b6c18cf3c0ea62b8026ff75f
2014-05-07 16:20:38 +01:00
Nicolas Prevot
c79586ede6 Cleaning code related to the forwarding intent filters.
Checking for INTERACT_ACROSS_USERS_FULL
Adding equivalent methods in the PackageManager

Change-Id: Iaa1328fa666613a78e67ca669ea045144275e895
2014-05-06 13:54:48 +01:00
Nicolas Prevot
6fee7d4cf9 Introducing removable and non-removable ForwardingIntentFilters.
clearForwardingIntentFilters removes only non-removable IntentFilters.
The ForwardingIntentFilters set by the profile owner are always removable.

Change-Id: If950ccd7e69261b86360ea647fdb501c92f5440b
2014-05-06 12:37:20 +01:00
Dianne Hackborn
d83a096f29 Bump up priority of system receiving BOOT_COMPLETED.
Change-Id: I5166f88f11f781914312e867cb653c8ecbefa705
2014-05-02 16:29:10 -07:00
Alexandra Gherghina
3c4d9c56db Merge "Adds an enabled state in UserInfo instead of DevicePolicyManager" 2014-05-01 10:49:21 +00:00
Alexandra Gherghina
df35d570ed Adds an enabled state in UserInfo instead of DevicePolicyManager
Bug: 14377459
Change-Id: Ib4ec43d87da96c3dddaf9b7ae1796f261863a182
2014-05-01 11:34:27 +01:00
Nicolas Prevot
10fa67c77e Introduce forwarding intents across profiles.
The package manager service maintains, for some user ids, a list of forwarding intent filters.
A forwarding intent filter is an intent filter with a destination (a user id).
If an intent matches the forwarding intent filter, then activities in the destination can also respond to the intent.

When the package manager service is asked for components that resolve an intent:
If the intent matches the forwarding intent filter, and at least one activity in the destination user can respond to the intent:
The package manager service also returns the IntentForwarderActivity.
This activity will forward the intent to the destination.

Change-Id: Id8957de3e4a4fdbc1e0dea073eadb45e04ef985a
2014-04-30 19:24:52 +01:00
Nicolas Prevot
f2a5bf88cd Small fix in DeviceOwner.java.
Change-Id: Ibfa4ae7b1bc269bc51532026f8a6cc3c75cc42bf
2014-04-29 10:43:53 +01:00
Amith Yamasani
be46532c9f Allow profile owners to set user restrictions
Pass the setting along to UserManager.

Fixes a security exception when fetching the profile's enabled state.

Change-Id: If71698cf32c52cce1158cf2027443a339bc58488
2014-04-24 16:24:13 -07:00
Alexandra Gherghina
a4fcb44033 Fix two potential NPEs in DeviceInfo
Change-Id: Ic4b5b203af25cda9ae65b477c92c1fb5f31ab093
2014-04-24 17:55:30 +01:00
Alexandra Gherghina
385124d8ce Modify getUserProfiles to return only enabled profiles:
Add a new enabled state for a managed profile.
Expose that as a new API on DevicePolicyManager.
Set the new state when enabling the profile.
Return only enabled profiles from the user manager.

Bug: 13755441
Bug: 13755091
Change-Id: I2907b182e19b3562592da688b3f68ef5f4088557
2014-04-24 10:07:51 +01:00
Robin Lee
66e5d96cf9 Allow ProfileOwner apps to manage app restrictions
Simple wrapper around the UserManager.{get|set}ApplicationRestrictions
APIs. Also added a new Intent to signal to running apps that the set
of restrictions has changed since startup.

Change-Id: Ifd108108a73f87325b499d9de2e1b2aacc59b264
2014-04-17 15:58:03 +01:00
Alexandra Gherghina
9944c2f85c Sends ACTION_MANAGED_PROFILE_ADDED intent at foreground priority to speedup the new profile ui.
Bug: 14073989
Change-Id: I06b57a4cb1b9975f28a5e1e676c76c9e6c5befe7
2014-04-15 10:59:18 +01:00
Alexandra Gherghina
512675b07d Add new call to DevicePolicyManager to enable a profile.
Bug: 13755091
Change-Id: Idb6975431f842ededf78966c578b0533e6f186af
2014-04-11 16:51:49 +01:00
Robin Lee
5c921daa72 Fix privilege escalation for preferred activities
Passing in the name of an actual admin should be enough to pass the
security check as it was. This is now fixed as the caller is not
given the opportunity to spoof its own name any more.

Change-Id: Id8be4ca4c8bf3751a1ee8125cf119fa100c81d22
2014-03-28 15:09:49 +00:00
Sander Alewijnse
627de95925 Merge "Enables a profile owner or device owner to set and clear default intent handler activities." 2014-02-24 10:16:28 +00:00
Sander Alewijnse
f475ca33d9 Enables a profile owner or device owner to set and clear default intent handler activities.
Those intent handlers are persistent preferences. They will remain the default intent
handler even if the set of potential event handlers for the intent filter changes
and if the intent preferences are reset.

Change-Id: Id0cfae46f93c10d89e441f272096a205ec518dd0
2014-02-21 15:24:20 +00:00
Robin Lee
08fc72d031 Check DeviceOwner exists before using packageName
Creating a profile owner when there is no device owner present also
creates a new DeviceOwner object without packageName set -- this
situation can lead to a null pointer access when calling isDeviceOwner.

Change-Id: I31eab498d78cadc67a1aedd205b458dee2d27705
2014-02-20 13:39:10 +00:00
Adam Connors
661ec4710b Change API for setProfileOwner to require userId
Previously the userId of the current process used but it
makes the provisioning process cleaner to be able to pass
it in explicitly.

Change-Id: I670c4cf3638f1340f6d0bf856c3e01045df8c29e
2014-02-17 10:18:59 +00:00
Jeff Brown
cab8617b8c am 25df673b: am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev
* commit '25df673b849de374cf1de40250dfd8a48b7ac28b':
  Make SystemService constructor take a Context.
2014-02-11 08:33:50 +00:00
Jeff Brown
b880d880c6 Make SystemService constructor take a Context.
This change simplifies the process of initializing a SystemService
by folding the onCreate() step back into the constructor.  It removes
some ambuiguity about what work should happen in the constructor and
should make it possible for services to retain most of their final
fields after refactoring into the new pattern.

Change-Id: I25f41af0321bc01898658ab44b369f9c5d16800b
2014-02-10 20:01:43 -08:00
Amith Yamasani
9348ac8249 Fix NPE on removing a user
Bug: 12957232

Check for null mDeviceOwner.

Change-Id: I107dc24d1a8de121ebd2c1bb56e1af40bb1c55ac
2014-02-10 13:43:18 -08:00
Adam Lesinski
9f97de1335 am a5a93f55: am 7f416631: Merge "Check feature bits before loading optional services" into klp-modular-dev
* commit 'a5a93f559d337ad5b79716b05ea43707eb779dc8':
  Check feature bits before loading optional services
2014-02-06 20:25:51 +00:00
Adam Connors
776c555d95 Extend DeviceOwner concept to accommodate ProfileOwners
ProfileOwners, like DeviceOwners, are Device Admins that have
additional priviledges. ProfileOwners however are scoped per
user.

Change-Id: I1e22c85878e0672121e6ebbe97fca38591f992b2
2014-02-06 10:07:19 +00:00