wip
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
#Mon Mar 04 00:45:54 CST 2024
|
||||
#Mon Mar 04 01:08:49 CST 2024
|
||||
base.0=/home/brian/Desktop/vpnhotspotmod/mobile/build/intermediates/dex/freedomDebug/mergeExtDexFreedomDebug/classes.dex
|
||||
base.1=/home/brian/Desktop/vpnhotspotmod/mobile/build/intermediates/dex/freedomDebug/mergeProjectDexFreedomDebug/0/classes.dex
|
||||
base.10=/home/brian/Desktop/vpnhotspotmod/mobile/build/intermediates/desugar_lib_dex/freedomDebug/classes1000.dex
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
repositories {
|
||||
system: GIT
|
||||
local_root_path: "$PROJECT_DIR"
|
||||
revision: "9a33a7d17a7c3c33885aa64c949b314c1bfcb3f8"
|
||||
revision: "c7272190a891ad579733970c31e3d3c45ea64743"
|
||||
}
|
||||
|
||||
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.
@@ -1,2 +1,2 @@
|
||||
94
|
||||
96
|
||||
0
|
||||
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.
@@ -1 +1 @@
|
||||
ä<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>h<EFBFBD><EFBFBD>Ҕ<EFBFBD>y<EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ä<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>h<EFBFBD><EFBFBD>Ҕ<EFBFBD>y<EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD>
|
||||
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.
@@ -1,2 +1,2 @@
|
||||
99
|
||||
101
|
||||
0
|
||||
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.
@@ -1 +1 @@
|
||||
ɠ<EFBFBD>cϫ<EFBFBD>S<EFBFBD>lЉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>}<EFBFBD>z
|
||||
ɠ<EFBFBD>cϫ<EFBFBD>S<EFBFBD>lЉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><EFBFBD>}<EFBFBD>z<EFBFBD>y
|
||||
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.
@@ -1,6 +1,6 @@
|
||||
package hanson.xyz.vpnhotspotmod;
|
||||
|
||||
@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0018\u00002\u00020\u00012\u00020\u0002B\u0005\u00a2\u0006\u0002\u0010\u0003J\u0018\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\u000bH\u0016R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\f"}, d2 = {"Lhanson/xyz/vpnhotspotmod/MyBroadcastReceiver;", "Landroid/content/BroadcastReceiver;", "Lhanson/xyz/vpnhotspotmod/net/TetheringManager$StartTetheringCallback;", "()V", "handler", "Landroid/os/Handler;", "onReceive", "", "context", "Landroid/content/Context;", "intent", "Landroid/content/Intent;", "mobile_freedomDebug"})
|
||||
@kotlin.Metadata(mv = {1, 9, 0}, k = 1, xi = 48, d1 = {"\u00004\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\u0018\u00002\u00020\u00012\u00020\u0002B\u0005\u00a2\u0006\u0002\u0010\u0003J\u0010\u0010\u0006\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\tH\u0002J\u0018\u0010\n\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\u000b\u001a\u00020\fH\u0016J \u0010\r\u001a\u00020\u00072\u0006\u0010\b\u001a\u00020\t2\u0006\u0010\u000e\u001a\u00020\u000f2\u0006\u0010\u0010\u001a\u00020\u000fH\u0002R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0011"}, d2 = {"Lhanson/xyz/vpnhotspotmod/MyBroadcastReceiver;", "Landroid/content/BroadcastReceiver;", "Lhanson/xyz/vpnhotspotmod/net/TetheringManager$StartTetheringCallback;", "()V", "handler", "Landroid/os/Handler;", "createNotificationChannel", "", "context", "Landroid/content/Context;", "onReceive", "intent", "Landroid/content/Intent;", "showNotification", "title", "", "message", "mobile_freedomDebug"})
|
||||
public final class MyBroadcastReceiver extends android.content.BroadcastReceiver implements hanson.xyz.vpnhotspotmod.net.TetheringManager.StartTetheringCallback {
|
||||
@org.jetbrains.annotations.NotNull
|
||||
private final android.os.Handler handler = null;
|
||||
@@ -12,6 +12,12 @@ public final class MyBroadcastReceiver extends android.content.BroadcastReceiver
|
||||
/**
|
||||
* Called when tethering has been successfully started.
|
||||
*/
|
||||
private final void createNotificationChannel(android.content.Context context) {
|
||||
}
|
||||
|
||||
private final void showNotification(android.content.Context context, java.lang.String title, java.lang.String message) {
|
||||
}
|
||||
|
||||
@java.lang.Override
|
||||
public void onReceive(@org.jetbrains.annotations.NotNull
|
||||
android.content.Context context, @org.jetbrains.annotations.NotNull
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -29,6 +29,11 @@ import android.content.Intent
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.net.ConnectivityManager
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.content.BroadcastReceiver
|
||||
import androidx.core.app.NotificationCompat
|
||||
|
||||
// added by hansonxyz
|
||||
|
||||
@@ -61,35 +66,72 @@ class MyBroadcastReceiver : BroadcastReceiver(), TetheringManager.StartTethering
|
||||
// */
|
||||
// override fun onTetheringFailed(error: Int? = null) { }
|
||||
|
||||
private fun createNotificationChannel(context: Context) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
val name = "Tethering Notification"
|
||||
val descriptionText = "Notifications for tethering status"
|
||||
val importance = NotificationManager.IMPORTANCE_DEFAULT
|
||||
val channel = NotificationChannel("TETHERING_STATUS", name, importance).apply {
|
||||
description = descriptionText
|
||||
}
|
||||
val notificationManager: NotificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
notificationManager.createNotificationChannel(channel)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showNotification(context: Context, title: String, message: String) {
|
||||
createNotificationChannel(context)
|
||||
|
||||
val notificationBuilder = NotificationCompat.Builder(context, "TETHERING_STATUS")
|
||||
.setSmallIcon(R.drawable.ic_launcher_foreground)
|
||||
.setContentTitle(title)
|
||||
.setContentText(message)
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||
|
||||
val notificationManager = ContextCompat.getSystemService(context, NotificationManager::class.java)
|
||||
notificationManager?.notify(System.currentTimeMillis().toInt(), notificationBuilder.build())
|
||||
}
|
||||
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
if (intent.action.toString().contains("BT_TETHER_START")) {
|
||||
TetheringManager.startTethering(TetheringManager.TETHERING_BLUETOOTH, false, this)
|
||||
}
|
||||
if (intent.action.toString().contains("BT_TETHER_STOP")) {
|
||||
TetheringManager.stopTethering(TetheringManager.TETHERING_BLUETOOTH)
|
||||
}
|
||||
if (intent.action.toString().contains("WIFI_TETHER_START")) {
|
||||
val config = synchronized(BootReceiver) { BootReceiver.config }
|
||||
if (!(config == null || config.startables.isEmpty())) {
|
||||
for (startable in config.startables.values) startable.start(App.app)
|
||||
when (intent.action) {
|
||||
"BT_TETHER_START" -> {
|
||||
TetheringManager.startTethering(TetheringManager.TETHERING_BLUETOOTH, false, this)
|
||||
}
|
||||
TetheringManager.startTethering(TetheringManager.TETHERING_WIFI, false, this)
|
||||
Toast.makeText(context, "Started tethering", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
if (intent.action.toString().contains("WIFI_TETHER_STOP")) {
|
||||
TetheringManager.stopTethering(TetheringManager.TETHERING_WIFI)
|
||||
}
|
||||
if (intent.action.toString().contains("android.net.conn.TETHER_STATE_CHANGED")) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val tetheredInterfaces = intent.getStringArrayListExtra("tetherArray")
|
||||
Toast.makeText(context, "Tethering interfaces changed", Toast.LENGTH_SHORT).show()
|
||||
tetheredInterfaces?.forEach { iface ->
|
||||
Intent(context, TetheringService::class.java).apply {
|
||||
putExtra(TetheringService.EXTRA_ADD_INTERFACES, arrayOf(iface))
|
||||
context.startForegroundService(this)
|
||||
"BT_TETHER_STOP" -> {
|
||||
TetheringManager.stopTethering(TetheringManager.TETHERING_BLUETOOTH)
|
||||
}
|
||||
"WIFI_TETHER_START" -> {
|
||||
val config = synchronized(BootReceiver) { BootReceiver.config }
|
||||
if (!(config == null || config.startables.isEmpty())) {
|
||||
for (startable in config.startables.values) startable.start(App.app)
|
||||
}
|
||||
TetheringManager.startTethering(TetheringManager.TETHERING_WIFI, false, this)
|
||||
showNotification(context, "Tethering Status", "Wi-Fi tethering started")
|
||||
}
|
||||
"WIFI_TETHER_STOP" -> {
|
||||
TetheringManager.stopTethering(TetheringManager.TETHERING_WIFI)
|
||||
}
|
||||
TetheringManager.ACTION_TETHER_STATE_CHANGED -> {
|
||||
val tetheredInterfaces = intent.getStringArrayListExtra(TetheringManager.EXTRA_ACTIVE_TETHER)
|
||||
val message = if (tetheredInterfaces != null && tetheredInterfaces.isNotEmpty()) {
|
||||
"Tethering interfaces changed. Monitoring service called for ${tetheredInterfaces.joinToString(", ")}"
|
||||
} else {
|
||||
"No active tethering interfaces found"
|
||||
}
|
||||
showNotification(context, "Tethering Status", message)
|
||||
if (tetheredInterfaces != null && tetheredInterfaces.isNotEmpty()) {
|
||||
Toast.makeText(context, "Tethering interfaces changed", Toast.LENGTH_SHORT).show()
|
||||
tetheredInterfaces.forEach { iface ->
|
||||
Intent(context, TetheringService::class.java).apply {
|
||||
putExtra(TetheringService.EXTRA_ADD_INTERFACES, arrayOf(iface))
|
||||
context.startForegroundService(this)
|
||||
}
|
||||
Toast.makeText(context, "Monitoring service called for $iface", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(context, "No active tethering interfaces found", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
Toast.makeText(context, "Monitoring service called for $iface", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ object TetheringManager {
|
||||
* gives a String[] listing all the interfaces currently tethered
|
||||
* (ie, has DHCPv4 support and packets potentially forwarded/NATed)
|
||||
*/
|
||||
private const val EXTRA_ACTIVE_TETHER = "tetherArray"
|
||||
public const val EXTRA_ACTIVE_TETHER = "tetherArray"
|
||||
/**
|
||||
* gives a String[] listing all the interfaces we tried to tether and
|
||||
* failed. Use [getLastTetherError] to find the error code
|
||||
|
||||
Reference in New Issue
Block a user