Android/Linux 系统调用
程序员文章站
2022-04-16 16:25:30
在调试Android 设备驱动时 ,应用层总是被各种权限束缚,这里给出其中一种解决方案。一 kernel 层修改drivers/input/fingerprint/zpx_fp_mtk_tee/zpx_fp_mtk_tee.cstatic long zpx_method(long arg){printk("%s enter,arg=%ld\n",__func__ ,arg);read_all_reg_test(fp_global);return 0;}...
在调试Android 设备驱动时 ,应用层总是被各种权限束缚,这里给出其中一种解决方案。
一 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 //注释如下空函数
/* CALL(sys_ni_syscall) */ /*null func*/
arch/arm/include/asm/unistd.h
#define __NR_syscalls (392) // last call +1
二 应用层调用
#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;
}
三 结果
无需任何权限
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
本文地址:https://blog.csdn.net/piao3956/article/details/107480886
推荐阅读
-
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
-
android操作系统是什么公司开发的,简述android的发展历史
-
Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
-
Android编程实现保存图片到系统图库的方法示例
-
Android获取系统储存以及内存信息的方法(二)
-
android隐式意图激活自定义界面和系统应用界面的实例
-
android操作系统是什么公司开发的,简述android的发展历史
-
在win和Linux系统中python命令行运行的不同
-
iOS安全防护系列之ptrace反调试与汇编调用系统方法详解
-
两种iOS调用系统发短信的方法