From 60ece6456350954bc79bcda506e434c10b87ed18 Mon Sep 17 00:00:00 2001
From: involvex <39644169+involvex@users.noreply.github.com>
Date: Tue, 6 Oct 2026 01:05:14 +0200
Subject: [PATCH 1/5] Changed: Rebrand fork for InVxTermux
Package com.involvex.termux_app.window with sharedUserId
com.involvex.termux_app, display name InVx:Float and Java package
com.invapp.window. Depend on com.invapp:termux-shared/terminal-view
0.203.0 via mavenLocal.
---
README.md | 11 ++++++--
app/build.gradle | 27 +++++++++----------
.../window/FloatingBubbleManager.java | 6 ++---
.../window/TermuxFloatActivity.java | 2 +-
.../window/TermuxFloatApplication.java | 10 +++----
.../window/TermuxFloatPermissionActivity.java | 2 +-
.../window/TermuxFloatService.java | 20 +++++++-------
.../window/TermuxFloatSessionClient.java | 20 +++++++-------
.../window/TermuxFloatView.java | 20 +++++++-------
.../window/TermuxFloatViewClient.java | 14 +++++-----
.../TermuxFloatAppSharedProperties.java | 8 +++---
app/src/main/res/layout/activity_main.xml | 6 ++---
app/src/main/res/values/strings.xml | 6 ++---
build.gradle | 2 +-
14 files changed, 80 insertions(+), 74 deletions(-)
rename app/src/main/java/com/{termux => invapp}/window/FloatingBubbleManager.java (98%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatActivity.java (94%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatApplication.java (81%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatPermissionActivity.java (97%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatService.java (94%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatSessionClient.java (93%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatView.java (96%)
rename app/src/main/java/com/{termux => invapp}/window/TermuxFloatViewClient.java (96%)
rename app/src/main/java/com/{termux => invapp}/window/settings/properties/TermuxFloatAppSharedProperties.java (72%)
diff --git a/README.md b/README.md
index 469ae98..75e8a6f 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,13 @@
-# Termux:Float
+# InVx:Float
-[](https://github.com/termux/termux-float/actions)
+> InVxTermux fork of [termux/termux-float](https://github.com/termux/termux-float).
+> Package `com.involvex.termux_app.window`, `sharedUserId` `com.involvex.termux_app`.
+> Install only alongside same-source InVxTermux APKs (matching test-key signature).
+> Depends on `com.invapp:termux-shared/terminal-view:0.203.0` published locally from
+> [involvex/termux-app](https://github.com/involvex/termux-app) via
+> `./gradlew :terminal-view:publishReleasePublicationToMavenLocal :termux-shared:publishReleasePublicationToMavenLocal`.
+
+[](https://github.com/involvex/termux-float/actions)
[](https://gitter.im/termux/termux)
A [Termux] plugin app to show the terminal in a floating terminal window.
diff --git a/app/build.gradle b/app/build.gradle
index 432ba1f..1b71451 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,14 +1,14 @@
apply plugin: 'com.android.application'
android {
- namespace "com.termux.window"
+ namespace "com.involvex.termux_app.window"
compileSdk project.properties.compileSdkVersion.toInteger()
def appVersionName = System.getenv("TERMUX_FLOAT_APP__BUILD__APP_VERSION_NAME") ?: ""
def apkVersionTag = System.getenv("TERMUX_FLOAT_APP__BUILD__APK_VERSION_TAG") ?: ""
defaultConfig {
- applicationId "com.termux.window"
+ applicationId "com.involvex.termux_app.window"
minSdk project.properties.minSdkVersion.toInteger()
targetSdk project.properties.targetSdkVersion.toInteger()
versionCode 1001
@@ -17,9 +17,9 @@ android {
if (appVersionName) versionName = appVersionName
validateVersionName(versionName)
- manifestPlaceholders.TERMUX_PACKAGE_NAME = "com.termux"
- manifestPlaceholders.TERMUX_APP_NAME = "Termux"
- manifestPlaceholders.TERMUX_FLOAT_APP_NAME = "Termux:Float"
+ manifestPlaceholders.TERMUX_PACKAGE_NAME = "com.involvex.termux_app"
+ manifestPlaceholders.TERMUX_APP_NAME = "InVxTermux"
+ manifestPlaceholders.TERMUX_FLOAT_APP_NAME = "InVx:Float"
}
signingConfigs {
@@ -54,7 +54,7 @@ android {
applicationVariants.all { variant ->
variant.outputs.all { output ->
- outputFileName = new File("termux-float-app_" +
+ outputFileName = new File("invx-float-app_" +
(apkVersionTag ? apkVersionTag : "v" + versionName + "+" + variant.buildType.name) + ".apk")
}
}
@@ -72,14 +72,13 @@ dependencies {
implementation "androidx.annotation:annotation:1.9.1"
- implementation "com.termux.termux-app:termux-shared:8aca6dbbf4"
- implementation "com.termux.termux-app:terminal-view:8aca6dbbf4"
-
- // Use if below libraries are published locally by termux-app with `./gradlew publishReleasePublicationToMavenLocal` and used with `mavenLocal()`.
- // If updates are done, republish there and sync project with gradle files here
- // https://github.com/termux/termux-app/wiki/Termux-Libraries
- //implementation "com.termux:termux-shared:0.118.0"
- //implementation "com.termux:terminal-view:0.118.0"
+ // InVxTermux libraries published locally from involvex/termux-app with:
+ // ./gradlew :terminal-view:publishReleasePublicationToMavenLocal :termux-shared:publishReleasePublicationToMavenLocal
+ // Requires `mavenLocal()` in the root repositories block. Upstream used:
+ // implementation "com.termux.termux-app:termux-shared:8aca6dbbf4"
+ // implementation "com.termux.termux-app:terminal-view:8aca6dbbf4"
+ implementation "com.invapp:termux-shared:0.203.0"
+ implementation "com.invapp:terminal-view:0.203.0"
implementation "com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava"
}
diff --git a/app/src/main/java/com/termux/window/FloatingBubbleManager.java b/app/src/main/java/com/invapp/window/FloatingBubbleManager.java
similarity index 98%
rename from app/src/main/java/com/termux/window/FloatingBubbleManager.java
rename to app/src/main/java/com/invapp/window/FloatingBubbleManager.java
index 31e8e58..5911356 100644
--- a/app/src/main/java/com/termux/window/FloatingBubbleManager.java
+++ b/app/src/main/java/com/invapp/window/FloatingBubbleManager.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.graphics.Outline;
import android.graphics.drawable.Drawable;
@@ -7,8 +7,8 @@
import android.view.ViewOutlineProvider;
import android.view.WindowManager;
-import com.termux.shared.view.ViewUtils;
-import com.termux.view.TerminalView;
+import com.invapp.shared.view.ViewUtils;
+import com.invapp.view.TerminalView;
/**
* Handles displaying our TermuxFloatView as a collapsed bubble and restoring back
diff --git a/app/src/main/java/com/termux/window/TermuxFloatActivity.java b/app/src/main/java/com/invapp/window/TermuxFloatActivity.java
similarity index 94%
rename from app/src/main/java/com/termux/window/TermuxFloatActivity.java
rename to app/src/main/java/com/invapp/window/TermuxFloatActivity.java
index 315d20a..7f2fe79 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatActivity.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatActivity.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.app.Activity;
import android.content.Intent;
diff --git a/app/src/main/java/com/termux/window/TermuxFloatApplication.java b/app/src/main/java/com/invapp/window/TermuxFloatApplication.java
similarity index 81%
rename from app/src/main/java/com/termux/window/TermuxFloatApplication.java
rename to app/src/main/java/com/invapp/window/TermuxFloatApplication.java
index cd55375..a65858e 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatApplication.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatApplication.java
@@ -1,13 +1,13 @@
-package com.termux.window;
+package com.invapp.window;
import android.app.Application;
import android.content.Context;
import android.util.Log;
-import com.termux.shared.logger.Logger;
-import com.termux.shared.termux.TermuxConstants;
-import com.termux.shared.termux.crash.TermuxCrashUtils;
-import com.termux.shared.termux.settings.preferences.TermuxFloatAppSharedPreferences;
+import com.invapp.shared.logger.Logger;
+import com.invapp.shared.termux.TermuxConstants;
+import com.invapp.shared.termux.crash.TermuxCrashUtils;
+import com.invapp.shared.termux.settings.preferences.TermuxFloatAppSharedPreferences;
public class TermuxFloatApplication extends Application {
diff --git a/app/src/main/java/com/termux/window/TermuxFloatPermissionActivity.java b/app/src/main/java/com/invapp/window/TermuxFloatPermissionActivity.java
similarity index 97%
rename from app/src/main/java/com/termux/window/TermuxFloatPermissionActivity.java
rename to app/src/main/java/com/invapp/window/TermuxFloatPermissionActivity.java
index 00736ea..0045039 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatPermissionActivity.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatPermissionActivity.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.annotation.TargetApi;
import android.app.Activity;
diff --git a/app/src/main/java/com/termux/window/TermuxFloatService.java b/app/src/main/java/com/invapp/window/TermuxFloatService.java
similarity index 94%
rename from app/src/main/java/com/termux/window/TermuxFloatService.java
rename to app/src/main/java/com/invapp/window/TermuxFloatService.java
index ee01978..b3df2dc 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatService.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatService.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.annotation.SuppressLint;
import android.app.Notification;
@@ -15,15 +15,15 @@
import android.view.LayoutInflater;
import android.view.View;
-import com.termux.shared.data.IntentUtils;
-import com.termux.shared.logger.Logger;
-import com.termux.shared.notification.NotificationUtils;
-import com.termux.shared.shell.command.ExecutionCommand;
-import com.termux.shared.termux.TermuxConstants;
-import com.termux.shared.termux.TermuxConstants.TERMUX_FLOAT_APP.TERMUX_FLOAT_SERVICE;
-import com.termux.shared.termux.shell.command.environment.TermuxShellEnvironment;
-import com.termux.shared.termux.shell.command.runner.terminal.TermuxSession;
-import com.termux.terminal.TerminalSession;
+import com.invapp.shared.data.IntentUtils;
+import com.invapp.shared.logger.Logger;
+import com.invapp.shared.notification.NotificationUtils;
+import com.invapp.shared.shell.command.ExecutionCommand;
+import com.invapp.shared.termux.TermuxConstants;
+import com.invapp.shared.termux.TermuxConstants.TERMUX_FLOAT_APP.TERMUX_FLOAT_SERVICE;
+import com.invapp.shared.termux.shell.command.environment.TermuxShellEnvironment;
+import com.invapp.shared.termux.shell.command.runner.terminal.TermuxSession;
+import com.invapp.terminal.TerminalSession;
public class TermuxFloatService extends Service {
diff --git a/app/src/main/java/com/termux/window/TermuxFloatSessionClient.java b/app/src/main/java/com/invapp/window/TermuxFloatSessionClient.java
similarity index 93%
rename from app/src/main/java/com/termux/window/TermuxFloatSessionClient.java
rename to app/src/main/java/com/invapp/window/TermuxFloatSessionClient.java
index 135fc4f..3cbfba2 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatSessionClient.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatSessionClient.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -8,14 +8,14 @@
import android.media.SoundPool;
import android.text.TextUtils;
-import com.termux.shared.logger.Logger;
-import com.termux.shared.termux.TermuxConstants;
-import com.termux.shared.termux.settings.properties.TermuxPropertyConstants;
-import com.termux.shared.termux.terminal.TermuxTerminalSessionClientBase;
-import com.termux.shared.termux.terminal.io.BellHandler;
-import com.termux.terminal.TerminalColors;
-import com.termux.terminal.TerminalSession;
-import com.termux.terminal.TextStyle;
+import com.invapp.shared.logger.Logger;
+import com.invapp.shared.termux.TermuxConstants;
+import com.invapp.shared.termux.settings.properties.TermuxPropertyConstants;
+import com.invapp.shared.termux.terminal.TermuxTerminalSessionClientBase;
+import com.invapp.shared.termux.terminal.io.BellHandler;
+import com.invapp.terminal.TerminalColors;
+import com.invapp.terminal.TerminalSession;
+import com.invapp.terminal.TextStyle;
import java.io.File;
import java.io.FileInputStream;
@@ -134,7 +134,7 @@ private synchronized void loadBellSoundPool() {
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION).build()).build();
try {
- mBellSoundId = mBellSoundPool.load(mService, com.termux.shared.R.raw.bell, 1);
+ mBellSoundId = mBellSoundPool.load(mService, com.invapp.shared.R.raw.bell, 1);
} catch (Exception e){
// Catch java.lang.RuntimeException: Unable to resume activity {com.termux/com.termux.app.TermuxActivity}: android.content.res.Resources$NotFoundException: File res/raw/bell.ogg from drawable resource ID
Logger.logStackTraceWithMessage(LOG_TAG, "Failed to load bell sound pool", e);
diff --git a/app/src/main/java/com/termux/window/TermuxFloatView.java b/app/src/main/java/com/invapp/window/TermuxFloatView.java
similarity index 96%
rename from app/src/main/java/com/termux/window/TermuxFloatView.java
rename to app/src/main/java/com/invapp/window/TermuxFloatView.java
index dff9e46..a4e84dd 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatView.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatView.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -17,15 +17,15 @@
import android.widget.Button;
import android.widget.LinearLayout;
-import com.termux.shared.logger.Logger;
-import com.termux.shared.termux.TermuxConstants;
-import com.termux.shared.termux.settings.preferences.TermuxFloatAppSharedPreferences;
-import com.termux.shared.view.KeyboardUtils;
-import com.termux.terminal.TerminalSession;
-import com.termux.terminal.TerminalSessionClient;
-import com.termux.view.TerminalView;
-import com.termux.view.TerminalViewClient;
-import com.termux.window.settings.properties.TermuxFloatAppSharedProperties;
+import com.invapp.shared.logger.Logger;
+import com.invapp.shared.termux.TermuxConstants;
+import com.invapp.shared.termux.settings.preferences.TermuxFloatAppSharedPreferences;
+import com.invapp.shared.view.KeyboardUtils;
+import com.invapp.terminal.TerminalSession;
+import com.invapp.terminal.TerminalSessionClient;
+import com.invapp.view.TerminalView;
+import com.invapp.view.TerminalViewClient;
+import com.invapp.window.settings.properties.TermuxFloatAppSharedProperties;
public class TermuxFloatView extends LinearLayout {
diff --git a/app/src/main/java/com/termux/window/TermuxFloatViewClient.java b/app/src/main/java/com/invapp/window/TermuxFloatViewClient.java
similarity index 96%
rename from app/src/main/java/com/termux/window/TermuxFloatViewClient.java
rename to app/src/main/java/com/invapp/window/TermuxFloatViewClient.java
index ad814ed..5b4840a 100644
--- a/app/src/main/java/com/termux/window/TermuxFloatViewClient.java
+++ b/app/src/main/java/com/invapp/window/TermuxFloatViewClient.java
@@ -1,4 +1,4 @@
-package com.termux.window;
+package com.invapp.window;
import android.content.Context;
import android.media.AudioManager;
@@ -6,11 +6,11 @@
import android.view.KeyEvent;
import android.view.MotionEvent;
-import com.termux.shared.termux.terminal.TermuxTerminalViewClientBase;
-import com.termux.shared.view.KeyboardUtils;
-import com.termux.terminal.KeyHandler;
-import com.termux.terminal.TerminalEmulator;
-import com.termux.terminal.TerminalSession;
+import com.invapp.shared.termux.terminal.TermuxTerminalViewClientBase;
+import com.invapp.shared.view.KeyboardUtils;
+import com.invapp.terminal.KeyHandler;
+import com.invapp.terminal.TerminalEmulator;
+import com.invapp.terminal.TerminalSession;
public class TermuxFloatViewClient extends TermuxTerminalViewClientBase {
@@ -39,7 +39,7 @@ public void initFloatView() {
}
/**
- * Should be called when {@link com.termux.view.TerminalView#mEmulator} is set
+ * Should be called when {@link com.invapp.view.TerminalView#mEmulator} is set
*/
@Override
public void onEmulatorSet() {
diff --git a/app/src/main/java/com/termux/window/settings/properties/TermuxFloatAppSharedProperties.java b/app/src/main/java/com/invapp/window/settings/properties/TermuxFloatAppSharedProperties.java
similarity index 72%
rename from app/src/main/java/com/termux/window/settings/properties/TermuxFloatAppSharedProperties.java
rename to app/src/main/java/com/invapp/window/settings/properties/TermuxFloatAppSharedProperties.java
index 0986af8..315446a 100644
--- a/app/src/main/java/com/termux/window/settings/properties/TermuxFloatAppSharedProperties.java
+++ b/app/src/main/java/com/invapp/window/settings/properties/TermuxFloatAppSharedProperties.java
@@ -1,12 +1,12 @@
-package com.termux.window.settings.properties;
+package com.invapp.window.settings.properties;
import android.content.Context;
import androidx.annotation.NonNull;
-import com.termux.shared.termux.TermuxConstants;
-import com.termux.shared.termux.settings.properties.TermuxPropertyConstants;
-import com.termux.shared.termux.settings.properties.TermuxSharedProperties;
+import com.invapp.shared.termux.TermuxConstants;
+import com.invapp.shared.termux.settings.properties.TermuxPropertyConstants;
+import com.invapp.shared.termux.settings.properties.TermuxSharedProperties;
public class TermuxFloatAppSharedProperties extends TermuxSharedProperties {
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 65b0b10..81f83f7 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,5 +1,5 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8530161..286f0d4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,9 +1,9 @@
-
-
+
+
+
]>
diff --git a/build.gradle b/build.gradle
index 2452b6d..00f7a39 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,7 +13,7 @@ allprojects {
repositories {
mavenCentral()
google()
- //mavenLocal()
+ mavenLocal() // InVxTermux: com.invapp:termux-shared/terminal-view published from involvex/termux-app
maven { url "https://jitpack.io" }
}
}
From 3826927932b8ad01067770c1f3ff77f5b59b40ad Mon Sep 17 00:00:00 2001
From: involvex <39644169+involvex@users.noreply.github.com>
Date: Tue, 6 Oct 2026 01:14:46 +0200
Subject: [PATCH 2/5] Changed: Align toolchain with involvex/termux-app (AGP
9.4.0, Gradle 9.6.0, compileSdk 36)
Use androidComponents.onVariants for APK naming.
---
app/build.gradle | 19 +++++++++++--------
build.gradle | 2 +-
gradle.properties | 2 +-
gradle/wrapper/gradle-wrapper.properties | 2 +-
4 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 1b71451..cde9e62 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,7 +40,6 @@ android {
debug {
signingConfig signingConfigs.debug
- zipAlignEnabled true
}
}
@@ -52,19 +51,23 @@ android {
targetCompatibility JavaVersion.VERSION_11
}
- applicationVariants.all { variant ->
- variant.outputs.all { output ->
- outputFileName = new File("invx-float-app_" +
- (apkVersionTag ? apkVersionTag : "v" + versionName + "+" + variant.buildType.name) + ".apk")
- }
- }
-
packagingOptions {
// Remove terminal-shared JNI libs added via termux-shared dependency
exclude "lib/*/liblocal-socket.so"
}
}
+androidComponents {
+ onVariants(selector().all(), { variant ->
+ def apkVersionTagLocal = System.getenv("TERMUX_FLOAT_APP__BUILD__APK_VERSION_TAG") ?: ""
+ variant.outputs.forEach { output ->
+ def buildTypeName = variant.buildType
+ def apkName = "invx-float-app_" + (apkVersionTagLocal ? apkVersionTagLocal : "v" + android.defaultConfig.versionName + "+" + buildTypeName) + ".apk"
+ output.outputFileName.set(apkName)
+ }
+ })
+}
+
dependencies {
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.5"
diff --git a/build.gradle b/build.gradle
index 00f7a39..cb6a575 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
}
dependencies {
- classpath "com.android.tools.build:gradle:8.7.3"
+ classpath "com.android.tools.build:gradle:9.4.0"
}
}
diff --git a/gradle.properties b/gradle.properties
index bff406b..e3fe40f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,4 +17,4 @@ android.useAndroidX=true
minSdkVersion=24
targetSdkVersion=28
-compileSdkVersion=35
+compileSdkVersion=36
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 2fa91c5..f0f17c3 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
From 3469dfe2f67e8731baf78452e9fc106085c5808f Mon Sep 17 00:00:00 2001
From: involvex <39644169+involvex@users.noreply.github.com>
Date: Tue, 6 Oct 2026 01:15:26 +0200
Subject: [PATCH 3/5] Fixed: Use proguard-android-optimize.txt for AGP 9 compat
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index cde9e62..f052d38 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -35,7 +35,7 @@ android {
release {
minifyEnabled true
shrinkResources false // Reproducible builds
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
From dfa266ba27ca885c78c0cbc6785e2129d8b2cdb2 Mon Sep 17 00:00:00 2001
From: involvex <39644169+involvex@users.noreply.github.com>
Date: Tue, 6 Oct 2026 01:16:25 +0200
Subject: [PATCH 4/5] Fixed: Use namespace com.invapp.window so R resolves in
Java package
---
app/build.gradle | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index f052d38..aa92387 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,7 +1,7 @@
apply plugin: 'com.android.application'
android {
- namespace "com.involvex.termux_app.window"
+ namespace "com.invapp.window"
compileSdk project.properties.compileSdkVersion.toInteger()
def appVersionName = System.getenv("TERMUX_FLOAT_APP__BUILD__APP_VERSION_NAME") ?: ""
From e6429c87e7e97f9c667c6cafafb998dad96ca4db Mon Sep 17 00:00:00 2001
From: involvex <39644169+involvex@users.noreply.github.com>
Date: Tue, 6 Oct 2026 01:17:47 +0200
Subject: [PATCH 5/5] Fixed: Replace extractNativeLibs manifest flag with
useLegacyPackaging for AGP 9
---
app/build.gradle | 3 +++
app/src/main/AndroidManifest.xml | 1 -
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/build.gradle b/app/build.gradle
index aa92387..cf3e6e7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -52,6 +52,9 @@ android {
}
packagingOptions {
+ jniLibs {
+ useLegacyPackaging true
+ }
// Remove terminal-shared JNI libs added via termux-shared dependency
exclude "lib/*/liblocal-socket.so"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b3aed65..2cc2933 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,7 +12,6 @@