2011年8月25日木曜日

Mac OS X LionからN-06C Mediasにadbで接続する方法

Snow Leopardでは特に何もせずにadbで接続できていた
Mediasが、Lionにしたとたんに急にadbでつなぐことができなく
なってしまったので、Lion対応Medias用USBドライバ(もどき)の
カーネルエクステンションを作ってみました。

※2012/03/01 変更
めんどいので、とりあえず
http://8kpx.com/android/archive/download.php
からダウンロードしてください。

で、ちゃんと使えたらカンパください。
オプション



このカーネルエクステンションを解凍して
/System/Library/Extensions/
以下に配置し、ターミナルから

$sudo chown -R root:wheel /System/Library/Extensions/N06CADBDriver.kext
$sudo kextload /System/Library/Extensions/N06CADBDriver.kext

と実行すると、Snow Leopardと同じようにMediasがadbから繋がる
ようになります。ちょーべんり。

/System/Library/Extensionsをいじるのは、あっさりカーネルパニックになったりするので、
自己責任で導入してください。


-------以下詳細---------
この問題の原因は、MediasのUSBデスクリプタのbDeviceClassが、本来0のはずが、2になっており、
正しいドライバが読み込めなくなってしまっていたことでした。

なので、このカーネルエクステンションでは、bDeviceClassが2でかつデバイスがMediasの場合に、
本来のドライバ(IOUSBCompositeDriver)を読み込むという設定をしております。(実際にはplistに書いただけ)

デバイスの判定には、具体的にはidProduct, idVendorという二つのパラメータを利用しており、
この値を書き換えることで、Medias以外のデバイスで、同様の問題が発生した場合にも対応可能です。