我有一种情况,我需要启动Android模拟器与特定的IP地址? 我可以开始这样的模拟器?
我不想做IP转发或其他的东西,因为在其上的引导将在启动时使用Android模拟器的IP地址存在本身配置模拟器中运行一个Android程序。
作为默认仿真器的IP地址为10.0.2.15,我需要改变。 此外,该IP在init.goldfish.rc和init.goldfish.sh设置。 如果我改变他们,还是安卓的IP是10.0.2.15。
我有一种情况,我需要启动Android模拟器与特定的IP地址? 我可以开始这样的模拟器?
我不想做IP转发或其他的东西,因为在其上的引导将在启动时使用Android模拟器的IP地址存在本身配置模拟器中运行一个Android程序。
作为默认仿真器的IP地址为10.0.2.15,我需要改变。 此外,该IP在init.goldfish.rc和init.goldfish.sh设置。 如果我改变他们,还是安卓的IP是10.0.2.15。
我通过这种方式进行工作:
在Android模拟器,如果你使用ifconfig然后你会看到桥,为eth0和eth1,因为网络设备。 当桥梁有10.0.2.15 IP和eth0的是上升,但没有任何IP和eth1下跌没有任何的IP。
现在创建你主机上的TAP和桥梁设备,并与你主机上的任何工作以太网卡连接你的TAP设备。
所述TAP设备(TAP1)和桥接(BR1)它以eth0可以按照以下步骤来创建的:
$sudo ip tuntap add dev tap1 mode tap
$sudo ip link show dev tap1
$sudo brctl addbr br1
$sudo brctl addif br1 tap1
$sudo brctl addif br1 eth0
$sudo ip link set eth0 up
$sudo ip link set br1 up
$sudo brctl show
所以现在一旦你的TAP到了,如果你的eth1是连接到任何DHCP服务器,启动DHCP服务器。 一旦DHCP服务器启动后,运行下面的命令模拟器:
$sudo ./emulator -avd <avd_name> -qemu -net nic,vlan=1 -net user,vlan=1,hostname=<hostname_you_want> -net nic,vlan=2,macaddr=<mac_id_of_eth1_of_android_emulator> -net tap,ifname=tap1,script=no,vlan=2
在你的Android模拟器的shell中运行以下命令:
$netcfg
你应该能够看到eth1的下降与IP 0.0.0.0,现在运行以下命令,弹出eth1的:
$netcfg eth1 dhcp
瞧! 你必须从DHCP服务器分配的IP地址eth1的。
让我知道,如果它的工作原理!
现在,如果你有在Android模拟器上的外部服务器的IP地址,将经过主机的eth0的到外部服务器开放端口的任何程序。