live patch 例項測試

2021-08-03 08:19:46 字數 1297 閱讀 4515

在fs/proc/cmdline.c 中註冊乙個proc的介面,原始碼如下,

static int cmdline_proc_show(struct seq_file *m, void *v)

static int cmdline_proc_open(struct inode *inode, struct file *file)

static const struct file_operations cmdline_proc_fops = ;

static int __init proc_cmdline_init(void)

fs_initcall(proc_cmdline_init);

通過這個介面可以通過cat /proc/cmdline 來列印傳遞給kernel的命令列引數

kernel 有提供乙個live patch 來替換這個cmdline,這樣你就可以列印任何東西

static int livepatch_cmdline_proc_show(struct seq_file *m, void *v)

static struct klp_func funcs = ,

};static struct klp_object objs = ,

};static struct klp_patch patch = ;

static int livepatch_init(void)

return 0;

}static void livepatch_exit(void)

module_init(livepatch_init);

首先insmod 這個ko

insmod livepatch-sample.ko

然後使能live patch

echo 0 > /sys/kernel/livepatch/livepatch_sample/enabled

再通過cat /proc/cmdline就可以看到自己定義的字串

cat /proc/cmdline

live patch的原理比較簡單,本例子就是在kernel中找到cmdline_proc_show後,然後用新的函式livepatch_cmdline_proc_show來替換cmdline_proc_show,這樣你通過cat /proc/cmdline 的時候就不是呼叫預設的cmdline_proc_show而是呼叫livepatch_cmdline_proc_show。使用live patch有個限制條件的即使要找的symbol必須在system.map中有定義。

system.map:10604:ffff0000082cd294 t cmdline_proc_show

Monkey測試例項

monkey是android中的乙個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流 如按鍵輸入 觸控螢幕輸入 手勢輸入等 實現對正在開發的應用程式進行壓力測試。monkey測試是一種為了測試軟體的穩定性 健壯性的快速有效的方法。1,環境檢查 先檢查電腦adb有沒有,在執...

Monkey例項測試

windows下 注 2 4步是為了檢視我們可以測試哪些應用程式包,可省略 1 通過eclipse啟動乙個android的emulator或者2 2 在命令列中輸入 adb devices檢視裝置連線情況 cmd開啟輸入adb devices檢視裝置 3 在有裝置連線的前提下,在命令列中輸入 adb...

Monkey例項測試

windows下 注 2 4步是為了檢視我們可以測試哪些應用程式包,可省略 1 通過eclipse啟動乙個android的emulator或者2 2 在命令列中輸入 adb devices檢視裝置連線情況 cmd開啟輸入adb devices檢視裝置 3 在有裝置連線的前提下,在命令列中輸入 adb...