Rename setApplicationBlocked to setApplicationHidden

This corrects the expected behavior of the app state. Hidden apps
can be installed by the store to be brought out of hidden state.

Bug: 16191518
Change-Id: Id128ce971ceee99ba1dea14ba07ce03bd8d77335
diff --git a/api/current.txt b/api/current.txt
index 001d9b9..d8e8f4e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -5355,7 +5355,7 @@
     method public boolean installCaCert(android.content.ComponentName, byte[]);
     method public boolean isActivePasswordSufficient();
     method public boolean isAdminActive(android.content.ComponentName);
-    method public boolean isApplicationBlocked(android.content.ComponentName, java.lang.String);
+    method public boolean isApplicationHidden(android.content.ComponentName, java.lang.String);
     method public boolean isDeviceOwnerApp(java.lang.String);
     method public boolean isLockTaskPermitted(java.lang.String);
     method public boolean isMasterVolumeMuted(android.content.ComponentName);
@@ -5365,9 +5365,9 @@
     method public boolean removeUser(android.content.ComponentName, android.os.UserHandle);
     method public boolean resetPassword(java.lang.String, int);
     method public void setAccountManagementDisabled(android.content.ComponentName, java.lang.String, boolean);
-    method public boolean setApplicationBlocked(android.content.ComponentName, java.lang.String, boolean);
+    method public boolean setApplicationHidden(android.content.ComponentName, java.lang.String, boolean);
     method public void setApplicationRestrictions(android.content.ComponentName, java.lang.String, android.os.Bundle);
-    method public int setApplicationsBlocked(android.content.ComponentName, android.content.Intent, boolean);
+    method public int setApplicationsHidden(android.content.ComponentName, android.content.Intent, boolean);
     method public void setBlockUninstall(android.content.ComponentName, java.lang.String, boolean);
     method public void setCameraDisabled(android.content.ComponentName, boolean);
     method public void setCrossProfileCallerIdDisabled(android.content.ComponentName, boolean);
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index d6c17ae..faf5622 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -197,13 +197,13 @@
             return;
         }
 
-        if ("block".equals(op)) {
-            runSetBlockedSetting(true);
+        if ("hide".equals(op)) {
+            runSetHiddenSetting(true);
             return;
         }
 
-        if ("unblock".equals(op)) {
-            runSetBlockedSetting(false);
+        if ("unhide".equals(op)) {
+            runSetHiddenSetting(false);
             return;
         }
 
@@ -1471,7 +1471,7 @@
         }
     }
 
-    private void runSetBlockedSetting(boolean state) {
+    private void runSetHiddenSetting(boolean state) {
         int userId = 0;
         String option = nextOption();
         if (option != null && option.equals("--user")) {
@@ -1492,9 +1492,9 @@
             return;
         }
         try {
-            mPm.setApplicationBlockedSettingAsUser(pkg, state, userId);
-            System.err.println("Package " + pkg + " new blocked state: "
-                    + mPm.getApplicationBlockedSettingAsUser(pkg, userId));
+            mPm.setApplicationHiddenSettingAsUser(pkg, state, userId);
+            System.err.println("Package " + pkg + " new hidden state: "
+                    + mPm.getApplicationHiddenSettingAsUser(pkg, userId));
         } catch (RemoteException e) {
             System.err.println(e.toString());
             System.err.println(PM_NOT_RUNNING_ERR);
@@ -1751,8 +1751,8 @@
         System.err.println("       pm disable [--user USER_ID] PACKAGE_OR_COMPONENT");
         System.err.println("       pm disable-user [--user USER_ID] PACKAGE_OR_COMPONENT");
         System.err.println("       pm disable-until-used [--user USER_ID] PACKAGE_OR_COMPONENT");
-        System.err.println("       pm block [--user USER_ID] PACKAGE_OR_COMPONENT");
-        System.err.println("       pm unblock [--user USER_ID] PACKAGE_OR_COMPONENT");
+        System.err.println("       pm hide [--user USER_ID] PACKAGE_OR_COMPONENT");
+        System.err.println("       pm unhide [--user USER_ID] PACKAGE_OR_COMPONENT");
         System.err.println("       pm grant PACKAGE PERMISSION");
         System.err.println("       pm revoke PACKAGE PERMISSION");
         System.err.println("       pm set-install-location [0/auto] [1/internal] [2/external]");
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 6a51371..1cb0fd4 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -1452,10 +1452,10 @@
     }
 
     @Override
-    public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked,
+    public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
             UserHandle user) {
         try {
-            return mPM.setApplicationBlockedSettingAsUser(packageName, blocked,
+            return mPM.setApplicationHiddenSettingAsUser(packageName, hidden,
                     user.getIdentifier());
         } catch (RemoteException re) {
             // Should never happen!
@@ -1464,9 +1464,9 @@
     }
 
     @Override
-    public boolean getApplicationBlockedSettingAsUser(String packageName, UserHandle user) {
+    public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle user) {
         try {
-            return mPM.getApplicationBlockedSettingAsUser(packageName, user.getIdentifier());
+            return mPM.getApplicationHiddenSettingAsUser(packageName, user.getIdentifier());
         } catch (RemoteException re) {
             // Should never happen!
         }
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 5f2262b..efeded5 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -2523,20 +2523,20 @@
     }
 
     /**
-     * Called by device or profile owner to block or unblock packages. When a package is blocked it
+     * Called by device or profile owner to hide or unhide packages. When a package is hidden it
      * is unavailable for use, but the data and actual package file remain.
      *
      * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
-     * @param packageName The name of the package to block or unblock.
-     * @param blocked {@code true} if the package should be blocked, {@code false} if it should be
-     *                 unblocked.
-     * @return boolean Whether the blocked setting of the package was successfully updated.
+     * @param packageName The name of the package to hide or unhide.
+     * @param hidden {@code true} if the package should be hidden, {@code false} if it should be
+     *                 unhidden.
+     * @return boolean Whether the hidden setting of the package was successfully updated.
      */
-    public boolean setApplicationBlocked(ComponentName admin, String packageName,
-            boolean blocked) {
+    public boolean setApplicationHidden(ComponentName admin, String packageName,
+            boolean hidden) {
         if (mService != null) {
             try {
-                return mService.setApplicationBlocked(admin, packageName, blocked);
+                return mService.setApplicationHidden(admin, packageName, hidden);
             } catch (RemoteException e) {
                 Log.w(TAG, "Failed talking with device policy service", e);
             }
@@ -2545,20 +2545,20 @@
     }
 
     /**
-     * Called by profile or device owner to block or unblock currently installed packages. This
+     * Called by profile or device owner to hide or unhide currently installed packages. This
      * should only be called by a profile or device owner running within a managed profile.
      *
      * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
      * @param intent An intent matching the app(s) to be updated. All apps that resolve for this
      *               intent will be updated in the current profile.
-     * @param blocked {@code true} if the packages should be blocked, {@code false} if they should
-     *                 be unblocked.
+     * @param hidden {@code true} if the packages should be hidden, {@code false} if they should
+     *                 be unhidden.
      * @return int The number of activities that matched the intent and were updated.
      */
-    public int setApplicationsBlocked(ComponentName admin, Intent intent, boolean blocked) {
+    public int setApplicationsHidden(ComponentName admin, Intent intent, boolean hidden) {
         if (mService != null) {
             try {
-                return mService.setApplicationsBlocked(admin, intent, blocked);
+                return mService.setApplicationsHidden(admin, intent, hidden);
             } catch (RemoteException e) {
                 Log.w(TAG, "Failed talking with device policy service", e);
             }
@@ -2567,16 +2567,16 @@
     }
 
     /**
-     * Called by device or profile owner to determine if a package is blocked.
+     * Called by device or profile owner to determine if a package is hidden.
      *
      * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
-     * @param packageName The name of the package to retrieve the blocked status of.
-     * @return boolean {@code true} if the package is blocked, {@code false} otherwise.
+     * @param packageName The name of the package to retrieve the hidden status of.
+     * @return boolean {@code true} if the package is hidden, {@code false} otherwise.
      */
-    public boolean isApplicationBlocked(ComponentName admin, String packageName) {
+    public boolean isApplicationHidden(ComponentName admin, String packageName) {
         if (mService != null) {
             try {
-                return mService.isApplicationBlocked(admin, packageName);
+                return mService.isApplicationHidden(admin, packageName);
             } catch (RemoteException e) {
                 Log.w(TAG, "Failed talking with device policy service", e);
             }
diff --git a/core/java/android/app/admin/IDevicePolicyManager.aidl b/core/java/android/app/admin/IDevicePolicyManager.aidl
index 9b1979f..5fc8c5f 100644
--- a/core/java/android/app/admin/IDevicePolicyManager.aidl
+++ b/core/java/android/app/admin/IDevicePolicyManager.aidl
@@ -132,9 +132,9 @@
     void addCrossProfileIntentFilter(in ComponentName admin, in IntentFilter filter, int flags);
     void clearCrossProfileIntentFilters(in ComponentName admin);
 
-    boolean setApplicationBlocked(in ComponentName admin, in String packageName, boolean blocked);
-    int setApplicationsBlocked(in ComponentName admin, in Intent intent, boolean blocked);
-    boolean isApplicationBlocked(in ComponentName admin, in String packageName);
+    boolean setApplicationHidden(in ComponentName admin, in String packageName, boolean hidden);
+    int setApplicationsHidden(in ComponentName admin, in Intent intent, boolean hidden);
+    boolean isApplicationHidden(in ComponentName admin, in String packageName);
 
     UserHandle createUser(in ComponentName who, in String name);
     UserHandle createAndInitializeUser(in ComponentName who, in String name, in String profileOwnerName, in ComponentName profileOwnerComponent, in Bundle adminExtras);
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 95bd480..482ad6e 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -334,11 +334,11 @@
     public static final int FLAG_FULL_BACKUP_ONLY = 1<<26;
 
     /**
-     * Value for {@link #flags}: true if the application is blocked via restrictions and for
+     * Value for {@link #flags}: true if the application is hidden via restrictions and for
      * most purposes is considered as not installed.
      * {@hide}
      */
-    public static final int FLAG_BLOCKED = 1<<27;
+    public static final int FLAG_HIDDEN = 1<<27;
 
     /**
      * Value for {@link #flags}: set to <code>true</code> if the application
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index eb46cf0..5e55ba7 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -428,8 +428,8 @@
     /** Reflects current DeviceStorageMonitorService state */
     boolean isStorageLow();
 
-    boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, int userId);
-    boolean getApplicationBlockedSettingAsUser(String packageName, int userId);
+    boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId);
+    boolean getApplicationHiddenSettingAsUser(String packageName, int userId);
 
     IPackageInstaller getPackageInstaller();
 
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index b4c0219..8b6ae41 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -3642,20 +3642,21 @@
     public abstract int getApplicationEnabledSetting(String packageName);
 
     /**
-     * Puts the package in a blocked state, which is almost like an uninstalled state,
+     * Puts the package in a hidden state, which is almost like an uninstalled state,
      * making the package unavailable, but it doesn't remove the data or the actual
-     * package file.
+     * package file. Application can be unhidden by either resetting the hidden state
+     * or by installing it, such as with {@link #installExistingPackage(String)}
      * @hide
      */
-    public abstract boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked,
+    public abstract boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
             UserHandle userHandle);
 
     /**
-     * Returns the blocked state of a package.
-     * @see #setApplicationBlockedSettingAsUser(String, boolean, UserHandle)
+     * Returns the hidden state of a package.
+     * @see #setApplicationHiddenSettingAsUser(String, boolean, UserHandle)
      * @hide
      */
-    public abstract boolean getApplicationBlockedSettingAsUser(String packageName,
+    public abstract boolean getApplicationHiddenSettingAsUser(String packageName,
             UserHandle userHandle);
 
     /**
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 833dc21..9866200 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -382,23 +382,23 @@
     }
 
     /**
-     * Returns true if the package is installed and not blocked, or if the caller
-     * explicitly wanted all uninstalled and blocked packages as well.
+     * Returns true if the package is installed and not hidden, or if the caller
+     * explicitly wanted all uninstalled and hidden packages as well.
      */
-    private static boolean checkUseInstalledOrBlocked(int flags, PackageUserState state) {
-        return (state.installed && !state.blocked)
+    private static boolean checkUseInstalledOrHidden(int flags, PackageUserState state) {
+        return (state.installed && !state.hidden)
                 || (flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0;
     }
 
     public static boolean isAvailable(PackageUserState state) {
-        return checkUseInstalledOrBlocked(0, state);
+        return checkUseInstalledOrHidden(0, state);
     }
 
     public static PackageInfo generatePackageInfo(PackageParser.Package p,
             int gids[], int flags, long firstInstallTime, long lastUpdateTime,
             HashSet<String> grantedPermissions, PackageUserState state, int userId) {
 
-        if (!checkUseInstalledOrBlocked(flags, state)) {
+        if (!checkUseInstalledOrHidden(flags, state)) {
             return null;
         }
         PackageInfo pi = new PackageInfo();
@@ -4533,7 +4533,7 @@
                 return true;
             }
         }
-        if (!state.installed || state.blocked) {
+        if (!state.installed || state.hidden) {
             return true;
         }
         if (state.stopped) {
@@ -4566,10 +4566,10 @@
         } else {
             ai.flags &= ~ApplicationInfo.FLAG_INSTALLED;
         }
-        if (state.blocked) {
-            ai.flags |= ApplicationInfo.FLAG_BLOCKED;
+        if (state.hidden) {
+            ai.flags |= ApplicationInfo.FLAG_HIDDEN;
         } else {
-            ai.flags &= ~ApplicationInfo.FLAG_BLOCKED;
+            ai.flags &= ~ApplicationInfo.FLAG_HIDDEN;
         }
         if (state.enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
             ai.enabled = true;
@@ -4585,7 +4585,7 @@
     public static ApplicationInfo generateApplicationInfo(Package p, int flags,
             PackageUserState state, int userId) {
         if (p == null) return null;
-        if (!checkUseInstalledOrBlocked(flags, state)) {
+        if (!checkUseInstalledOrHidden(flags, state)) {
             return null;
         }
         if (!copyNeeded(flags, p, state, null, userId)
@@ -4673,7 +4673,7 @@
     public static final ActivityInfo generateActivityInfo(Activity a, int flags,
             PackageUserState state, int userId) {
         if (a == null) return null;
-        if (!checkUseInstalledOrBlocked(flags, state)) {
+        if (!checkUseInstalledOrHidden(flags, state)) {
             return null;
         }
         if (!copyNeeded(flags, a.owner, state, a.metaData, userId)) {
@@ -4714,7 +4714,7 @@
     public static final ServiceInfo generateServiceInfo(Service s, int flags,
             PackageUserState state, int userId) {
         if (s == null) return null;
-        if (!checkUseInstalledOrBlocked(flags, state)) {
+        if (!checkUseInstalledOrHidden(flags, state)) {
             return null;
         }
         if (!copyNeeded(flags, s.owner, state, s.metaData, userId)) {
@@ -4763,7 +4763,7 @@
     public static final ProviderInfo generateProviderInfo(Provider p, int flags,
             PackageUserState state, int userId) {
         if (p == null) return null;
-        if (!checkUseInstalledOrBlocked(flags, state)) {
+        if (!checkUseInstalledOrHidden(flags, state)) {
             return null;
         }
         if (!copyNeeded(flags, p.owner, state, p.metaData, userId)
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index f0d4cb1..4dcad6f 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -28,7 +28,7 @@
     public boolean stopped;
     public boolean notLaunched;
     public boolean installed;
-    public boolean blocked; // Is the app restricted by owner / admin
+    public boolean hidden; // Is the app restricted by owner / admin
     public int enabled;
     public boolean blockUninstall;
 
@@ -39,7 +39,7 @@
 
     public PackageUserState() {
         installed = true;
-        blocked = false;
+        hidden = false;
         enabled = COMPONENT_ENABLED_STATE_DEFAULT;
     }
 
@@ -48,7 +48,7 @@
         stopped = o.stopped;
         notLaunched = o.notLaunched;
         enabled = o.enabled;
-        blocked = o.blocked;
+        hidden = o.hidden;
         lastDisableAppCaller = o.lastDisableAppCaller;
         disabledComponents = o.disabledComponents != null
                 ? new HashSet<String>(o.disabledComponents) : null;
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 77fd409..6de8a8b 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -7882,7 +7882,7 @@
     }
 
     @Override
-    public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked,
+    public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
             int userId) {
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null);
         PackageSetting pkgSetting;
@@ -7890,11 +7890,11 @@
         if (UserHandle.getUserId(uid) != userId) {
             mContext.enforceCallingOrSelfPermission(
                     android.Manifest.permission.INTERACT_ACROSS_USERS_FULL,
-                    "setApplicationBlockedSetting for user " + userId);
+                    "setApplicationHiddenSetting for user " + userId);
         }
 
-        if (blocked && isPackageDeviceAdmin(packageName, userId)) {
-            Slog.w(TAG, "Not blocking package " + packageName + ": has active device admin");
+        if (hidden && isPackageDeviceAdmin(packageName, userId)) {
+            Slog.w(TAG, "Not hiding package " + packageName + ": has active device admin");
             return false;
         }
 
@@ -7908,10 +7908,10 @@
                 if (pkgSetting == null) {
                     return false;
                 }
-                if (pkgSetting.getBlocked(userId) != blocked) {
-                    pkgSetting.setBlocked(blocked, userId);
+                if (pkgSetting.getHidden(userId) != hidden) {
+                    pkgSetting.setHidden(hidden, userId);
                     mSettings.writePackageRestrictionsLPr(userId);
-                    if (blocked) {
+                    if (hidden) {
                         sendRemoved = true;
                     } else {
                         sendAdded = true;
@@ -7924,8 +7924,8 @@
             }
             if (sendRemoved) {
                 killApplication(packageName, UserHandle.getUid(userId, pkgSetting.appId),
-                        "blocking pkg");
-                sendPackageBlockedForUser(packageName, pkgSetting, userId);
+                        "hiding pkg");
+                sendApplicationHiddenForUser(packageName, pkgSetting, userId);
             }
         } finally {
             Binder.restoreCallingIdentity(callingId);
@@ -7933,7 +7933,7 @@
         return false;
     }
 
-    private void sendPackageBlockedForUser(String packageName, PackageSetting pkgSetting,
+    private void sendApplicationHiddenForUser(String packageName, PackageSetting pkgSetting,
             int userId) {
         final PackageRemovedInfo info = new PackageRemovedInfo();
         info.removedPackage = packageName;
@@ -7944,13 +7944,13 @@
 
     /**
      * Returns true if application is not found or there was an error. Otherwise it returns
-     * the blocked state of the package for the given user.
+     * the hidden state of the package for the given user.
      */
     @Override
-    public boolean getApplicationBlockedSettingAsUser(String packageName, int userId) {
+    public boolean getApplicationHiddenSettingAsUser(String packageName, int userId) {
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USERS, null);
         enforceCrossUserPermission(Binder.getCallingUid(), userId, true,
-                "getApplicationBlocked for user " + userId);
+                "getApplicationHidden for user " + userId);
         PackageSetting pkgSetting;
         long callingId = Binder.clearCallingIdentity();
         try {
@@ -7960,7 +7960,7 @@
                 if (pkgSetting == null) {
                     return true;
                 }
-                return pkgSetting.getBlocked(userId);
+                return pkgSetting.getHidden(userId);
             }
         } finally {
             Binder.restoreCallingIdentity(callingId);
@@ -7994,7 +7994,7 @@
                 }
                 if (!pkgSetting.getInstalled(userId)) {
                     pkgSetting.setInstalled(true, userId);
-                    pkgSetting.setBlocked(false, userId);
+                    pkgSetting.setHidden(false, userId);
                     mSettings.writePackageRestrictionsLPr(userId);
                     sendAdded = true;
                 }
@@ -10593,19 +10593,19 @@
             return;
         }
 
-        boolean blocked = false;
+        boolean uninstallBlocked = false;
         if ((flags & PackageManager.DELETE_ALL_USERS) != 0) {
             int[] users = sUserManager.getUserIds();
             for (int i = 0; i < users.length; ++i) {
                 if (getBlockUninstallForUser(packageName, users[i])) {
-                    blocked = true;
+                    uninstallBlocked = true;
                     break;
                 }
             }
         } else {
-            blocked = getBlockUninstallForUser(packageName, userId);
+            uninstallBlocked = getBlockUninstallForUser(packageName, userId);
         }
-        if (blocked) {
+        if (uninstallBlocked) {
             try {
                 observer.packageDeleted(packageName, PackageManager.DELETE_FAILED_OWNER_BLOCKED);
             } catch (RemoteException re) {
@@ -10613,7 +10613,9 @@
             return;
         }
 
-        if (DEBUG_REMOVE) Slog.d(TAG, "deletePackageAsUser: pkg=" + packageName + " user=" + userId);
+        if (DEBUG_REMOVE) {
+            Slog.d(TAG, "deletePackageAsUser: pkg=" + packageName + " user=" + userId);
+        }
         // Queue up an async operation since the package deletion may take a little while.
         mHandler.post(new Runnable() {
             public void run() {
@@ -11032,7 +11034,7 @@
                         false, //installed
                         true,  //stopped
                         true,  //notLaunched
-                        false, //blocked
+                        false, //hidden
                         null, null, null,
                         false // blockUninstall
                         );
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index e164f5f..e29332c 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -281,12 +281,12 @@
         modifyUserState(userId).notLaunched = stop;
     }
 
-    boolean getBlocked(int userId) {
-        return readUserState(userId).blocked;
+    boolean getHidden(int userId) {
+        return readUserState(userId).hidden;
     }
 
-    void setBlocked(boolean blocked, int userId) {
-        modifyUserState(userId).blocked = blocked;
+    void setHidden(boolean hidden, int userId) {
+        modifyUserState(userId).hidden = hidden;
     }
 
     boolean getBlockUninstall(int userId) {
@@ -298,7 +298,7 @@
     }
 
     void setUserState(int userId, int enabled, boolean installed, boolean stopped,
-            boolean notLaunched, boolean blocked,
+            boolean notLaunched, boolean hidden,
             String lastDisableAppCaller, HashSet<String> enabledComponents,
             HashSet<String> disabledComponents, boolean blockUninstall) {
         PackageUserState state = modifyUserState(userId);
@@ -306,7 +306,7 @@
         state.installed = installed;
         state.stopped = stopped;
         state.notLaunched = notLaunched;
-        state.blocked = blocked;
+        state.hidden = hidden;
         state.lastDisableAppCaller = lastDisableAppCaller;
         state.enabledComponents = enabledComponents;
         state.disabledComponents = disabledComponents;
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index e16894e..d1ea3e1 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -153,7 +153,10 @@
     private static final String ATTR_ENABLED = "enabled";
     private static final String ATTR_ENABLED_CALLER = "enabledCaller";
     private static final String ATTR_STOPPED = "stopped";
+    // Legacy, here for reading older versions of the package-restrictions.
     private static final String ATTR_BLOCKED = "blocked";
+    // New name for the above attribute.
+    private static final String ATTR_HIDDEN = "hidden";
     private static final String ATTR_INSTALLED = "inst";
     private static final String ATTR_BLOCK_UNINSTALL = "blockUninstall";
 
@@ -606,7 +609,7 @@
                                     installed,
                                     true, // stopped,
                                     true, // notLaunched
-                                    false, // blocked
+                                    false, // hidden
                                     null, null, null,
                                     false // blockUninstall
                                     );
@@ -1177,7 +1180,7 @@
                                 true,   // installed
                                 false,  // stopped
                                 false,  // notLaunched
-                                false,  // blocked
+                                false,  // hidden
                                 null, null, null,
                                 false // blockUninstall
                                 );
@@ -1233,9 +1236,14 @@
                     final String stoppedStr = parser.getAttributeValue(null, ATTR_STOPPED);
                     final boolean stopped = stoppedStr == null
                             ? false : Boolean.parseBoolean(stoppedStr);
+                    // For backwards compatibility with the previous name of "blocked", which
+                    // now means hidden, read the old attribute as well.
                     final String blockedStr = parser.getAttributeValue(null, ATTR_BLOCKED);
-                    final boolean blocked = blockedStr == null
+                    boolean hidden = blockedStr == null
                             ? false : Boolean.parseBoolean(blockedStr);
+                    final String hiddenStr = parser.getAttributeValue(null, ATTR_HIDDEN);
+                    hidden = hiddenStr == null
+                            ? hidden : Boolean.parseBoolean(hiddenStr);
                     final String notLaunchedStr = parser.getAttributeValue(null, ATTR_NOT_LAUNCHED);
                     final boolean notLaunched = stoppedStr == null
                             ? false : Boolean.parseBoolean(notLaunchedStr);
@@ -1263,7 +1271,7 @@
                         }
                     }
 
-                    ps.setUserState(userId, enabled, installed, stopped, notLaunched, blocked,
+                    ps.setUserState(userId, enabled, installed, stopped, notLaunched, hidden,
                             enabledCaller, enabledComponents, disabledComponents, blockUninstall);
                 } else if (tagName.equals("preferred-activities")) {
                     readPreferredActivitiesLPw(parser, userId);
@@ -1432,7 +1440,7 @@
                 PackageUserState ustate = pkg.readUserState(userId);
                 if (ustate.stopped || ustate.notLaunched || !ustate.installed
                         || ustate.enabled != COMPONENT_ENABLED_STATE_DEFAULT
-                        || ustate.blocked
+                        || ustate.hidden
                         || (ustate.enabledComponents != null
                                 && ustate.enabledComponents.size() > 0)
                         || (ustate.disabledComponents != null
@@ -1451,8 +1459,8 @@
                     if (ustate.notLaunched) {
                         serializer.attribute(null, ATTR_NOT_LAUNCHED, "true");
                     }
-                    if (ustate.blocked) {
-                        serializer.attribute(null, ATTR_BLOCKED, "true");
+                    if (ustate.hidden) {
+                        serializer.attribute(null, ATTR_HIDDEN, "true");
                     }
                     if (ustate.blockUninstall) {
                         serializer.attribute(null, ATTR_BLOCK_UNINSTALL, "true");
@@ -3443,7 +3451,7 @@
                 pw.print(user.id);
                 pw.print(",");
                 pw.print(ps.getInstalled(user.id) ? "I" : "i");
-                pw.print(ps.getBlocked(user.id) ? "B" : "b");
+                pw.print(ps.getHidden(user.id) ? "B" : "b");
                 pw.print(ps.getStopped(user.id) ? "S" : "s");
                 pw.print(ps.getNotLaunched(user.id) ? "l" : "L");
                 pw.print(",");
@@ -3583,8 +3591,8 @@
             pw.print(prefix); pw.print("  User "); pw.print(user.id); pw.print(": ");
             pw.print(" installed=");
             pw.print(ps.getInstalled(user.id));
-            pw.print(" blocked=");
-            pw.print(ps.getBlocked(user.id));
+            pw.print(" hidden=");
+            pw.print(ps.getHidden(user.id));
             pw.print(" stopped=");
             pw.print(ps.getStopped(user.id));
             pw.print(" notLaunched=");
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index b4cc252..33ecc4d 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -1428,7 +1428,7 @@
         removeRestrictionsForUser(userHandle, true);
     }
 
-    private void removeRestrictionsForUser(final int userHandle, boolean unblockApps) {
+    private void removeRestrictionsForUser(final int userHandle, boolean unhideApps) {
         synchronized (mPackagesLock) {
             // Remove all user restrictions
             setUserRestrictions(new Bundle(), userHandle);
@@ -1437,12 +1437,12 @@
             // Remove any app restrictions
             cleanAppRestrictions(userHandle);
         }
-        if (unblockApps) {
-            unblockAllAppsForUser(userHandle);
+        if (unhideApps) {
+            unhideAllInstalledAppsForUser(userHandle);
         }
     }
 
-    private void unblockAllAppsForUser(final int userHandle) {
+    private void unhideAllInstalledAppsForUser(final int userHandle) {
         mHandler.post(new Runnable() {
             @Override
             public void run() {
@@ -1453,8 +1453,8 @@
                 try {
                     for (ApplicationInfo appInfo : apps) {
                         if ((appInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0
-                                && (appInfo.flags & ApplicationInfo.FLAG_BLOCKED) != 0) {
-                            mPm.setApplicationBlockedSettingAsUser(appInfo.packageName, false,
+                                && (appInfo.flags & ApplicationInfo.FLAG_HIDDEN) != 0) {
+                            mPm.setApplicationHiddenSettingAsUser(appInfo.packageName, false,
                                     userHandle);
                         }
                     }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 12ed920..c218d38 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -3708,8 +3708,8 @@
     }
 
     @Override
-    public boolean setApplicationBlocked(ComponentName who, String packageName,
-            boolean blocked) {
+    public boolean setApplicationHidden(ComponentName who, String packageName,
+            boolean hidden) {
         int callingUserId = UserHandle.getCallingUserId();
         synchronized (this) {
             if (who == null) {
@@ -3720,10 +3720,10 @@
             long id = Binder.clearCallingIdentity();
             try {
                 IPackageManager pm = AppGlobals.getPackageManager();
-                return pm.setApplicationBlockedSettingAsUser(packageName, blocked, callingUserId);
+                return pm.setApplicationHiddenSettingAsUser(packageName, hidden, callingUserId);
             } catch (RemoteException re) {
                 // shouldn't happen
-                Slog.e(LOG_TAG, "Failed to setApplicationBlockedSetting", re);
+                Slog.e(LOG_TAG, "Failed to setApplicationHiddenSetting", re);
             } finally {
                 restoreCallingIdentity(id);
             }
@@ -3732,7 +3732,7 @@
     }
 
     @Override
-    public int setApplicationsBlocked(ComponentName who, Intent intent, boolean blocked) {
+    public int setApplicationsHidden(ComponentName who, Intent intent, boolean hidden) {
         int callingUserId = UserHandle.getCallingUserId();
         synchronized (this) {
             if (who == null) {
@@ -3750,20 +3750,20 @@
                         callingUserId);
 
                 if (DBG) Slog.d(LOG_TAG, "Enabling activities: " + activitiesToEnable);
-                int numberOfAppsUnblocked = 0;
+                int numberOfAppsUnhidden = 0;
                 if (activitiesToEnable != null) {
                     for (ResolveInfo info : activitiesToEnable) {
                         if (info.activityInfo != null) {
-                            numberOfAppsUnblocked++;
-                            pm.setApplicationBlockedSettingAsUser(info.activityInfo.packageName,
-                                    blocked, callingUserId);
+                            numberOfAppsUnhidden++;
+                            pm.setApplicationHiddenSettingAsUser(info.activityInfo.packageName,
+                                    hidden, callingUserId);
                         }
                     }
                 }
-                return numberOfAppsUnblocked;
+                return numberOfAppsUnhidden;
             } catch (RemoteException re) {
                 // shouldn't happen
-                Slog.e(LOG_TAG, "Failed to setApplicationsBlockedSettingsWithIntent", re);
+                Slog.e(LOG_TAG, "Failed to setApplicationsHiddenSettingsWithIntent", re);
             } finally {
                 restoreCallingIdentity(id);
             }
@@ -3772,7 +3772,7 @@
     }
 
     @Override
-    public boolean isApplicationBlocked(ComponentName who, String packageName) {
+    public boolean isApplicationHidden(ComponentName who, String packageName) {
         int callingUserId = UserHandle.getCallingUserId();
         synchronized (this) {
             if (who == null) {
@@ -3783,10 +3783,10 @@
             long id = Binder.clearCallingIdentity();
             try {
                 IPackageManager pm = AppGlobals.getPackageManager();
-                return pm.getApplicationBlockedSettingAsUser(packageName, callingUserId);
+                return pm.getApplicationHiddenSettingAsUser(packageName, callingUserId);
             } catch (RemoteException re) {
                 // shouldn't happen
-                Slog.e(LOG_TAG, "Failed to getApplicationBlockedSettingAsUser", re);
+                Slog.e(LOG_TAG, "Failed to getApplicationHiddenSettingAsUser", re);
             } finally {
                 restoreCallingIdentity(id);
             }
diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java
index e388480..36c90f2 100644
--- a/test-runner/src/android/test/mock/MockPackageManager.java
+++ b/test-runner/src/android/test/mock/MockPackageManager.java
@@ -661,7 +661,7 @@
      * @hide
      */
     @Override
-    public boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked,
+    public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden,
             UserHandle user) {
         return false;
     }
@@ -670,7 +670,7 @@
      * @hide
      */
     @Override
-    public boolean getApplicationBlockedSettingAsUser(String packageName, UserHandle user) {
+    public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle user) {
         return false;
     }