Socket IO не работает Android 8.0 из-за SELinux - PullRequest
0 голосов
/ 23 октября 2018

Я получаю сообщение об ошибке при использовании socketIO на Android

W/TcmReceiver: type=1400 audit(0.0:136495): avc: denied { write } for name="tcm" dev="tmpfs" ino=30445 scontext=u:r:untrusted_app:s0:c242,c256,c512,c768 tcontext=u:object_r:dpmtcm_socket:s0 tclass=sock_file permissive=0

Код Android:

socket = IO.socket("http://192.168.0.101:3000");
socket.connect();

После некоторых исследований это, похоже, связано с разрешением доступа с применением SELinuxв Android.Это приводит к тому, что нижележащий сокет в библиотеке SocketIO не может открываться или читать.

Как примечание, у меня включены разрешения доступа в Интернет.Так что это не проблема, кажется,

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Любые решения?

1 Ответ

0 голосов
/ 23 октября 2018

Единственное известное решение - это отключить его или перестроить ПЗУ после того, как приложение добавлено в белый список, чтобы разрешить доступ к «IO.socket» (этот файл белого списка нельзя изменить ПОСЛЕ действия по сборке)

...