在4.2.2上使用SELinux的Android USB Host强制关闭我们的应用程序

时间:2013-10-25 09:14:08

标签: android usb samsung-mobile unauthorized selinux

在带有4.2.2的三星Galaxy 4上,我们的应用程序开始出现以下错误(N.B.(在运行4.0.1的galaxy III上运行正常): -

“由于未经授权尝试访问设备中的系统,应用程序已被迫停止。这可能是由于......损害了设备的内核“。

和SEAndroid明星通知“应用程序被迫停止软件的未授权行为。这可能......”

我们的应用程序死了:(

我们在运行4.2.2的三星Galaxy 4上进行了调试,当我们在设备上调用标准的Android USB主机api - UsbManager openDevice()(参见下面的三行代码)时,会发生强制关闭和错误通知我们已经使用了“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的已知问题还是来自三星的最新安全策略更新?有解决方法吗?

来自Android文档的

摘录: - 获得与设备通信的权限 在与USB设备通信之前,您的应用程序必须获得用户的许可。 注意:如果您的应用程序使用意图过滤器在连接时发现USB设备,则在用户允许您的应用程序处理意图时,它会自动获得许可。如果没有,您必须在连接到设备之前在应用程序中明确请求权限。

0 个答案:

没有答案