Initial commit: Xuper VPN Launcher source code
This commit is contained in:
28
.env
Normal file
28
.env
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Smart DNS Environment Configuration
|
||||||
|
|
||||||
|
# Timezone
|
||||||
|
TZ=UTC
|
||||||
|
|
||||||
|
# VPS Public IP - Update this with your actual IP
|
||||||
|
VPS_IP=194.163.191.200
|
||||||
|
|
||||||
|
# Domain for DoT endpoint
|
||||||
|
DOMAIN=tv.cbcren.online
|
||||||
|
|
||||||
|
# DNS Configuration
|
||||||
|
DNS_PORT=53
|
||||||
|
DNS_UPSTREAM_TLS=1.1.1.1:853
|
||||||
|
|
||||||
|
# Caddy DoT Configuration
|
||||||
|
CADDY_ADMIN_PORT=2019
|
||||||
|
DOT_PORT=853
|
||||||
|
|
||||||
|
# SNI Proxy Configuration (using alternative ports)
|
||||||
|
SNI_PROXY_HTTP_PORT=8080
|
||||||
|
SNI_PROXY_HTTPS_PORT=8443
|
||||||
|
|
||||||
|
# HTTP for ACME (alternative to port 80)
|
||||||
|
HTTP_PORT=8081
|
||||||
|
|
||||||
|
# Network Configuration
|
||||||
|
DOCKER_SUBNET=172.28.0.0/16
|
||||||
17
.env.example
Normal file
17
.env.example
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# Environment variables for Smart DNS project
|
||||||
|
# Copy this to .env and customize
|
||||||
|
|
||||||
|
# Email for Let's Encrypt notifications
|
||||||
|
CADDY_EMAIL=admin@cbcren.online
|
||||||
|
|
||||||
|
# Domain for DoT service
|
||||||
|
DOT_DOMAIN=tv.dns.cbcren.online
|
||||||
|
|
||||||
|
# Upstream DNS servers (comma separated)
|
||||||
|
UPSTREAM_DNS=8.8.8.8,8.8.4.4,1.1.1.1
|
||||||
|
|
||||||
|
# DNS cache size for Dnsmasq
|
||||||
|
DNS_CACHE_SIZE=10000
|
||||||
|
|
||||||
|
# Network configuration
|
||||||
|
DNS_SUBNET=172.28.0.0/16
|
||||||
18
.gitignore
vendored
Normal file
18
.gitignore
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
*.iml
|
||||||
|
.gradle
|
||||||
|
/local.properties
|
||||||
|
/.idea/
|
||||||
|
.DS_Store
|
||||||
|
/build
|
||||||
|
/captures
|
||||||
|
.externalNativeBuild
|
||||||
|
.cxx
|
||||||
|
local.properties
|
||||||
|
.vpngate*
|
||||||
|
*.csv
|
||||||
|
*.ovpn
|
||||||
|
*.txt
|
||||||
|
*.conf
|
||||||
|
*.log
|
||||||
|
*.zip
|
||||||
|
android-sdk/
|
||||||
32
README.md
Normal file
32
README.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Xuper Unlocker VPN (Android TV) 📺🔓
|
||||||
|
|
||||||
|
Aplicación simple para Android TV diseñada para eludir geobloqueos de forma inteligente y efímera.
|
||||||
|
|
||||||
|
## 🚀 Funcionalidad
|
||||||
|
|
||||||
|
1. **Conexión Automática:** Al abrir la app, se conecta a un túnel WireGuard preconfigurado (hardcodeado).
|
||||||
|
2. **Temporizador "Minuto de Oro":** Mantiene la conexión activa durante 60 segundos.
|
||||||
|
* Tiempo suficiente para abrir apps de streaming (XuperTV) y pasar la verificación de región/login.
|
||||||
|
3. **Autodestrucción:** Pasado el minuto, la VPN se desconecta automáticamente.
|
||||||
|
* Esto permite que el flujo de video pesado viaje por la conexión directa de internet (máxima velocidad, sin saturar el túnel).
|
||||||
|
|
||||||
|
## 🛠️ Compilación
|
||||||
|
|
||||||
|
Este proyecto usa **Gradle** y requiere el **Android SDK 33**.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Configurar SDK
|
||||||
|
export ANDROID_HOME=/path/to/sdk
|
||||||
|
|
||||||
|
# Compilar APK de depuración
|
||||||
|
./gradlew assembleDebug
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Configuración WireGuard
|
||||||
|
|
||||||
|
Las claves y el endpoint están definidos en `MainActivity.java`.
|
||||||
|
Para producción, se recomienda moverlos a `local.properties` o usar variables de entorno.
|
||||||
|
|
||||||
|
## 📦 Instalación
|
||||||
|
|
||||||
|
Descarga el APK desde la sección de **Releases** e instálalo en tu Android TV / Google TV usando Downloader o ADB.
|
||||||
30
app/build.gradle
Normal file
30
app/build.gradle
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
plugins {
|
||||||
|
id 'com.android.application'
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace 'com.cbcren.vpn'
|
||||||
|
compileSdkVersion 33
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId "com.cbcren.vpn"
|
||||||
|
minSdkVersion 24
|
||||||
|
targetSdkVersion 33
|
||||||
|
versionCode 1
|
||||||
|
versionName "1.0"
|
||||||
|
// Multidex necesario para librerías grandes
|
||||||
|
multiDexEnabled true
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
// Versiones más antiguas y estables
|
||||||
|
implementation 'androidx.appcompat:appcompat:1.4.0'
|
||||||
|
implementation 'com.google.android.material:material:1.5.0'
|
||||||
|
implementation 'com.wireguard.android:tunnel:1.0.20230706'
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
appMetadataVersion=1.1
|
||||||
|
androidGradlePluginVersion=8.0.0
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "COMPATIBLE_SCREEN_MANIFEST",
|
||||||
|
"kind": "Directory"
|
||||||
|
},
|
||||||
|
"applicationId": "com.cbcren.vpn",
|
||||||
|
"variantName": "debug",
|
||||||
|
"elements": []
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
Normal file
BIN
app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/build/intermediates/dex_archive_input_jar_hashes/debug/out
Normal file
BIN
app/build/intermediates/dex_archive_input_jar_hashes/debug/out
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
3
|
||||||
BIN
app/build/intermediates/global_synthetics_dex/debug/classes.dex
Normal file
BIN
app/build/intermediates/global_synthetics_dex/debug/classes.dex
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
#Mon Feb 09 22:15:45 CET 2026
|
||||||
|
com.cbcren.vpn.app-main-26\:/drawable/ic_launcher_foreground.xml=/home/ren/androidtv/app/build/intermediates/merged_res/debug/drawable_ic_launcher_foreground.xml.flat
|
||||||
|
com.cbcren.vpn.app-main-26\:/layout/activity_main.xml=/home/ren/androidtv/app/build/intermediates/merged_res/debug/layout_activity_main.xml.flat
|
||||||
|
com.cbcren.vpn.app-main-26\:/mipmap-anydpi-v26/ic_launcher.xml=/home/ren/androidtv/app/build/intermediates/merged_res/debug/mipmap-anydpi-v26_ic_launcher.xml.flat
|
||||||
11636
app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
Normal file
11636
app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,4 @@
|
|||||||
|
#Mon Feb 09 22:15:46 CET 2026
|
||||||
|
com.cbcren.vpn.app-main-5\:/drawable/ic_launcher_foreground.xml=/home/ren/androidtv/app/build/intermediates/packaged_res/debug/drawable/ic_launcher_foreground.xml
|
||||||
|
com.cbcren.vpn.app-main-5\:/layout/activity_main.xml=/home/ren/androidtv/app/build/intermediates/packaged_res/debug/layout/activity_main.xml
|
||||||
|
com.cbcren.vpn.app-main-5\:/mipmap-anydpi-v26/ic_launcher.xml=/home/ren/androidtv/app/build/intermediates/packaged_res/debug/mipmap-anydpi-v26/ic_launcher.xml
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/main/res"><file name="activity_main" path="/home/ren/androidtv/app/src/main/res/layout/activity_main.xml" qualifiers="" type="layout"/><file name="ic_launcher_foreground" path="/home/ren/androidtv/app/src/main/res/drawable/ic_launcher_foreground.xml" qualifiers="" type="drawable"/><file name="ic_launcher" path="/home/ren/androidtv/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" qualifiers="anydpi-v26" type="mipmap"/></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/main/assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/build/intermediates/shader_assets/debug/out"/></dataSet></merger>
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/debug/jniLibs"/></dataSet></merger>
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/home/ren/androidtv/app/src/debug/shaders"/></dataSet></merger>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/build/intermediates/merged_java_res/debug/base.jar
Normal file
BIN
app/build/intermediates/merged_java_res/debug/base.jar
Normal file
Binary file not shown.
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.cbcren.vpn"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="24"
|
||||||
|
android:targetSdkVersion="33" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
|
<!-- Declarar soporte para TV (Leanback) -->
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.software.leanback"
|
||||||
|
android:required="false" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.touchscreen"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||||
|
android:debuggable="true"
|
||||||
|
android:extractNativeLibs="false"
|
||||||
|
android:label="Xuper VPN"
|
||||||
|
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar" >
|
||||||
|
<activity
|
||||||
|
android:name="com.cbcren.vpn.MainActivity"
|
||||||
|
android:exported="true" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="com.wireguard.android.backend.GoBackend$VpnService"
|
||||||
|
android:exported="false"
|
||||||
|
android:permission="android.permission.BIND_VPN_SERVICE" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.net.VpnService" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="androidx.startup.InitializationProvider"
|
||||||
|
android:authorities="com.cbcren.vpn.androidx-startup"
|
||||||
|
android:exported="false" >
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
</provider>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.cbcren.vpn"
|
||||||
|
android:versionCode="1"
|
||||||
|
android:versionName="1.0" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="24"
|
||||||
|
android:targetSdkVersion="33" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
|
<!-- Declarar soporte para TV (Leanback) -->
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.software.leanback"
|
||||||
|
android:required="false" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.touchscreen"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||||
|
android:debuggable="true"
|
||||||
|
android:extractNativeLibs="false"
|
||||||
|
android:label="Xuper VPN"
|
||||||
|
android:theme="@style/Theme.MaterialComponents.Light.NoActionBar" >
|
||||||
|
<activity
|
||||||
|
android:name="com.cbcren.vpn.MainActivity"
|
||||||
|
android:exported="true" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="com.wireguard.android.backend.GoBackend$VpnService"
|
||||||
|
android:exported="false"
|
||||||
|
android:permission="android.permission.BIND_VPN_SERVICE" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.net.VpnService" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="androidx.startup.InitializationProvider"
|
||||||
|
android:authorities="com.cbcren.vpn.androidx-startup"
|
||||||
|
android:exported="false" >
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
</provider>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "MERGED_MANIFESTS",
|
||||||
|
"kind": "Directory"
|
||||||
|
},
|
||||||
|
"applicationId": "com.cbcren.vpn",
|
||||||
|
"variantName": "debug",
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"type": "SINGLE",
|
||||||
|
"filters": [],
|
||||||
|
"attributes": [],
|
||||||
|
"versionCode": 1,
|
||||||
|
"versionName": "1.0",
|
||||||
|
"outputFile": "AndroidManifest.xml"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"elementType": "File"
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user