Android监听UEvent事件log应用程序

Android在源码目录:system/extras/tests/uevents/中,实现了可以监听底层UEvent事件上报的程序,其实现如下:
一,源码实现
uevent.c

#include <cutils/uevent.h>
#include <stdio.h>

#define UEVENT_MSG_LEN 1024

int main(int argc, char *argv[])
{
    int device_fd;
    char msg[UEVENT_MSG_LEN+2];
    int n;
    int i;

    device_fd = uevent_open_socket(64*1024, true);
    if(device_fd < 0)
        return -1;

    while ((n = uevent_kernel_multicast_recv(device_fd, msg, UEVENT_MSG_LEN)) > 0) {
        msg[n] = '\0';
        msg[n+1] = '\0';

        for (i = 0; i < n; i++)
            if (msg[i] == '\0')
                msg[i] = ' ';

        printf("%s\n", msg);
    }

    return 0;
}

Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := uevents.c

LOCAL_SHARED_LIBRARIES += libcutils
LOCAL_MODULE:= uevents

LOCAL_MODULE_TAGS := optional

include $(BUILD_EXECUTABLE)

二,使用方式
从Android.mk中,会生成名为”uevents”的应用程序.我们需要执行以下命令:

1,adb push system/bin/uevents  system/bin/uevents

adb shell 并进入system/bin目录:

2,chmod a+x uevents

3,执行uevents应用程序

./events

此后,我们就可以查看uevent事件上报了.

你可能感兴趣的:(源码,uevent)