android 限制adb的访问目录
来源:互联网 发布:免费的视频剪辑软件 编辑:程序博客网 时间:2024/06/10 21:15
最近有个特殊的要求,engneer版本既要可以adb访问,且adb有的目录不能访问 如/data/目录。
用传统的chmod chgrp等无法满足客户需求,只能修改内核文件系统部分。 添加函数,检查路径的合法性
主要是修改内核函数do_path_lookup (namei.c):
static int is_valid_path(char * pathname, char * pname){ int plength = strlen(pname); int pathlength = strlen(pathname); int errorno=-1; int i=0; char buf[6][50]={"","/","./","../","../../","../../../"}; if (pathlength > plength) { printk(" pathlength > pname\n"); return 0; } for (i=0;i<6;i++) { printk("i is %d \n",i); strcat(buf[i],pathname); char * buftemp=buf[i]; printk("shit buftemp is %s \n",buftemp); int buftemplength=strlen(buftemp); if ( buftemplength != plength) { continue; } if(!strcmp(buftemp,pname)) { return errorno; } } return 0;}/* Returns 0 and nd will be valid on success; Retuns error, otherwise. */static int do_path_lookup(int dfd, const char *name,unsigned int flags, struct nameidata *nd){ int retval = 0; int errorno=-1; if (strcmp("sh", current->comm)) //当前进程的名字{ goto normal;} if (strcmp("adbd", current->real_parent->comm)) // 进程父亲的名字{ goto normal;} // white list adb 要支持运行需要这些库的支持,故直接跳过 if(!strncmp("/system/lib",name,strlen("/system/lib"))) { goto normal; } // 这里只是限制/data 和 /system 目录,直接返回错误 // 应用层则认为找不到这个目录或文件 if (is_valid_path("data",name)){ return errorno;}if (is_valid_path("system",name)){ return errorno;} normal:retval = path_init(dfd, name, flags, nd);if (!retval)retval = path_walk(name, nd);if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry &&nd->path.dentry->d_inode))audit_inode(name, nd->path.dentry);if (nd->root.mnt) {path_put(&nd->root);nd->root.mnt = NULL;}return retval;}
- android 限制adb的访问目录
- sftp 限制访问目录
- Nginx限制目录访问
- apche限制文件目录访问
- ftp限制访问其他目录
- .htaccess ip 目录访问限制 apache ip限制目录访问 网站目录IP限制访问
- 关于Apache2.4限制目录访问配置的问题
- Apache + php 限制 虚拟目录A访问目录以外的文件
- VSFTP限制某用户只能访问自己的目录
- 解决Android不能访问你的adb
- android socket访问 限制
- nginx指定目录ip访问限制
- solaris10限制用户访问其他目录
- apache2限制外部IP访问某个目录
- FTP 限制用户只访问HOME目录
- 访问限制的问题
- IP的限制访问
- android sdk的tools目录下没有adb工具
- 并查集变形 - 敌人
- 文档在项目管理中的应用
- 黑马程序员:java基本概念
- Android 学习资料收集汇总
- C++库研究笔记——使用assert还是exception?
- android 限制adb的访问目录
- 润乾——查询条件定义举例
- 为什么需要回调函数?
- 将自己的程序永久写入Android的/system/bin的方法
- 用opencv自带的haar方法进行人脸识别并切割
- 查找数组最大最小值
- 做好先期工作,才能有效沟通
- High一下!
- 输出链表中倒数第m个元素