0

我正在开发一个安全模块,我想从可加载内核模块 (LKM) 启动一个活动,以便在用户尝试访问某些安全内容时对其进行身份验证。

我曾在 Android 上工作过,我也曾在 Linux 桌面上工作过,但我不知道如何从 Android 的内核空间启动活动?

4

1 回答 1

1

您可以从您的 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);
于 2013-07-05T19:38:30.253 回答