Skip to content

Proxyman VPN on Android Emulator #572

@NghiaTranUIT

Description

@NghiaTranUIT

Description

ProxymanApp/Proxyman#2575

Acceptance Criteria

  • Implement the new UI of Android Emulator

Image

  • Add the UI Setting to allow installing the VPN. Default is ON
  • Run scripts/build.sh in https://github.com/ProxymanApp/Proxyman-Android-VPN to build the APK version on macOS -> Embed it to the Windows/Linux app
  • Improve the bash script to override the certificate & Proxy to Android Emulators, now, it should install the APK in the Override all Emulator mode. I will give you a macOS script on Slack.
  • The bash script should send the SOCKS5 proxy IP and port, so the APK can set the value to the app
  • DO NOT modify the source code of https://github.com/ProxymanApp/Proxyman-Android-VPN, because it's working.
  • When clicking on the Override all Emulator button, make sure we start the SOCK Proxy Server on Windows/Linux app
  • "Revert All Change" button will also uninstall the Proxyman APK

How to test

  1. On Android Emulator, create Android API 30, Google APIs version
  2. Clone this Flutter project https://github.com/ProxymanApp/HTTP-Flutter-Example-App
  3. Start the Flutter on this Android
  4. Try to test the app ->
  • Verify it works first
  1. On Proxyman Windows/Linux -> "Override All Emulators" button, when the script is completedVerify:
  • The Proxyman VPN is installed correctly
  • The VPN app will open (The user doesn't need to click on the app icon to open it, it should open automatically)

Case 1: The Proxyman VPN on Android is OFF

Verify:

  • I can open Google Chrome on Emulators and visit websites, no errors
  • I can open the Flutter app, make GET/POST without errors

Case 2: The Proxyman VPN on Android is ON, Proxy Mode = OFF

Verify:

  • I can open Google Chrome on Emulators and visit websites, no errors
  • I can open the Flutter app, make GET/POST without errors

Case 3: The Proxyman VPN on Android is ON, Proxy Mode = ON

Verify:

  • I can open Google Chrome on Emulators and visit websites, no errors.
  • I can intercept HTTPS from Google Chrome, see Response
  • I can open the Flutter app, make GET/POST without errors
  • I can intercept httpbin.proxyman.app from the Flutter app, see Response

Case 4

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request✅ DoneTicket is resolved

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions