android 限制adb的訪問目錄

2021-09-08 16:59:19 字數 1217 閱讀 7711

最近有個特殊的要求,engneer版本既要可以adb訪問,且adb有的目錄不能訪問 如/data/目錄。

用傳統的chmod chgrp等無法滿足客戶需求,只能修改核心檔案系統部分。 新增函式,檢查路徑的合法性

主要是修改核心函式do_path_lookup (namei.c):

static  int is_valid_path(char * pathname, char * pname)

; if (pathlength > plength)

for (i=0;i<6;i++)

if(!strcmp(buftemp,pname))

}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)

if (strcmp("adbd", current->real_parent->comm)) // 程序父親的名字

// white list adb 要支援執行需要這些庫的支援,故直接跳過

if(!strncmp("/system/lib",name,strlen("/system/lib")))

// 這裡只是限制/data 和 /system 目錄,直接返回錯誤

// 應用層則認為找不到這個目錄或檔案

if (is_valid_path("data",name))

if (is_valid_path("system",name))

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)

return retval;

}

android通過網路訪問adb

adb支援通過遠端訪問,這樣就可以使用wifi來連線了,而且可以省下usb口來作為他用。具體步驟如下 第一種方法 1.用usb連線手機,終端輸入adb shell.2.在shell中輸入setprop service.adb.tcp.port 5555 3.然後會回到pc shell。輸入adb c...

adb 遠端訪問

相信很多人在android 開發除錯的時候會碰到這樣乙個問題,把手機和電腦通過usb連線上後兩邊都沒有提示.重啟手機和電腦還是有沒有反應 只有充電的指示卻沒有usb連線的提示.這個時候你就會無法進行真機除錯.你可以試試遠端adb除錯的方法.其實啟動遠端adb除錯也很簡單,只需要如下幾個步驟就可以了....

Android的ADB工具使用

adb android debug bridge 是android 提供的乙個通用的除錯工具,借助這個工具,我們可以管理裝置或手機 模擬器 的狀態 還可以進行以下的操作 1 快速更新裝置或手機模擬器中的 如應用或android系統公升級 2 在裝置上執行shell命令 3 管理裝置或手機模擬器上的預...