Как привязать к порту менее 1024 в Android?

У меня есть служба Android, пытающаяся привязываться к порту сокета сервера 24. Поскольку это привилегированный порт, он не работает с исключением привязки. Мне интересно, что мне нужно сделать, чтобы это работало. Я вижу, что это задавали пару раз на этом форуме, но без разрешения.

Эта служба запускается на устройстве, которое работает на Android. Мы строим платформу Android для устройства. У нас есть весь необходимый нам контроль.

Ответ 1

Чтобы привязать к порту менее 1024, вам нужно быть root, и есть два способа сделать это.

  • Системное приложение. Приложение должно быть установлено в папку /system/apps, откуда он должен быть запущен как root. Тем не менее, есть некоторые проблемы с подписями, для которых < > доступна <. Распространение также является проблемой с системными приложениями.

  • su binary: двоичный код su можно вызвать с помощью простого exec("su -c [command]"). Но вещи легче сказать, чем сделать. Вам нужно запустить андроид-процессы не только с одной командой. Следовательно, существует libsuperuser, который предоставляет вам методы и имеет полноразмерный страница doc.