我正在开发一个安全模块,我想从可加载内核模块 (LKM) 启动一个活动,以便在用户尝试访问某些安全内容时对其进行身份验证。
我曾在 Android 上工作过,我也曾在 Linux 桌面上工作过,但我不知道如何从 Android 的内核空间启动活动?
我正在开发一个安全模块,我想从可加载内核模块 (LKM) 启动一个活动,以便在用户尝试访问某些安全内容时对其进行身份验证。
我曾在 Android 上工作过,我也曾在 Linux 桌面上工作过,但我不知道如何从 Android 的内核空间启动活动?
您可以从您的 lkm 执行 /system/bin 中的“am”可执行文件(活动管理器)。
adb shell am start -a android.intent.action.MAIN -n com.android.mms/.ui.ConversationList
从 lkm 内部执行此操作的方法是使用内核函数“call_usermodehelper”
例子:
#include <linux/kmod.h>
char *argv[] = { "/system/bin/am", "start", "-a", "android.intent.action.MAIN",
"-n", "com.android.mms/.ui.ConversationList", NULL};
static char *envp[] = {
"HOME=/",
"PATH=/sbin:/system/sbin:/system/bin:/system/xbin", NULL };
call_usermodehelper (argv[0], argv, envp, 1);