gitextract_jsgxj4af/ ├── .gitignore ├── DEVELOP.md ├── LICENSE ├── README.md ├── app/ │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── genymobile/ │ │ │ └── gnirehtet/ │ │ │ ├── Binary.java │ │ │ ├── CIDR.java │ │ │ ├── Forwarder.java │ │ │ ├── GnirehtetActivity.java │ │ │ ├── GnirehtetService.java │ │ │ ├── IPPacketOutputStream.java │ │ │ ├── InvalidCIDRException.java │ │ │ ├── Net.java │ │ │ ├── Notifier.java │ │ │ ├── PersistentRelayTunnel.java │ │ │ ├── RelayTunnel.java │ │ │ ├── RelayTunnelListener.java │ │ │ ├── RelayTunnelProvider.java │ │ │ ├── Tunnel.java │ │ │ └── VpnConfiguration.java │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_close_24dp.xml │ │ │ ├── ic_report_problem_24dp.xml │ │ │ └── ic_usb_24dp.xml │ │ ├── values/ │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── values-fr/ │ │ └── strings.xml │ └── test/ │ └── java/ │ └── com/ │ └── genymobile/ │ └── gnirehtet/ │ └── TestIPPacketOutputSteam.java ├── build.gradle ├── config/ │ ├── android-checkstyle.gradle │ ├── android-signing.gradle │ ├── checkstyle/ │ │ └── checkstyle.xml │ └── java-checkstyle.gradle ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── relay-java/ │ ├── build.gradle │ ├── scripts/ │ │ ├── gnirehtet │ │ ├── gnirehtet-run.cmd │ │ └── gnirehtet.cmd │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── genymobile/ │ │ └── gnirehtet/ │ │ ├── AdbMonitor.java │ │ ├── CommandLineArguments.java │ │ ├── Main.java │ │ └── relay/ │ │ ├── AbstractConnection.java │ │ ├── Binary.java │ │ ├── Client.java │ │ ├── CloseListener.java │ │ ├── CommandExecutionException.java │ │ ├── Connection.java │ │ ├── ConnectionId.java │ │ ├── DatagramBuffer.java │ │ ├── IPv4Header.java │ │ ├── IPv4Packet.java │ │ ├── IPv4PacketBuffer.java │ │ ├── Log.java │ │ ├── Net.java │ │ ├── PacketSource.java │ │ ├── Packetizer.java │ │ ├── Relay.java │ │ ├── Router.java │ │ ├── SelectionHandler.java │ │ ├── StreamBuffer.java │ │ ├── TCPConnection.java │ │ ├── TCPHeader.java │ │ ├── TransportHeader.java │ │ ├── TunnelServer.java │ │ ├── UDPConnection.java │ │ └── UDPHeader.java │ └── test/ │ └── java/ │ └── com/ │ └── genymobile/ │ └── gnirehtet/ │ ├── AdbMonitorTest.java │ ├── CommandLineArgumentsTest.java │ └── relay/ │ ├── DatagramBufferTest.java │ ├── IPv4HeaderTest.java │ ├── IPv4PacketBufferTest.java │ ├── IPv4PacketTest.java │ ├── InetAddressTest.java │ ├── PacketizerTest.java │ ├── StreamBufferTest.java │ ├── TCPHeaderTest.java │ └── UDPHeaderTest.java ├── relay-rust/ │ ├── .gitignore │ ├── Cargo.toml │ ├── build.gradle │ ├── scripts/ │ │ └── gnirehtet-run.cmd │ └── src/ │ ├── adb_monitor.rs │ ├── cli_args.rs │ ├── execution_error.rs │ ├── lib.rs │ ├── logger.rs │ ├── main.rs │ └── relay/ │ ├── binary.rs │ ├── byte_buffer.rs │ ├── client.rs │ ├── close_listener.rs │ ├── connection.rs │ ├── datagram.rs │ ├── datagram_buffer.rs │ ├── interrupt.rs │ ├── ipv4_header.rs │ ├── ipv4_packet.rs │ ├── ipv4_packet_buffer.rs │ ├── mod.rs │ ├── net.rs │ ├── packet_source.rs │ ├── packetizer.rs │ ├── relay.rs │ ├── router.rs │ ├── selector.rs │ ├── stream_buffer.rs │ ├── tcp_connection.rs │ ├── tcp_header.rs │ ├── transport_header.rs │ ├── tunnel_server.rs │ ├── udp_connection.rs │ └── udp_header.rs ├── release └── settings.gradle