セキュリティモジュールを開発していますが、ユーザーが安全なコンテンツにアクセスしようとしたときに、ユーザーを認証するためにLoadable Kernel Module(LKM)からアクティビティを開始したいと思います。
私はAndroidで作業し、Linuxデスクトップでも作業しましたが、Androidのカーネルスペースからアクティビティを開始する方法がわかりません。
セキュリティモジュールを開発していますが、ユーザーが安全なコンテンツにアクセスしようとしたときに、ユーザーを認証するためにLoadable Kernel Module(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);