您好,登錄后才能下訂單哦!
這篇文章主要介紹了Android/Linux系統(tǒng)怎么調(diào)用的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android/Linux系統(tǒng)怎么調(diào)用文章都會有所收獲,下面我們一起來看看吧。
在調(diào)試Android 設(shè)備驅(qū)動時 ,應(yīng)用層總是被各種權(quán)限束縛,這里給出其中一種解決方案。
一 kernel 層修改
drivers/input/fingerprint/zpx_fp_mtk_tee/zpx_fp_mtk_tee.c
#include <linux/syscalls.h> static long zpx_method(long arg) { printk("%s enter,arg=%ld\n",__func__ ,arg); read_all_reg_test(fp_global); return 0; } SYSCALL_DEFINE1(zpx_method,long,arg)//一個形參 { return zpx_method(arg); }
include/linux/syscalls.h
asmlinkage long sys_zpx_method(long arg);
include/uapi/asm-generic/unistd.h
__SYSCALL(__NR_zpx_method, sys_zpx_method)
arch/arm/include/uapi/asm/unistd.h
#define __NR_zpx_method (__NR_SYSCALL_BASE+391)
arch/arm/kernel/calls.S
CALL(sys_zpx_method) .rept syscalls_padding //注釋如下空函數(shù) /* CALL(sys_ni_syscall) */ /*null func*/
arch/arm/include/asm/unistd.h
#define __NR_syscalls (392) // last call +1
二 應(yīng)用層調(diào)用
#include <unistd.h> #include <sys/syscall.h> #include <stdio.h> #define _SYSCALL_zpx_ 391 int main(int argc,char **argv) { syscall(_SYSCALL_zpx_,13); return 0; }
三 結(jié)果
無需任何權(quán)限
k39_bsp:/data/local/tmp $ ls -l total 80 -rwxrwxrwx 1 shell shell 78968 2020-07-20 09:28 driver_test k39_bsp:/data/local/tmp $ ./driver_test k39_bsp:/data/local/tmp $
kernel log
[ 100.325202] (2)[2506:driver_test]zpx_method enter,arg=13 [ 100.325234] (2)[2506:driver_test][zpx] zpx_spi_clk_enable enter [ 100.325249] (2)[2506:driver_test][zpx] zpx_spi_clk_enable finsish [ 100.325469] (2)[2506:driver_test][zpx] [0]=FF [ 100.325483] (2)[2506:driver_test][zpx] [1]=0 [ 100.325490] (2)[2506:driver_test][zpx] [2]=0 [ 100.325497] (2)[2506:driver_test][zpx] [3]=3F [ 100.325503] (2)[2506:driver_test][zpx] [4]=0 [ 100.325510] (2)[2506:driver_test][zpx] [5]=57
關(guān)于“Android/Linux系統(tǒng)怎么調(diào)用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Android/Linux系統(tǒng)怎么調(diào)用”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。