目前我有简单的隧道C程序(simpletun.c)与Android应用程序集成(JNI,NDK)
但要使这个应用程序运行:需要设置(最好通过程序)Tun接口? (它没有发生)
这样的代码撤回-1(:
int tun_alloc(char *dev, int flags) {
struct ifreq ifr;
int fd, err;
char *clonedev = "/dev/tun";
if( (fd = open(clonedev , O_RDWR)) < 0 ) {
jni_printf("Opening /dev/net/tun fail");
return fd;
}
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_flags = flags;
if (*dev) {
strncpy(ifr.ifr_name, dev, IFNAMSIZ);
}
if( (err = ioctl(fd, TUNSETIFF, (void *)&ifr)) < 0 ) {
jni_printf("ioctl(TUNSETIFF) error");
close(fd);
return err;
}
strcpy(dev, ifr.ifr_name);
return fd;
}
其他信息:
*添加了ADB Shell终端视图 *已经植入Android手机,通过iptables android app安装iptables(iptables 1.4.20)