AOSP のカスタム ビルドがあります (kitkat 4.4 に基づく)。Android の USB Host API を介して arduino ボードを制御しています。CDC-ACM モジュールをサポートするカーネルも実行しています。
新しい hex ファイルをボードにフラッシュできるようにしたいと考えています。私は ArduinoDroid が彼のアプリでこれを行うのを見てきました。avrdude と、CDC-ACM ドライバーを使用して作成された /dev/ttyACM* ファイルを使用してフラッシュできました。
しかし、アプリが arduino ボードと通信する許可を与えると、/dev/ttyACM* ファイルが消えます。AndroidのUSBホストAPIを介して制御しているため、これは理にかなっています。/dev/ttyACM* ファイルを復元する方法、または avrdude が /dev/bus/usb/#/# ファイルを使用して新しい hex ファイルをボードにフラッシュできるようにする方法を探しています。USBManager に revokePermission メソッドがあるようには見えません。
デバイスを閉じても /dev/ttyACM* デバイス ファイルが表示されません。デバイスを閉じるために次のコードを実行しています。
connection.releaseInterface(device.getInterface(1));
connection.close();
私の本当の質問は、USB 接続を解放した後にカーネル ドライバーを元に戻す方法があるということだと思います。
私は AOSP のカスタム ビルドを使用しているため、Google Play がなく、タブレットに ArduinoDroid をインストールできません。ただし、必要に応じてアプリをシステム レベルのアプリとして実行できます。