一,前言
在Android系统中,默认情况下,普通应用程序无法绑定到1024以下的端口(即特权端口),这是出于安全考虑而设计的。这种限制是为了防止普通应用程序伪装成系统服务或者使用系统服务的特权端口,从而提高系统的安全性。只有具有足够权限的应用程序(例如系统服务或者root权限)才能绑定到1024以下的端口。
注: 不建议去修改这个端口号, 最好还是apk内部可以去申请其它端口, 这样也会减少一些冲突。
二,平台修改方法
适用于所有Android版本(userdebug和user版本)。
1,Rockchip平台
Android5.1 - Android11:kernel/include/net/sock.h
Android12 + :kernel-5.10/include/net/sock.h
bash
/* Sockets 0-1023 can't be bound to unless you are superuser */
#define PROT_SOCK 1024
2,全志平台
Android4.4 - Android7.1: lichee/linux-3.10/include/net/sock.h
Android10 - Android13: longan/kernel/linux-4.9/include/net/sock.h
bash
/* Sockets 0-1023 can't be bound to unless you are superuser */
#define PROT_SOCK 1024
3,海思平台
Android9.0:device/hisilicon/bigfish/sdk/source/kernel/linux-4.9.y/include/net/sock.h
bash
/* Sockets 0-1023 can't be bound to unless you are superuser */
#define PROT_SOCK 1024
文件中已声明, 0 - 1023 端仅su用户能使用.所以, 修改的方法是把限制的端口号改低或直接改为0。