私はAndroidサービスをサーバーソケットポート24にバインドしようとしています。それは特権ポートであるため、バインド例外で失敗しています。 私はこの作業をするために何をする必要があるのだろうかと思っています。 これは、このフォーラムで数回尋ねられましたが、解決策はありません。Androidで1024未満のポートにバインドする方法は?
このサービスはAndroid上で動作するデバイス上で動作します。我々は、デバイスのためのアンドロイドプラットフォームを構築する。私たちに必要なすべてのコントロールがあります。
一般的なLinuxの知識に基づいて、ルートとして実行されるプロセスだけがポート24でリッスンすることができます。ルートとしてJavaアプリケーションを実行できますか? –
合意。このプロセスは、root権限で実行する必要があります。または、管理者権限を持つユーザーIDとして実行する必要があります(AndroidがLinuxのコンセプトをサポートしているかどうかは不明です)。通常、デバイスを制御する場合、Javaではデーモンを作成せず、C/C++でデーモンを作成し、通常のLinuxデーモンを使用して起動します。 – CommonsWare
特権を昇格する「su ...」方法は、私がポートにバインドしているのでオプションではありません。私はシェルスクリプトを生成しようとしていません。すべてのアンドロイドアプリは基本的に接合子から分岐したプロセスなので、接合子が何かに基づいて特権を昇格しない限り、バインドすることはできません。私は、接合体が許すかどうか疑問に思っています。もしそうなら、それは何でしょうか? – videoguy