Как привязать к порту менее 1024 в Android? - PullRequest
11 голосов
/ 24 октября 2011

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

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

Ответы [ 2 ]

0 голосов
/ 28 апреля 2014

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

  1. Системное приложение : приложение должнобыть установленным в папку / system / apps, откуда он должен быть запущен от имени пользователя root.Однако есть некоторые проблемы с подписью, для которых справка доступна .Распространение также является проблемой для системных приложений.

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

0 голосов
/ 24 октября 2011

Это очень похожий вопрос: Запускайте безопасные вызовы API от имени root, android , хотя они пытаются запустить от имени root по другой причине.

Это заставило меня задуматься об установке«системные приложения», и я увидел это: https://android.stackexchange.com/questions/27/rooted-how-to-install-a-system-app

...