ベンダーIDと製品IDのみでデバイスを識別し、BCDを除外するように、calibre(電子書籍管理プログラム)用のAndroidデバイスドライバーを変更しようとしています。
ドライバーはかなり単純なPythonプラグインであり、現在3つの数値すべてを使用するように設定されていますが、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]},
つまり、NexusOneを識別するための行です。CyanogenMod5.0.5を実行している私のN1にはBCD0x226があり、リストに追加するだけでなく、認識プロセスからBCDを削除して、ベンダーIDが0x18d1で製品IDが0x4e11のデバイスがあれば0x4e12が認識されます。カスタムAndroidROMは、詳細が重要になるほど十分に変更されていません。
構文では、角かっこで囲まれたBCDが必要なようです。
これを編集して、そのフィールドのすべてに一致させるにはどうすればよいですか?