Я работаю над разработкой собственной исполняемой службы Android, которая запускается init (я регистрирую ее в init.rc) при загрузке системы. Этот собственный исполняемый файл создает сокет, прослушивающий 0.0.0.0:4615, и должен принимать подключения извне.
ОС Android K; он работает на комплекте разработки, который имеет интерфейс Ethernet для подключения к локальной сети.
Я провел тест, запустив тот же собственный исполняемый файл в оболочке adb, что и root. Он отлично работает - внешний клиент сокета на моем компьютере с Windows может подключиться к собственному исполняемому файлу и успешно отправить/получить сообщение. Когда я запускаю его с помощью init, он успешно прослушивает 0.0.0.0:4615, но клиент внешнего сокета не может подключиться к нему - в соединении отказано.
Фрагмент, который я добавил в init.rc:
service msger-daemon /system/bin/msgerd
class main
Когда «ps» проверил пользователя msgerd, мы обнаружили, что это root.
Пожалуйста, помогите, спасибо!