为什么是“51-android.rules”

在Linux下进行Android开发,连接Android手机,可能会编辑到/etc/udev/rules.d/51-android.rules文件。

那么,为什么这个文件要命名成51-android.rules,而不是其它的名字呢?

详细的解释要求对udev子系统有一定了解。下面简要介绍一下udev。

udev是Linux下的设备管理器,它支持即插即用,即自动识别新加入到系统中的外部设备,特别是USB设备。

用惯Windows的人可能没有这个意识,因为Windows很早就支持即插即用,加入新设备一直都很方便。

udev的一个特点是,它允许指定一系列响应规则,在它侦测到新设备加入的时侯,执行它们。

udev要求将这些规则存储在/etc/udev/rules.d/目录下的文件中,该文件名必须以.rules结束。

一些系统之中,udev默认的规则存储在/etc/udev/rules.d/50-udev.rules文件中。

udev按照字母排序依次解释这些文件中的规则,因此,如果你希望自己添加的规则在默认规则之后处理,那么文件名开头必须大于50,比如51。

这就是51-android.rules命名的缘由,它希望自己在默认的udev规则之后处理。

另外,简要说一下USB的知识:

一个USB设备由两个ID来标识,Vender ID和Product ID,Vender ID由设备制造商向USB执行论坛申请,Product ID则由设备制造商自行分配。