modification to a Golang+Kotlin android app, maybe also a companion android app (optional)

Task details
POSTED
Posted on Jun 18th, 2024
STATUS
Filled
DURATION
Negotiable
VALUE
$200.00 per project (Negotiable)
LOCATION
Remote
TYPE
One Time
Escrow
0.00325 BTC
APPLICATIONS
3
Skills Required
  • Network Administration
  • Front-end Development
  • Full Stack Development
  • Mobile App Development
  • Software Dev, Data & Web - Other

some relatively minor modifications to be made to an open source app that uses Kotlin and Golang

 (https://github.com/WireGuard/wireguard-android yes, the android wireguard client) . 

The nature of the modification is to force wireguard to use UDP SOCKS5 to send VPN traffic through a shadowsocks client launched on same phone 

(already doable by building shadowsocks-rust on the phone and some root trickery (policy routing), but the potential target audience for this solution can't be bothered with modifying android policy routing) 

 wireguard-android has a userspace golang wireguard implementation, which is where I suspect most of modification work will have to take place. Fortunately there are plenty golang implementations of socks5 functions (like https://github.com/txthinking/socks5 ) so the modification more or less amounts to "duct taping" the SOCKS5 functions to golang userspace-wireguard library they app uses, and modifying the app itself (Kotlin) to effectively use and configure the modified WG.

 

One can probably leverage this golang thing to make modification easier https://github.com/txthinking/socks5

 

Optional additional task: companion app with functionality related to the modification (start and agressively keep command-line programs in android, as itself or as root, and restart them if they die, display a notification to make double-plus sure the entire shebang persists) 

These are related but separate tasks (separate estimates for the modified wireguard and the companion "background command runner" app)  

 

Ideally open-sourced and published to github (I can do that myself, but if you want it for your portfolio and have established github presence that's better )


Are you an employer? Post a similar job