Merge "Set a flag that indicates a response is pending."
diff --git a/api/current.xml b/api/current.xml
index 00213d6..03e20fa4 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -130694,6 +130694,17 @@
  visibility="public"
 >
 </field>
+<field name="ACTION_DEVICE_INFO_SETTINGS"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.settings.DEVICE_INFO_SETTINGS&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="ACTION_DISPLAY_SETTINGS"
  type="java.lang.String"
  transient="false"
diff --git a/core/java/android/os/IMountService.aidl b/core/java/android/os/IMountService.aidl
index c0c2d03..2124e85 100644
--- a/core/java/android/os/IMountService.aidl
+++ b/core/java/android/os/IMountService.aidl
@@ -99,6 +99,11 @@
     void unmountSecureContainer(String id);
 
     /*
+     * Rename an unmounted secure container.
+     */
+    void renameSecureContainer(String oldId, String newId);
+
+    /*
      * Returns the filesystem path of a mounted secure container.
      */
     String getSecureContainerPath(String id);
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index dc40113..8172ac4 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -450,6 +450,21 @@
     public static final String ACTION_SEARCH_SETTINGS =
         "android.search.action.SEARCH_SETTINGS";
 
+    /**
+     * Activity Action: Show general device information settings (serial
+     * number, software version, phone number, etc.).
+     * <p>
+     * In some cases, a matching Activity may not exist, so ensure you
+     * safeguard against this.
+     * <p>
+     * Input: Nothing.
+     * <p>
+     * Output: Nothing
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_DEVICE_INFO_SETTINGS =
+        "android.settings.DEVICE_INFO_SETTINGS";
+
     // End of Intent actions for Settings
 
     private static final String JID_RESOURCE_PREFIX = "android";
diff --git a/media/sdutils/sdutil.cpp b/media/sdutils/sdutil.cpp
index 322f743..a61cccb 100644
--- a/media/sdutils/sdutil.cpp
+++ b/media/sdutils/sdutil.cpp
@@ -134,6 +134,12 @@
     gMountService->unmountSecureContainer(sId);
 }
 
+static void asec_rename(const char *oldId, const char *newId) {
+    String16 sOldId(oldId);
+    String16 sNewId(newId);
+    gMountService->renameSecureContainer(sOldId, sNewId);
+}
+
 static int asec_path(const char *id) {
     String16 sId(id);
     gMountService->getSecureContainerPath(sId);
@@ -212,7 +218,13 @@
         } else if (!strcmp(argument, "destroy")) {
             return android::asec_destroy(id);
         } else if (!strcmp(argument, "mount")) {
-            return android::asec_mount(id, argv[4], atoi(argv[5]));
+            if (argc == 6)
+                return android::asec_mount(id, argv[4], atoi(argv[5]));
+        } else if (!strcmp(argument, "rename")) {
+            if (argc == 5) {
+                android::asec_rename(id, argv[4]);
+                return 0;
+            }
         } else if (!strcmp(argument, "unmount")) {
             android::asec_unmount(id);
             return 0;
@@ -233,6 +245,7 @@
                     "    sdutil asec destroy <id>\n"
                     "    sdutil asec mount <id> <key> <ownerUid>\n"
                     "    sdutil asec unmount <id>\n"
+                    "    sdutil asec rename <oldId, newId>\n"
                     "    sdutil asec path <id>\n"
                     );
     return -1;
diff --git a/services/java/com/android/server/MountService.java b/services/java/com/android/server/MountService.java
index 0cee31d..353da12 100644
--- a/services/java/com/android/server/MountService.java
+++ b/services/java/com/android/server/MountService.java
@@ -1056,6 +1056,11 @@
         mConnector.doCommand(cmd);
     }
 
+    public void renameSecureContainer(String oldId, String newId) throws IllegalStateException {
+        String cmd = String.format("rename_asec %s %s", oldId, newId);
+        mConnector.doCommand(cmd);
+    }
+
     public String getSecureContainerPath(String id) throws IllegalStateException {
         ArrayList<String> rsp = mConnector.doCommand("asec_path " + id);