我正在尝试修改 calibre(一个电子书管理程序)的 Android 设备驱动程序,以便它仅通过供应商 ID 和产品 ID 识别设备,并且不包括 BCD。
该驱动程序是一个相当简单的 python 插件,目前设置为使用所有三个数字,但显然,当 Android 设备使用自定义 Android 构建(即 Nexus One 的 CyanogenMod)时,它会更改 BCD,因此 calibre 停止识别它。
当前代码看起来像这样,带有一个简单的供应商 ID 列表,然后允许产品 ID 和 BCD 与它们一起使用:
VENDOR_ID = {
0x0bb4 : { 0x0c02 : [0x100], 0x0c01 : [0x100]},
0x22b8 : { 0x41d9 : [0x216]},
0x18d1 : { 0x4e11 : [0x0100], 0x4e12: [0x0100]},
0x04e8 : { 0x681d : [0x0222]},
}
我特别想改变的行是:
0x18d1 : { 0x4e11 : [0x0100], 0x4e12: [0x0100]},
也就是说,用于识别 Nexus One 的行。我的 N1,运行 CyanogenMod 5.0.5,有 BCD 0x226,而不是仅仅将它添加到列表中,我更愿意从识别过程中消除 BCD,以便任何具有供应商 id 0x18d1 和产品 id 0x4e11 的设备或0x4e12 将被识别。自定义 Android rom 的变化不足以让细节变得重要。
语法似乎需要括号中的 BCD。
我如何编辑它以使其匹配该字段中的任何内容?