# NetworkGenie ### Setup 1. Open and build the NetworkGenie app in AndroidStudio. 2. Set the debug server IP in the variable at the top of `app/src/main/jni/netguard/debug_conn.c` 3. Open a the debug port (50508) on the debug server: `nc -k -l 50508`. 4. Start the debug server script to log outgoing app packets and test sending bakc packets to leave the Android device: `python3 sniffer.py`. 5. Run the NetworkGenie app. ### Testing 1. NetworkGenie is hardcoded (for testing purposes) to establish the connection to the debug server after handling 10 outgoing packets and begin forwarding all outgoing traffic to the server. 2. Scapy packets should be logged to the debug servers terminal from the python script that is printing the packet info received from the Android. 3. Input "2" or "3" to test crafting packets that will be sent through the debug connection to NetworkGenie and forwarded out the device. 4. Use packet capture to view packets crafted from debug server on the Android: `adb shell` -> `su` -> `tcpdump -i any host 9.9.9.9`. 5. Currently any app that is slid to be "blocked" in the GUI will enable the "ACK spray bypass" where any tcp connection made for that app UID will send 10 extra acks after the 3-way handshake.