OSDN Git Service

Wire call to suspend a package
authorAndrei Stingaceanu <stg@google.com>
Thu, 26 Nov 2015 15:26:28 +0000 (15:26 +0000)
committerAndrei Stingaceanu <stg@google.com>
Wed, 16 Dec 2015 18:14:14 +0000 (18:14 +0000)
commit1e2839188fb49575b86646d3aadb355c81ef9cc5
tree7d891672e43cb5162b7e7c99a3a68e91f8431227
parent53129f1c21fc1e404f8e1d5772954710e6442dd8
Wire call to suspend a package

Adds APIs in DevicePolicyManager and PackageManager for allowing
a device admin to suspend a package. PackageManagerService sets
or unsets a new PackageUserState 'suspended' setting. Terminal
command to suspend/unsuspend has been added via
PackageManagerShellCommand (as root).

Next steps:
* use the new 'suspended' setting for denying access to start app
(probably in ActivityStackSupervisor)
* broadcast a PACKAGE_(UN)SUSPENDED intent for launchers to pick up
* remove app from recents (go further and kill it if it is running)
* erase existing notifications for this app

Bug: 22776576
Change-Id: I718b3498f6a53cc0c6fdfb6d15031e53ddca4353
18 files changed:
api/current.txt
api/system-current.txt
api/test-current.txt
core/java/android/app/ApplicationPackageManager.java
core/java/android/app/admin/DevicePolicyManager.java
core/java/android/app/admin/IDevicePolicyManager.aidl
core/java/android/content/pm/ApplicationInfo.java
core/java/android/content/pm/IPackageManager.aidl
core/java/android/content/pm/PackageManager.java
core/java/android/content/pm/PackageParser.java
core/java/android/content/pm/PackageUserState.java
services/core/java/com/android/server/pm/PackageManagerService.java
services/core/java/com/android/server/pm/PackageManagerShellCommand.java
services/core/java/com/android/server/pm/PackageSettingBase.java
services/core/java/com/android/server/pm/Settings.java
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
test-runner/src/android/test/mock/MockPackageManager.java
tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java