Fix issue #3485923: Gmail crash

Allow application to try to recover if a surface OOM error
happens on the client side.

Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index d3d3792..6426635 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -1020,7 +1020,8 @@
             data.enforceInterface(IActivityManager.descriptor);
             int[] pids = data.createIntArray();
             String reason = data.readString();
-            boolean res = killPids(pids, reason);
+            boolean secure = data.readInt() != 0;
+            boolean res = killPids(pids, reason, secure);
             reply.writeNoException();
             reply.writeInt(res ? 1 : 0);
             return true;
@@ -2636,12 +2637,13 @@
         mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0);
         data.recycle();
     }
-    public boolean killPids(int[] pids, String reason) throws RemoteException {
+    public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException {
         Parcel data = Parcel.obtain();
         Parcel reply = Parcel.obtain();
         data.writeInterfaceToken(IActivityManager.descriptor);
         data.writeIntArray(pids);
         data.writeString(reason);
+        data.writeInt(secure ? 1 : 0);
         mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0);
         boolean res = reply.readInt() != 0;
         data.recycle();