Switch from REMOTE_INTENT to the new push messaging, add the required permission.
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index e36eba9..d31b25b 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1840,7 +1840,7 @@
      * @hide
      */
     public static final String ACTION_REMOTE_INTENT =
-            "android.intent.action.REMOTE_INTENT";
+            "com.google.android.pushmessaging.intent.RECEIVE";
 
     /**
      * Broadcast Action: hook for permforming cleanup after a system update.
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 8273dbf..a27d28f 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1227,6 +1227,13 @@
         android:description="@string/permlab_copyProtectedData"
         android:protectionLevel="signature" />
 
+    <!-- Push messaging permission. 
+         @hide Used internally.
+     -->
+    <permission android:name="android.intent.category.MASTER_CLEAR.permission.PUSH_MESSAGE"
+          android:protectionLevel="signature" />
+    <uses-permission android:name="android.intent.category.MASTER_CLEAR.permission.PUSH_MESSAGE"/>
+
     <application android:process="system"
                  android:persistent="true"
                  android:hasCode="false"
@@ -1309,7 +1316,7 @@
                 <action android:name="android.intent.action.MASTER_CLEAR" />
 
                 <!-- MCS always uses REMOTE_INTENT: category=MASTER_CLEAR -->
-                <action android:name="android.intent.action.REMOTE_INTENT" />
+                <action android:name="com.google.android.pushmessaging.intent.RECEIVE" />
                 <category android:name="android.intent.category.MASTER_CLEAR" />
             </intent-filter>
         </receiver>
diff --git a/services/java/com/android/server/MasterClearReceiver.java b/services/java/com/android/server/MasterClearReceiver.java
index ab0eb81..0417e71 100644
--- a/services/java/com/android/server/MasterClearReceiver.java
+++ b/services/java/com/android/server/MasterClearReceiver.java
@@ -30,7 +30,7 @@
     @Override
     public void onReceive(Context context, Intent intent) {
         if (intent.getAction().equals(Intent.ACTION_REMOTE_INTENT)) {
-            if (!intent.getBooleanExtra("android.intent.extra.from_trusted_server", false)) {
+            if (!"google.com".equals(intent.getStringExtra("from"))) {
                 Log.w(TAG, "Ignoring master clear request -- not from trusted server.");
                 return;
             }