2

4.2.2 を搭載した Samsung Galaxy 4 では、アプリで次のエラーが発生し始めました (NB (4.0.1 を実行している Galaxy III では正常に動作します) :-

「お使いのデバイスのシステムに不正にアクセスしようとしたため、アプリケーションが強制的に停止されました。これは、デバイスのカーネルが侵害されたことが原因である可能性があります。」

「ソフトウェアの不正な動作により、アプリケーションが強制的に停止されました。これは..」というSEAndroidスター通知。

そして私たちのアプリは死にます:(

4.2.2 を実行している Samsung Galaxy 4 でこれをデバッグしました。デバイスで標準の Android USB ホスト API - UsbManager openDevice() (以下の 3 行のコードを参照) を呼び出すと、強制終了とエラー通知が発生します。 「android.hardware.usb.action.USB_DEVICE_ATTACHED」インテントによって渡されます。アクティビティにはインテント フィルターが設定されているため、使用する権限があります (この場合の自動許可に関する Android ドキュメントからの抜粋を参照してください)。...

UsbDevice usbdevice  =  (UsbDevice) getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE);
UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
mUsbManager.openDevice(usbdevice); //App is force closed by SELinux at this point

これは、SELinux または Samsung の最新のセキュリティ ポリシーの更新に関する既知の問題ですか? 回避策または修正はありますか?

Android ドキュメントから抽出:- デバイスと通信するためのアクセス許可を取得する USB デバイスと通信する前に、アプリケーションはユーザーからアクセス許可を得る必要があります。注: アプリケーションがインテント フィルターを使用して、接続されている USB デバイスを検出する場合、ユーザーがアプリケーションによるインテントの処理を許可すると、自動的にアクセス許可を受け取ります。そうでない場合は、デバイスに接続する前に、アプリケーションで明示的にアクセス許可を要求する必要があります。

4

0 に答える 0