将python USB设备驱动程序修改为仅使用vendor_id和product_id,不包括BCD

时间:2010-03-27 06:16:17

标签: android python usb calibre

我正在尝试修改适用于caliber的Android设备驱动程序(电子书管理程序),以便它仅按供应商ID和产品ID识别设备,并排除BCD。

驱动程序是一个相当简单的python插件,目前设置为使用所有三个数字,但显然,当Android设备使用自定义Android版本(即Nexus One的CyanogenMod)时,它会更改BCD,因此口径停止识别它。

当前代码看起来像这样,有一个简单的供应商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的路线。运行CyanogenMod 5.0.5的我的N1具有BCD 0x226,而不是仅仅将其添加到列表中,我更倾向于从识别过程中消除BCD,因此任何供应商ID为0x18d1且产品ID为0x4e11的设备或0x4e12将被识别。自定义Android rom的变化不足以解决具体问题。

语法似乎需要括号中的BCD。

如何编辑它以使其与该字段中的任何内容匹配?

1 个答案:

答案 0 :(得分:0)

这是一种数据结构,它本身并不“匹配”任何东西。必须在使用该数据结构进行匹配的代码中进行更改。除非匹配代码识别出某种标志,否则你无法对数据结构本身做什么意味着“全部匹配”