서버 소켓 포트 24에 바인딩하려는 안드로이드 서비스가 있습니다. 권한이있는 포트이므로 바인드 예외로 인해 실패하고 있습니다. 이 작업을 수행하기 위해 내가해야 할 일이 궁금합니다. 이 포럼에서이 질문을 여러 번 보았지만 해결 방법은 없습니다.안드로이드에서 1024 미만의 포트에 바인딩하는 방법은 무엇입니까?
이 서비스는 Android에서 실행되는 장치에서 실행됩니다. 우리는 장치에 대한 안드로이드 플랫폼을 구축합니다. 우리에게는 필요한 모든 통제력이 있습니다.
루트로서 실행되는 프로세스 만 포트 24에서 수신 대기 할 수 있습니다. Java 응용 프로그램을 루트로 실행할 수 있습니까? –
동의. 프로세스는 루트 권한으로 실행되거나, 관리자 권한을 가진 사용자 ID로 실행되어야합니다 (Android가 Linux 개념을 지원하는지 확실하지 않음). 일반적으로 장치를 제어하는 경우 Java에서는 데몬을 작성하지 않고 C/C++에서는 데몬을 작성하고 일반 Linux 데몬 지원을 사용하여 데몬을 시작합니다. – CommonsWare
"su ..."권한 상승 방법은 포트에 바인딩하는 옵션이 아닙니다. 쉘 스크립트를 생성하려고하지 않습니다. 모든 안드로이드 애플 리케이션은 기본적으로 접합기에서 분기 된 프로세스이므로, 접합자가 SOMETHING을 기반으로 권한을 높이 지 않으면 바인드 할 수 없습니다. Zygote가 허용하는지 여부는 궁금합니다. 만약 그렇다면, 그게 뭐야? – videoguy