1. 程式人生 > >Android裝置使用libusb和usb音效卡

Android裝置使用libusb和usb音效卡

由於工作需要,需要在android機上使用usb外接裝置,usb裝置是一個音效卡,首先需要加密認證,然後才使用音效卡功能,加密認證時使用libusb做usb通訊,使用音效卡時,用tinyalsa。全部在jni中完成。

但是被許可權問題折騰了好幾天。由於SELinux安全機制原因,即使在命令列給了usb裝置777的許可權,在jni中仍然沒有操作許可權。下面給出解決辦法:

首先裝置需要有root許可權,

adb shell進入終端

1.設定selinux許可權:
1).在命令列中輸入:
su
getenforce    ##獲取SELinux狀態(permissive,enforcing,disabled)

2).如果不是permissive,
setenforce 0  ##設定SELinux 成為permissive模式

2.在android 應用層獲取root許可權(獲取方法參考上一篇博文)。

首先給libusb操作的usb裝置許可權:

chmod 777 /dev/bus/usb/*/*

chmod 777 /dev/usb/*

然後給usb音效卡裝置許可權:

chmod 777 /dev/snd/*

執行apk時,在彈出的root許可權中確認。