Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 50 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,69 @@

Global Proxy App for Android System

ProxyDroid is distributed under GPLv3 with many other open source software,
ProxyDroid is distributed under GPLv3 with many other open source software,
here is a list of them:

* cntlm - authentication proxy: http://cntlm.sourceforge.net/
* redsocks - transparent socks redirector: http://darkk.net.ru/redsocks/
* tun2socks - VPN-based transparent proxy
* netfilter/iptables - NAT module: http://www.netfilter.org/
* transproxy - transparent proxy for HTTP: http://transproxy.sourceforge.net/
* stunnel - multiplatform SSL tunneling proxy: http://www.stunnel.org/

## TRAVIS CI STATUS
## PREREQUISITES

[![Build Status](https://secure.travis-ci.org/madeye/proxydroid.png)](http://travis-ci.org/madeye/proxydroid)
* JDK 11+
* Android Studio or Gradle 8.1+
* Android SDK (compileSdk 33)
* Android NDK 25.1.8937393
* CMake 3.22.1

[Nightly Builds](http://buildbot.sinaapp.com)
## BUILD

## PREREQUISITES
### Using Android Studio

* JDK 1.6+
* Maven 3.0.5
* Android SDK r17+
* Android NDK r8+
1. Open the project in Android Studio
2. Sync Gradle files
3. Build the project using `Build > Make Project`

* Local Maven Dependencies
### Using Command Line

Use Maven Android SDK Deployer to install all android related dependencies.
```bash
./gradlew assembleDebug
```

```bash
git clone https://github.com/mosabua/maven-android-sdk-deployer.git
pushd maven-android-sdk-deployer
export ANDROID_HOME=/path/to/android/sdk
mvn install -P 4.1
popd
```
For release build:

## BUILD
```bash
./gradlew assembleRelease
```

Invoke the building like this
## PROJECT STRUCTURE

```bash
mvn clean install
```
app/
├── src/main/
│ ├── java/org/proxydroid/ # Kotlin source files
│ │ ├── ProxyDroid.kt # Main activity
│ │ ├── ProxyDroidService.kt
│ │ ├── ProxyDroidVpnService.kt
│ │ ├── AppManager.kt
│ │ ├── Profile.kt
│ │ └── utils/ # Utility classes
│ └── cpp/ # Native code
│ ├── exec/ # Native exec helper
│ ├── libevent/ # libevent library
│ ├── redsocks/ # redsocks proxy
│ └── tun2socks/ # tun2socks VPN helper
└── build.gradle
```

## SUPPORTED ARCHITECTURES

* armeabi-v7a
* arm64-v8a
* x86
* x86_64

## REQUIREMENTS

* Minimum SDK: 21 (Android 5.0)
* Target SDK: 33 (Android 13)
7 changes: 7 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}

android {
Expand Down Expand Up @@ -35,6 +36,10 @@ android {
targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
jvmTarget = '11'
}

externalNativeBuild {
cmake {
version '3.22.1'
Expand All @@ -51,6 +56,8 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.9.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.10.1'
// Exclude JUnit from json-simple (it pulls junit as compile dependency)
implementation('com.googlecode.json-simple:json-simple:1.1.1') {
exclude group: 'junit', module: 'junit'
Expand Down

This file was deleted.

16 changes: 16 additions & 0 deletions app/src/androidTest/java/org/proxydroid/ExampleInstrumentedTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.proxydroid

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*

@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("org.proxydroid", appContext.packageName)
}
}
144 changes: 0 additions & 144 deletions app/src/main/java/com/btr/proxy/selector/pac/PacProxySelector.java

This file was deleted.

Loading