Implement Android VPN app for Meshrabiya
User story
As a user type I want an Android VPN app for Meshrabiya so that multiple apps can use the mesh network and any permission requests do not need to be done directly in course apps.
(If work duration will exceed five days, must be broken down into multiple)
Background info on user story
- Google nearby requires Bluetooth permission;
Implementation tasks
Each task max one day
- [ ] Create module lib-meshrabiya-vpn that implements Android VPN
When implementation is complete: developer to attach video showing completion of acceptance criteria
Acceptance criteria
- App is installable on Android and possible to select as a VPN using settings
- All app traffic is routed through the app and Internet still works as normal
- App can filter/examine each packet and determine/log
- Destination IP address and port
- Type of traffic (TCP/UDP)
App is installable on Android and possible to select as a VPN using settings.
https://github.com/user-attachments/assets/09561a8e-c53b-4a25-8614-711d928a1668
Note Ad-Away ( https://f-droid.org/en/packages/org.adaway/ ) is using a similar concept to run Ad-Blocking : it uses the VPN interface, but is not really a VPN.
@Prashant-Android - HttpToolkit might be a better place to start https://httptoolkit.com/blog/inspecting-android-http/
App traffic is routed through the app and Internet still works as normal
https://github.com/user-attachments/assets/c5452341-e160-44a1-b842-28cfe3f35c79
App can filter/examine each packet and determine/log
- Destination IP address and port
- Type of traffic (TCP/UDP)
// Handles packets destined for the virtual network private fun handleVirtualNetworkPacket(buffer: ByteBuffer, length: Int) { logMessage("Handling packet for virtual network") }
https://github.com/user-attachments/assets/f5231a54-803d-4923-b416-a93faf5fbdd1