Los puertos no están reservados por Android (ni por ningún otro SO), sino que son asignado por la IANA para un uso específico . Si un puerto está libre, es decir, no hay ningún proceso conectado o escuchando en él, puede utilizarlo con su programa. Pero esto puede romper la funcionalidad de la aplicación para la que el puerto está reservado. Si no, tendrás que modificar el código fuente y reconstruir todos los programas que estén usando un puerto fijo. No parece lógico y prácticamente posible.
Por ejemplo, el puerto UDP 68 está reservado para clientes DHCP y lo mismo ocurre en Android:
# ss -up
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.1.11:68 192.168.1.1:67 users:(("system_server",pid=4521,fd=249))
Por lo tanto, si desea utilizar este puerto para su programa, tendrá que modificar Código fuente de Android para reemplazar todas las instancias del puerto 68 con algún otro puerto no utilizado y luego reconstruir la ROM.
Sin embargo, es libre de utilizarlo cuando el dispositivo no está conectado a alguna red a través de WiFi o datos móviles, lo que obviamente no tiene mucho sentido. O puedes configurar estática IP, Gateway y DNS para que DHCP ya no sea necesario y el puerto quede libre para otros usos.
Más información: