Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0769e550 authored by Colin Cross's avatar Colin Cross Committed by Colin Cross
Browse files

android.os.Process: add killProcessGroup

Add Process.killProcessGroup to interface between ActivityManager and
libprocessgroup.

Bug: 15313911
Change-Id: I5226a6d86153b863e30d936cf1c84e256f0d7ea5
parent cd22c3ec
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -1085,4 +1085,18 @@ public class Process {
         */
        public boolean usingWrapper;
    }

    /**
     * Kill all processes in a process group started for the given
     * pid.
     * @hide
     */
    public static final native int killProcessGroup(int uid, int pid);

    /**
     * Remove all process groups.  Expected to be called when ActivityManager
     * is restarted.
     * @hide
     */
    public static final native void removeAllProcessGroups();
}
+2 −1
Original line number Diff line number Diff line
@@ -242,7 +242,8 @@ LOCAL_SHARED_LIBRARIES := \
	libnetd_client \
	libsoundtrigger \
	libminikin \
	libstlport
	libstlport \
	libprocessgroup \

ifeq ($(USE_OPENGL_RENDERER),true)
	LOCAL_SHARED_LIBRARIES += libhwui
+13 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <cutils/sched_policy.h>
#include <utils/String8.h>
#include <utils/Vector.h>
#include <processgroup/processgroup.h>

#include <android_runtime/AndroidRuntime.h>

@@ -1002,6 +1003,16 @@ jintArray android_os_Process_getPidsForCommands(JNIEnv* env, jobject clazz,
    return pidArray;
}

jint android_os_Process_killProcessGroup(JNIEnv* env, jobject clazz, jint uid, jint pid)
{
    return killProcessGroup(uid, pid, SIGKILL);
}

void android_os_Process_removeAllProcessGroups(JNIEnv* env, jobject clazz)
{
    return removeAllProcessGroups();
}

static const JNINativeMethod methods[] = {
    {"getUidForName",       "(Ljava/lang/String;)I", (void*)android_os_Process_getUidForName},
    {"getGidForName",       "(Ljava/lang/String;)I", (void*)android_os_Process_getGidForName},
@@ -1029,6 +1040,8 @@ static const JNINativeMethod methods[] = {
    {"getPss", "(I)J", (void*)android_os_Process_getPss},
    {"getPidsForCommands", "([Ljava/lang/String;)[I", (void*)android_os_Process_getPidsForCommands},
    //{"setApplicationObject", "(Landroid/os/IBinder;)V", (void*)android_os_Process_setApplicationObject},
    {"killProcessGroup", "(II)I", (void*)android_os_Process_killProcessGroup},
    {"removeAllProcessGroups", "()V", (void*)android_os_Process_removeAllProcessGroups},
};

const char* const kProcessPathName = "android/os/Process";