我想在Android中即时检查和修改TCP数据包。例如,用于构建自定义VPN解决方案:数据加密,序列号修改,保留位操作等。
我认为将需要以下条件:
- 根设备。我想在库存设备上做这样的事情是不可能的。
- 为目标设备的确切内核版本和体系结构编译的内核驱动程序。我想它将用modprobe / insmod加载到内核中。
- 与驱动程序进行交互的特权守护程序。该守护程序将使用IOCTL访问驱动程序,并将公开一个本地TCP套接字,GUI将使用该套接字来发送命令。
- 用于交互的GUI-使用守护程序公开的TCP套接字加载和保存数据和/或配置。
我想象有以下限制:
- 该解决方案将部署在自定义设备上。我想这是不可能的,因为缺少Linux内核稳定的ABI,因此无法以与设备无关的方式实现。 Android project Treble HIDL呢?
- 仅使用Android VpnService类是不可能达到目标的。
注意:
- 许可。我猜想内核驱动程序可能有开源许可证。