Ho un servizio Android che tenta di collegarsi a una porta socket del server 24. Poiché è una porta privilegiata, non riesce con un'eccezione di bind. Mi chiedo cosa devo fare per farlo funzionare. Vedo che questo è stato chiesto un paio di volte in questo forum, ma senza una risoluzione.Come eseguire il binding a una porta inferiore a 1024 in Android?
Questo servizio viene eseguito su un dispositivo che gira su Android. Costruiamo la piattaforma Android per il dispositivo. Abbiamo tutto il controllo di cui abbiamo bisogno.
In base alla conoscenza generale di Linux, solo i processi eseguiti come root possono essere ascoltati sulla porta 24. È possibile eseguire applicazioni Java come root? –
concordato. Il processo deve essere eseguito come root o forse come ID utente con privilegi di amministratore (non sono sicuro se Android supporti tale concetto di Linux). Di solito, se controlli il dispositivo, non stai scrivendo daemon in Java, ma in C/C++, e inizialo usando il normale supporto del daemon Linux. – CommonsWare
Il modo "su ..." di elevare i privilegi non è un'opzione, poiché sono vincolante per una porta. Non sto cercando di generare uno script di shell. Poiché ogni app per Android è fondamentalmente un processo biforcuta da zigote, a meno che zigote elimini i privilegi basati su QUALCOSA, non è possibile legare. Mi chiedo se lo zigote lo consenta o no. Se lo fa, cos'è QUALCOSA? – videoguy