adb权限不足问题解决

您所在的位置:网站首页 itunes连接手机没有权限 adb权限不足问题解决

adb权限不足问题解决

2024-07-16 06:33| 来源: 网络整理| 查看: 265

解决Ubuntu下adb 显示insufficient permissions for device的问题

用USB线连接设备后抓取log时,在命令行输入:adb root后出现了 error:insufficient permissions for device 这显然是不正常的 我们再在命令行上输入 adb device 出现了:

List of devices attached ???????????? no permissions

这就可以知道了,出问题了,从上面给出的提示翻译成中文是”设备权限不足“,adb devices给出的提示 ”No permission“,所以我们要解决非标设备默认无法被识别的问题。 来看我操作一波:

1、打开文件路径,到/etc/udev/rules.d 下: cd /etc/udev/rules.d2、来到之后在这里创建一个51-android.rules文件: sudo vim 51-android.rules3、然后在文件中添加如下配置: SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"4、保存退出 这时候就只差最后一步5、再为51-android.rules加上权限 sudo chmod a+x 51-android.rules6、最后 将设备拔下来再连接上就可以了,记得回到主目录下再进行 adb root, 如果不放心就adb devices一下看看

以下是扩展部分: 问题是解决了,但跟着这种傻瓜操作我们又能得到什么呢。作为一个热衷学习的人我们应该了解我们为什么这么做。为什么要在这个路径上添加这么个文件;为什么要在这个文件上加上这么一段命令呢;接下来就来探讨以下。

1、为什么在这个路径下 /etc/udev/rules.d 答:/etc/udev/rules.d这个目录存储的是以.rules结束的文件。下面可能有好几个udev规则文件,每一个文件处理一系列规则来帮助udev分配名字给设备文件以保证能被内核识别。 2、为什么输入以上文本 答:规则文件里的规则有一系列的键/值对组成,键/值对之间用逗号(,)分割。每一个键或者是用户匹配键,或者是一个赋值键。匹配键确定规则是否被应用,而赋 值键表示分配某值给该键。这些值将影响udev创建的设备文件。赋值键可以处理一个多值列表。匹配键和赋值键操作符解释见下表:

udev 键/值对操作符

操作符匹配或赋值解释==匹配相等比较!=匹配不等比较=赋值分配一个特定的值给该键,他可以覆盖之前的赋值。+=赋值追加特定的值给已经存在的键:=赋值分配一个特定的值给该键,后面的规则不可能覆盖它。

这有点类似我们常见的编程语言,比如C语言。只是这里的键一次可以处理多个值。有一些键在udev规则文件里经常出现,这些键的值可以使用通配符(*,?,甚至范围,比如[0-9]),这些常用键列举如下:

常用udev键

键含义ACTION一个时间活动的名字,比如add,当设备增加的时候KERNEL在内核里看到的设备名字,比如sd*表示任意SCSI磁盘设备DEVPATH内核设备录进,比如/devices/*SUBSYSTEM子系统名字,比如sound,netBUS总线的名字,比如IDE,USBDRIVER设备驱动的名字,比如ide-cdromID独立于内核名字的设备名字SYSFS{ value}sysfs属性值,他可以表示任意ENV{ key}环境变量,可以表示任意PROGRAM可执行的外部程序,如果程序返回0值,该键则认为为真(true)RESULT上一个PROGRAM调用返回的标准输出。NAME根据这个规则创建的设备文件的文件名。注意:仅仅第一行的NAME描述是有效的,后面的均忽略。 如果你想使用使用两个以上的名字来访问一个设备的话,可以考虑SYMLINK键。SYMLINK根据规则创建的字符连接名OWNER设备文件的属组GROUP设备文件所在的组。MODE设备文件的权限,采用8进制RUN为设备而执行的程序列表LABEL在配置文件里为内部控制而采用的名字标签(下下面的GOTO服务)GOTO跳到匹配的规则(通过LABEL来标识),有点类似程序语言中的GOTOIMPORT{ type}导入一个文件或者一个程序执行后而生成的规则集到当前文件WAIT_FOR_SYSFS等待一个特定的设备文件的创建。主要是用作时序和依赖问题。PTIONS特定的选项: last_rule 对这类设备终端规则执行; ignore_device 忽略当前规则; ignore_remove 忽略接下来的并移走请求。all_partitions 为所有的磁盘分区创建设备文件。

我们输入的文本是:SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666" 所以我们可以知道:子系统名字为”USB“,环境变量为”usb_device“,设备权限为”0666“



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3