2014-11-24 44 views
2

我想執行insmod abc.ko幾個模塊參數, 但是,這些模塊參數需要動態計算。因此,我啓動了一個app/system/bin/my_app來計算這些參數,然後在my_app中執行insmod。insmod在android lollipop與SE Linux強制執行

問題: 當my_app應用是在啓動時使用init.hammerhead.rc腳本啓動,這是無法執行insmod和給下面的錯誤

type=1400 audit(0.0.4): avc: denided {sys_module} for path="system/bin/my_app" dev="mmcblk0p25" ino=170 scontext=u:r:init:s0 tcontext=u:r:init.s0 tclass=file 

我怎樣才能使程序my_app能夠用insmod?

希望任何指針來解析對insmod一個模塊與運行的代碼do_insmod的權限()連接的本

+0

應用程序無法插入模塊 - 您需要一個setuid幫助程序來完成此操作。從理論上講,你可以運行參數傳遞。 – 2014-11-24 13:14:46

回答

2

終於找到了解決辦法。 應該爲my_app提供允許它執行insmod的新策略。

[1]在///sepolicy/my_app.te中創建my_app.te [2]將以下策略添加到my_app.te中。

type my_app, domain; 
type my_app_exec, exec_type, file_type; 

allow my_app self:capability sys_module; 
allow my_app self:capability { setuid setgid }; 
allow my_app self:capability sys_admin; 
allow my_app shell_exec:file rx_file_perms;; 
init_daemon_domain(my_app) 

permissive_or_unconfined(my_app) 

[3] my_app.te添加到BOARD_SEPOLICY_UNION在BoardConfig.mk文件。 [4]添加以下內容sepolicy/file_contexts

/系統/斌/ my_app應用U:object_r:my_app_exec:S0

如需進一步信息或問題:訂閱[email protected]