-#define __nhterm_no_return __attribute__((__noreturn__))
+#define __terminal_no_return __attribute__((__noreturn__))
#define TERMUX_UNUSED(x) x __attribute__((__unused__))
#ifdef __APPLE__
@@ -114,7 +114,7 @@ static int create_subprocess(JNIEnv *env,
}
}
-extern "C" JNIEXPORT jint JNICALL Java_com_offsec_nhterm_backend_JNI_createSubprocess(
+extern "C" JNIEXPORT jint JNICALL Java_com_evolinx_terminal_backend_JNI_createSubprocess(
JNIEnv *env,
jclass TERMUX_UNUSED(clazz),
jstring cmd,
@@ -184,7 +184,7 @@ extern "C" JNIEXPORT jint JNICALL Java_com_offsec_nhterm_backend_JNI_createSubpr
}
extern "C" JNIEXPORT void JNICALL
-Java_com_offsec_nhterm_backend_JNI_setPtyWindowSize(JNIEnv *TERMUX_UNUSED(env),
+Java_com_evolinx_terminal_backend_JNI_setPtyWindowSize(JNIEnv *TERMUX_UNUSED(env),
jclass TERMUX_UNUSED(clazz),
jint fd, jint rows,
jint cols) {
@@ -193,7 +193,7 @@ Java_com_offsec_nhterm_backend_JNI_setPtyWindowSize(JNIEnv *TERMUX_UNUSED(env),
}
extern "C" JNIEXPORT void JNICALL
-Java_com_offsec_nhterm_backend_JNI_setPtyUTF8Mode(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
+Java_com_evolinx_terminal_backend_JNI_setPtyUTF8Mode(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
jint fd) {
struct termios tios;
tcgetattr(fd, &tios);
@@ -204,7 +204,7 @@ Java_com_offsec_nhterm_backend_JNI_setPtyUTF8Mode(JNIEnv *TERMUX_UNUSED(env), jc
}
extern "C" JNIEXPORT int JNICALL
-Java_com_offsec_nhterm_backend_JNI_waitFor(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
+Java_com_evolinx_terminal_backend_JNI_waitFor(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
jint pid) {
int status;
waitpid(pid, &status, 0);
@@ -219,7 +219,7 @@ Java_com_offsec_nhterm_backend_JNI_waitFor(JNIEnv *TERMUX_UNUSED(env), jclass TE
}
extern "C" JNIEXPORT void JNICALL
-Java_com_offsec_nhterm_backend_JNI_close(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
+Java_com_evolinx_terminal_backend_JNI_close(JNIEnv *TERMUX_UNUSED(env), jclass TERMUX_UNUSED(clazz),
jint fileDescriptor) {
close(fileDescriptor);
}
diff --git a/nhterm/src/main/ic_launcher-playstore.png b/terminal/src/main/ic_launcher-playstore.png
similarity index 100%
rename from nhterm/src/main/ic_launcher-playstore.png
rename to terminal/src/main/ic_launcher-playstore.png
diff --git a/nhterm/src/main/java/com/offsec/nhterm/App.kt b/terminal/src/main/java/com/evolinx/terminal/App.kt
similarity index 84%
rename from nhterm/src/main/java/com/offsec/nhterm/App.kt
rename to terminal/src/main/java/com/evolinx/terminal/App.kt
index cae977a..f73e702 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/App.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/App.kt
@@ -1,18 +1,19 @@
-package com.offsec.nhterm
+package com.evolinx.terminal
import android.annotation.SuppressLint
import android.app.Application
import android.content.Context
import android.content.Intent
import android.net.Uri
+import android.util.Log
import android.view.Gravity
import android.widget.Toast
import com.google.android.material.dialog.MaterialAlertDialogBuilder
-import com.offsec.nhterm.component.NeoInitializer
-import com.offsec.nhterm.component.config.NeoPreference
-import com.offsec.nhterm.ui.other.BonusActivity
-import com.offsec.nhterm.utils.CrashHandler
-import com.offsec.nhterm.utils.NeoPermission
+import com.evolinx.terminal.component.NeoInitializer
+import com.evolinx.terminal.component.config.NeoPreference
+import com.evolinx.terminal.component.config.NeoTermPath.BIN_PATH
+import com.evolinx.terminal.ui.other.BonusActivity
+import com.evolinx.terminal.utils.CrashHandler
import com.topjohnwu.superuser.Shell
/**
@@ -23,8 +24,6 @@ class App : Application() {
super.onCreate()
app = this
- Shell.cmd("setenforce 0").exec()
-
NeoPreference.init(this)
CrashHandler.init()
NeoInitializer.init(this)
@@ -63,7 +62,7 @@ class App : Application() {
if (happyCount == trigger / 2) {
@SuppressLint("ShowToast")
val toast = Toast.makeText(this, message, Toast.LENGTH_LONG)
- toast.setGravity(Gravity.CENTER, 0, 0)
+ toast.setGravity(Gravity.BOTTOM, 0, 0)
toast.show()
} else if (happyCount > trigger) {
NeoPreference.store(NeoPreference.KEY_HAPPY_EGG, 0)
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/ByteQueue.java b/terminal/src/main/java/com/evolinx/terminal/backend/ByteQueue.java
similarity index 98%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/ByteQueue.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/ByteQueue.java
index 259986b..3f2e545 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/ByteQueue.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/ByteQueue.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
/**
* A circular byte buffer allowing one producer and one consumer thread.
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/EmulatorDebug.java b/terminal/src/main/java/com/evolinx/terminal/backend/EmulatorDebug.java
similarity index 82%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/EmulatorDebug.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/EmulatorDebug.java
index 53deed5..d4b9c5e 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/EmulatorDebug.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/EmulatorDebug.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import android.util.Log;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/JNI.java b/terminal/src/main/java/com/evolinx/terminal/backend/JNI.java
similarity index 97%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/JNI.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/JNI.java
index 07a393b..cf8f3fc 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/JNI.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/JNI.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
/**
* Native methods for creating and managing pseudoterminal subprocesses. C code is in jni/termux.c.
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java b/terminal/src/main/java/com/evolinx/terminal/backend/KeyHandler.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/KeyHandler.java
index e74e64c..d8a9315 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/KeyHandler.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/KeyHandler.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import java.util.HashMap;
import java.util.Map;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalBuffer.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalBuffer.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalBuffer.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalBuffer.java
index c25c525..b066041 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalBuffer.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalBuffer.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import java.util.Arrays;
@@ -399,9 +399,13 @@ public final class TerminalBuffer {
throw new IllegalArgumentException(
"Illegal arguments! blockSet(" + sx + ", " + sy + ", " + w + ", " + h + ", " + val + ", " + mColumns + ", " + mScreenRows + ")");
}
- for (int y = 0; y < h; y++)
+ for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++)
setChar(sx + x, sy + y, val, style);
+ if (sx+w == mColumns && val == ' ') {
+ clearLineWrap(sy + y);
+ }
+ }
}
public TerminalRow allocateFullLineIfNecessary(int row) {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColorScheme.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalColorScheme.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColorScheme.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalColorScheme.java
index c9e9795..c595243 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColorScheme.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalColorScheme.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import java.util.Map;
import java.util.Properties;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColors.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalColors.java
similarity index 98%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColors.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalColors.java
index fbf69c7..ac4b8f6 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalColors.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalColors.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
/**
* Current terminal colors (if different from default).
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalEmulator.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalEmulator.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalEmulator.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalEmulator.java
index 4aceda7..6206587 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalEmulator.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalEmulator.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import android.util.Base64;
import android.util.Log;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalOutput.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalOutput.java
similarity index 96%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalOutput.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalOutput.java
index c75a79d..9f06cde 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalOutput.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalOutput.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import java.nio.charset.StandardCharsets;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalRow.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalRow.java
similarity index 81%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalRow.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalRow.java
index 66e81bf..4c43adf 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalRow.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalRow.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import java.util.Arrays;
@@ -10,6 +10,31 @@ import java.util.Arrays;
public final class TerminalRow {
private static final float SPARE_CAPACITY_FACTOR = 1.5f;
+ /**
+ * Max combining characters that can exist in a column, that are separate from the base character
+ * itself. Any additional combining characters will be ignored and not added to the column.
+ *
+ * There does not seem to be limit in unicode standard for max number of combination characters
+ * that can be combined but such characters are primarily under 10.
+ *
+ * "Section 3.6 Combination" of unicode standard contains combining characters info.
+ * - https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf
+ * - https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges
+ * - https://stackoverflow.com/questions/71237212/what-is-the-maximum-number-of-unicode-combined-characters-that-may-be-needed-to
+ *
+ * UAX15-D3 Stream-Safe Text Format limits to max 30 combining characters.
+ * > The value of 30 is chosen to be significantly beyond what is required for any linguistic or technical usage.
+ * > While it would have been feasible to chose a smaller number, this value provides a very wide margin,
+ * > yet is well within the buffer size limits of practical implementations.
+ * - https://unicode.org/reports/tr15/#Stream_Safe_Text_Format
+ * - https://stackoverflow.com/a/11983435/14686958
+ *
+ * We choose the value 15 because it should be enough for terminal based applications and keep
+ * the memory usage low for a terminal row, won't affect performance or cause terminal to
+ * lag or hang, and will keep malicious applications from causing harm. The value can be
+ * increased if ever needed for legitimate applications.
+ */
+ private static final int MAX_COMBINING_CHARACTERS_PER_COLUMN = 15;
/**
* The number of columns in this terminal row.
@@ -178,18 +203,25 @@ public final class TerminalRow {
// Get the number of elements in the mText array this column uses now
int oldCharactersUsedForColumn;
if (columnToSet + oldCodePointDisplayWidth < mColumns) {
- oldCharactersUsedForColumn = findStartOfColumn(columnToSet + oldCodePointDisplayWidth) - oldStartOfColumnIndex;
+ int oldEndOfColumnIndex = findStartOfColumn(columnToSet + oldCodePointDisplayWidth);
+ oldCharactersUsedForColumn = oldEndOfColumnIndex - oldStartOfColumnIndex;
} else {
// Last character.
oldCharactersUsedForColumn = mSpaceUsed - oldStartOfColumnIndex;
}
+ // If MAX_COMBINING_CHARACTERS_PER_COLUMN already exist in column, then ignore adding additional combining characters.
+ if (newIsCombining) {
+ int combiningCharsCount = WcWidth.zeroWidthCharsCount(mText, oldStartOfColumnIndex, oldStartOfColumnIndex + oldCharactersUsedForColumn);
+ if (combiningCharsCount >= MAX_COMBINING_CHARACTERS_PER_COLUMN)
+ return;
+ }
+
// Find how many chars this column will need
int newCharactersUsedForColumn = Character.charCount(codePoint);
if (newIsCombining) {
// Combining characters are added to the contents of the column instead of overwriting them, so that they
// modify the existing contents.
- // FIXME: Put a limit of combining characters.
// FIXME: Unassigned characters also get width=0.
newCharactersUsedForColumn += oldCharactersUsedForColumn;
}
@@ -204,7 +236,7 @@ public final class TerminalRow {
if (mSpaceUsed + javaCharDifference > text.length) {
// We need to grow the array
char[] newText = new char[text.length + mColumns];
- System.arraycopy(text, 0, newText, 0, oldStartOfColumnIndex + oldCharactersUsedForColumn);
+ System.arraycopy(text, 0, newText, 0, oldNextColumnIndex);
System.arraycopy(text, oldNextColumnIndex, newText, newNextColumnIndex, oldCharactersAfterColumn);
mText = text = newText;
} else {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalSession.java b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalSession.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TerminalSession.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TerminalSession.java
index cf1274f..93c4d68 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TerminalSession.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TerminalSession.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
import android.annotation.SuppressLint;
import android.os.Handler;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/TextStyle.java b/terminal/src/main/java/com/evolinx/terminal/backend/TextStyle.java
similarity index 98%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/TextStyle.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/TextStyle.java
index 4b37ff0..862213b 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/TextStyle.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/TextStyle.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
/**
*
diff --git a/nhterm/src/main/java/com/offsec/nhterm/backend/WcWidth.java b/terminal/src/main/java/com/evolinx/terminal/backend/WcWidth.java
similarity index 98%
rename from nhterm/src/main/java/com/offsec/nhterm/backend/WcWidth.java
rename to terminal/src/main/java/com/evolinx/terminal/backend/WcWidth.java
index e4408d0..68a0a63 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/backend/WcWidth.java
+++ b/terminal/src/main/java/com/evolinx/terminal/backend/WcWidth.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.backend;
+package com.evolinx.terminal.backend;
/**
* Implementation of wcwidth(3) for Unicode 15.
@@ -536,4 +536,29 @@ public final class WcWidth {
return Character.isHighSurrogate(c) ? width(Character.toCodePoint(c, chars[index + 1])) : width(c);
}
+ /**
+ * The zero width characters count like combining characters in the `chars` array from start
+ * index to end index (exclusive).
+ */
+ public static int zeroWidthCharsCount(char[] chars, int start, int end) {
+ if (start < 0 || start >= chars.length)
+ return 0;
+
+ int count = 0;
+ for (int i = start; i < end && i < chars.length;) {
+ if (Character.isHighSurrogate(chars[i])) {
+ if (width(Character.toCodePoint(chars[i], chars[i + 1])) <= 0) {
+ count++;
+ }
+ i += 2;
+ } else {
+ if (width(chars[i]) <= 0) {
+ count++;
+ }
+ i++;
+ }
+ }
+ return count;
+ }
+
}
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/codegen/comp.kt
similarity index 77%
rename from nhterm/src/main/java/com/offsec/nhterm/component/codegen/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/codegen/comp.kt
index 0ca9888..5869c36 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/codegen/comp.kt
@@ -1,6 +1,6 @@
-package com.offsec.nhterm.component.codegen
+package com.evolinx.terminal.component.codegen
-import com.offsec.nhterm.component.NeoComponent
+import com.evolinx.terminal.component.NeoComponent
class CodeGenComponent : NeoComponent {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/generators.kt b/terminal/src/main/java/com/evolinx/terminal/component/codegen/generators.kt
similarity index 90%
rename from nhterm/src/main/java/com/offsec/nhterm/component/codegen/generators.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/codegen/generators.kt
index 45827f8..81154fb 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/generators.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/codegen/generators.kt
@@ -1,8 +1,8 @@
-package com.offsec.nhterm.component.codegen
+package com.evolinx.terminal.component.codegen
-import com.offsec.nhterm.component.ComponentManager
-import com.offsec.nhterm.component.colorscheme.NeoColorScheme
-import com.offsec.nhterm.component.config.ConfigureComponent
+import com.evolinx.terminal.component.ComponentManager
+import com.evolinx.terminal.component.colorscheme.NeoColorScheme
+import com.evolinx.terminal.component.config.ConfigureComponent
class NeoColorGenerator(parameter: CodeGenParameter) : CodeGenerator(parameter) {
override fun getGeneratorName(): String {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/interfaces.kt b/terminal/src/main/java/com/evolinx/terminal/component/codegen/interfaces.kt
similarity index 85%
rename from nhterm/src/main/java/com/offsec/nhterm/component/codegen/interfaces.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/codegen/interfaces.kt
index 67c92e9..1e0ac99 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/codegen/interfaces.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/codegen/interfaces.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.codegen
+package com.evolinx.terminal.component.codegen
abstract class CodeGenerator(parameter: CodeGenParameter) {
abstract fun getGeneratorName(): String
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/colorscheme/comp.kt
similarity index 84%
rename from nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/colorscheme/comp.kt
index 1ecef8f..d0177da 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/colorscheme/comp.kt
@@ -1,18 +1,18 @@
-package com.offsec.nhterm.component.colorscheme
+package com.evolinx.terminal.component.colorscheme
import android.content.Context
import android.os.Build
-import io.neolang.frontend.ConfigVisitor
-import com.offsec.nhterm.App
-import com.offsec.nhterm.R
-import com.offsec.nhterm.component.ComponentManager
-import com.offsec.nhterm.component.ConfigFileBasedComponent
-import com.offsec.nhterm.component.codegen.CodeGenComponent
-import com.offsec.nhterm.component.config.NeoPreference
-import com.offsec.nhterm.component.config.NeoTermPath
-import com.offsec.nhterm.frontend.session.view.TerminalView
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
-import com.offsec.nhterm.utils.extractAssetsDir
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.terminal.App
+import com.evolinx.terminal.R
+import com.evolinx.terminal.component.ComponentManager
+import com.evolinx.terminal.component.ConfigFileBasedComponent
+import com.evolinx.terminal.component.codegen.CodeGenComponent
+import com.evolinx.terminal.component.config.NeoPreference
+import com.evolinx.terminal.component.config.NeoTermPath
+import com.evolinx.terminal.frontend.session.view.TerminalView
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.utils.extractAssetsDir
import java.io.File
import java.nio.file.Files
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/colorscheme/data.kt
similarity index 87%
rename from nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/colorscheme/data.kt
index fb20665..85d157e 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/colorscheme/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/colorscheme/data.kt
@@ -1,18 +1,18 @@
-package com.offsec.nhterm.component.colorscheme
+package com.evolinx.terminal.component.colorscheme
import android.os.Build
-import com.offsec.nhterm.R
-import io.neolang.frontend.ConfigVisitor
-import com.offsec.nhterm.backend.TerminalColorScheme
-import com.offsec.nhterm.backend.TerminalColors
-import com.offsec.nhterm.component.ConfigFileBasedObject
-import com.offsec.nhterm.component.codegen.CodeGenObject
-import com.offsec.nhterm.component.codegen.CodeGenParameter
-import com.offsec.nhterm.component.codegen.CodeGenerator
-import com.offsec.nhterm.component.codegen.NeoColorGenerator
-import com.offsec.nhterm.frontend.session.view.TerminalView
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.terminal.R
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.terminal.backend.TerminalColorScheme
+import com.evolinx.terminal.backend.TerminalColors
+import com.evolinx.terminal.component.ConfigFileBasedObject
+import com.evolinx.terminal.component.codegen.CodeGenObject
+import com.evolinx.terminal.component.codegen.CodeGenParameter
+import com.evolinx.terminal.component.codegen.CodeGenerator
+import com.evolinx.terminal.component.codegen.NeoColorGenerator
+import com.evolinx.terminal.frontend.session.view.TerminalView
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.utils.NLog
open class NeoColorScheme : CodeGenObject, ConfigFileBasedObject {
companion object {
@@ -176,7 +176,7 @@ open class NeoColorScheme : CodeGenObject, ConfigFileBasedObject {
object DefaultColorScheme : NeoColorScheme() {
init {
/* NOTE: Keep in sync with assets/colors/Default.nl */
- colorName = "Kali"
+ colorName = "Default"
cursorColor = "#a9aaa9"
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/comp.kt
similarity index 77%
rename from nhterm/src/main/java/com/offsec/nhterm/component/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/comp.kt
index 52a5091..67b5c55 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/comp.kt
@@ -1,18 +1,18 @@
-package com.offsec.nhterm.component
+package com.evolinx.terminal.component
import android.content.Context
-import com.offsec.nhterm.component.codegen.CodeGenComponent
-import com.offsec.nhterm.component.colorscheme.ColorSchemeComponent
-import com.offsec.nhterm.component.completion.CompletionComponent
-import com.offsec.nhterm.component.config.ConfigureComponent
-import com.offsec.nhterm.component.extrakey.ExtraKeyComponent
-import com.offsec.nhterm.component.font.FontComponent
-import com.offsec.nhterm.component.pm.PackageComponent
-import com.offsec.nhterm.component.profile.ProfileComponent
-import com.offsec.nhterm.component.session.SessionComponent
-import com.offsec.nhterm.component.session.ShellProfile
-import com.offsec.nhterm.component.userscript.UserScriptComponent
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.terminal.component.codegen.CodeGenComponent
+import com.evolinx.terminal.component.colorscheme.ColorSchemeComponent
+import com.evolinx.terminal.component.completion.CompletionComponent
+import com.evolinx.terminal.component.config.ConfigureComponent
+import com.evolinx.terminal.component.extrakey.ExtraKeyComponent
+import com.evolinx.terminal.component.font.FontComponent
+import com.evolinx.terminal.component.pm.PackageComponent
+import com.evolinx.terminal.component.profile.ProfileComponent
+import com.evolinx.terminal.component.session.SessionComponent
+import com.evolinx.terminal.component.session.ShellProfile
+import com.evolinx.terminal.component.userscript.UserScriptComponent
+import com.evolinx.terminal.utils.NLog
import java.util.concurrent.ConcurrentHashMap
interface NeoComponent {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/completion/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/completion/comp.kt
similarity index 94%
rename from nhterm/src/main/java/com/offsec/nhterm/component/completion/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/completion/comp.kt
index e193cfe..6ff9456 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/completion/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/completion/comp.kt
@@ -1,6 +1,6 @@
-package com.offsec.nhterm.component.completion
+package com.evolinx.terminal.component.completion
-import com.offsec.nhterm.component.NeoComponent
+import com.evolinx.terminal.component.NeoComponent
class CompletionComponent : NeoComponent {
override fun onServiceInit() {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/completion/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/completion/data.kt
similarity index 88%
rename from nhterm/src/main/java/com/offsec/nhterm/component/completion/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/completion/data.kt
index e0cb59a..64fbd2d 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/completion/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/completion/data.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.completion
+package com.evolinx.terminal.component.completion
class CompletionCandidate(val completeString: String) {
var displayName: String = completeString
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/completion/listeners.kt b/terminal/src/main/java/com/evolinx/terminal/component/completion/listeners.kt
similarity index 87%
rename from nhterm/src/main/java/com/offsec/nhterm/component/completion/listeners.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/completion/listeners.kt
index 8089373..2c6830a 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/completion/listeners.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/completion/listeners.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.completion
+package com.evolinx.terminal.component.completion
interface MarkScoreListener {
fun onMarkScore(score: Int)
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/completion/providers.kt b/terminal/src/main/java/com/evolinx/terminal/component/completion/providers.kt
similarity index 97%
rename from nhterm/src/main/java/com/offsec/nhterm/component/completion/providers.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/completion/providers.kt
index 618ae3e..ceb2a5c 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/completion/providers.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/completion/providers.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.completion
+package com.evolinx.terminal.component.completion
import java.io.File
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/config/comp.kt
similarity index 93%
rename from nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/config/comp.kt
index fc96042..bae84fc 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/config/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/config/comp.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.config
+package com.evolinx.terminal.component.config
import android.content.Context
import android.content.SharedPreferences
@@ -7,14 +7,14 @@ import android.preference.PreferenceManager
import android.system.ErrnoException
import android.system.Os
import android.util.TypedValue
-import io.neolang.frontend.ConfigVisitor
-import io.neolang.frontend.NeoLangParser
-import com.offsec.nhterm.App
-import com.offsec.nhterm.R
-import com.offsec.nhterm.backend.TerminalSession
-import com.offsec.nhterm.component.NeoComponent
-import com.offsec.nhterm.services.NeoTermService
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.neolang.frontend.NeoLangParser
+import com.evolinx.terminal.App
+import com.evolinx.terminal.R
+import com.evolinx.terminal.backend.TerminalSession
+import com.evolinx.terminal.component.NeoComponent
+import com.evolinx.terminal.services.NeoTermService
+import com.evolinx.terminal.utils.NLog
import java.io.File
import java.nio.file.Files
@@ -225,6 +225,13 @@ object NeoPreference {
)
}
+ fun isPrintFontSizeEnabled(): Boolean {
+ return loadBoolean(
+ R.string.key_general_print_font_size,
+ DefaultValues.enableprintFontSize
+ )
+ }
+
fun isBellEnabled(): Boolean {
return loadBoolean(
R.string.key_general_bell,
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt b/terminal/src/main/java/com/evolinx/terminal/component/config/defaults.kt
similarity index 79%
rename from nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/config/defaults.kt
index 3037820..29f2ac2 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/config/defaults.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/config/defaults.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.config
+package com.evolinx.terminal.component.config
import android.annotation.SuppressLint
@@ -7,6 +7,7 @@ object DefaultValues {
const val enableBell = false
const val enableVibrate = false
+ const val enableprintFontSize = true
const val enableExecveWrapper = true
const val enableAutoCompletion = false
const val enableFullScreen = false
@@ -25,14 +26,16 @@ object DefaultValues {
object NeoTermPath {
@SuppressLint("SdCardPath")
- const val ROOT_PATH = "/data/data/com.offsec.nhterm/files"
+ const val ROOT_PATH = "/data/data/com.evolinx.terminal/files"
const val USR_PATH = "$ROOT_PATH/usr"
const val BIN_PATH = "$USR_PATH/bin"
- const val HOME_PATH = "/"
+ const val HOME_PATH = "$USR_PATH/home"
const val APT_BIN_PATH = "$USR_PATH/bin/apt"
const val LIB_PATH = "$USR_PATH/lib"
- const val CUSTOM_PATH = "$ROOT_PATH/usr/home/.nhterm"
+ const val TERM_APP = "$ROOT_PATH/app"
+ const val CUSTOM_PATH = "$TERM_APP/.evolinx"
+ const val TERM_BIN = "$TERM_APP/bin"
const val NEOTERM_LOGIN_SHELL_PATH = "$CUSTOM_PATH/shell"
const val EKS_PATH = "$CUSTOM_PATH/eks"
const val EKS_DEFAULT_FILE = "$EKS_PATH/default.nl"
@@ -44,7 +47,7 @@ object NeoTermPath {
const val SOURCE_FILE = "$USR_PATH/etc/apt/sources.list"
const val PACKAGE_LIST_DIR = "$USR_PATH/var/lib/apt/lists"
- private const val SOURCE = "http://http.kali.org/kali"
+ private const val SOURCE = "https://files.martinvlba.eu"
val DEFAULT_MAIN_PACKAGE_SOURCE: String
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/config/loaders.kt b/terminal/src/main/java/com/evolinx/terminal/component/config/loaders.kt
similarity index 94%
rename from nhterm/src/main/java/com/offsec/nhterm/component/config/loaders.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/config/loaders.kt
index 343f25e..6dc46be 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/config/loaders.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/config/loaders.kt
@@ -1,11 +1,11 @@
-package com.offsec.nhterm.component.config
+package com.evolinx.terminal.component.config
-import io.neolang.frontend.ConfigVisitor
-import io.neolang.runtime.NeoLangValue
-import com.offsec.nhterm.component.colorscheme.NeoColorScheme
-import com.offsec.nhterm.component.extrakey.NeoExtraKey
-import com.offsec.nhterm.frontend.session.view.extrakey.TextButton
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.neolang.runtime.NeoLangValue
+import com.evolinx.terminal.component.colorscheme.NeoColorScheme
+import com.evolinx.terminal.component.extrakey.NeoExtraKey
+import com.evolinx.terminal.frontend.session.view.extrakey.TextButton
+import com.evolinx.terminal.utils.NLog
import java.io.BufferedReader
import java.io.File
import java.io.FileInputStream
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/data.kt
similarity index 89%
rename from nhterm/src/main/java/com/offsec/nhterm/component/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/data.kt
index 8a4880f..663f811 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/data.kt
@@ -1,8 +1,8 @@
-package com.offsec.nhterm.component
+package com.evolinx.terminal.component
-import io.neolang.frontend.ConfigVisitor
-import com.offsec.nhterm.component.config.ConfigureComponent
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.terminal.component.config.ConfigureComponent
+import com.evolinx.terminal.utils.NLog
import java.io.File
import java.io.FileFilter
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/extrakey/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/extrakey/comp.kt
similarity index 80%
rename from nhterm/src/main/java/com/offsec/nhterm/component/extrakey/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/extrakey/comp.kt
index 118938f..1267bab 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/extrakey/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/extrakey/comp.kt
@@ -1,14 +1,14 @@
-package com.offsec.nhterm.component.extrakey
+package com.evolinx.terminal.component.extrakey
import android.content.Context
import android.os.Build
-import io.neolang.frontend.ConfigVisitor
-import com.offsec.nhterm.App
-import com.offsec.nhterm.component.ConfigFileBasedComponent
-import com.offsec.nhterm.component.config.NeoTermPath
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
-import com.offsec.nhterm.utils.NLog
-import com.offsec.nhterm.utils.extractAssetsDir
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.terminal.App
+import com.evolinx.terminal.component.ConfigFileBasedComponent
+import com.evolinx.terminal.component.config.NeoTermPath
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.utils.NLog
+import com.evolinx.terminal.utils.extractAssetsDir
import java.io.File
class ExtraKeyComponent : ConfigFileBasedComponent(NeoTermPath.EKS_PATH) {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/extrakey/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/extrakey/data.kt
similarity index 86%
rename from nhterm/src/main/java/com/offsec/nhterm/component/extrakey/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/extrakey/data.kt
index 68e3ce9..077fc12 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/extrakey/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/extrakey/data.kt
@@ -1,10 +1,10 @@
-package com.offsec.nhterm.component.extrakey
+package com.evolinx.terminal.component.extrakey
-import io.neolang.frontend.ConfigVisitor
-import com.offsec.nhterm.component.ConfigFileBasedObject
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
-import com.offsec.nhterm.frontend.session.view.extrakey.IExtraButton
-import com.offsec.nhterm.frontend.session.view.extrakey.TextButton
+import com.evolinx.neolang.frontend.ConfigVisitor
+import com.evolinx.terminal.component.ConfigFileBasedObject
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.frontend.session.view.extrakey.IExtraButton
+import com.evolinx.terminal.frontend.session.view.extrakey.TextButton
/**
* @author kiva
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/font/comp.kt b/terminal/src/main/java/com/evolinx/terminal/component/font/comp.kt
similarity index 85%
rename from nhterm/src/main/java/com/offsec/nhterm/component/font/comp.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/font/comp.kt
index e5183ec..287b3ee 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/font/comp.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/font/comp.kt
@@ -1,16 +1,16 @@
-package com.offsec.nhterm.component.font
+package com.evolinx.terminal.component.font
import android.content.Context
import android.graphics.Typeface
-import com.offsec.nhterm.App
-import com.offsec.nhterm.R
-import com.offsec.nhterm.component.NeoComponent
-import com.offsec.nhterm.component.config.DefaultValues
-import com.offsec.nhterm.component.config.NeoPreference
-import com.offsec.nhterm.component.config.NeoTermPath
-import com.offsec.nhterm.frontend.session.view.TerminalView
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
-import com.offsec.nhterm.utils.extractAssetsDir
+import com.evolinx.terminal.App
+import com.evolinx.terminal.R
+import com.evolinx.terminal.component.NeoComponent
+import com.evolinx.terminal.component.config.DefaultValues
+import com.evolinx.terminal.component.config.NeoPreference
+import com.evolinx.terminal.component.config.NeoTermPath
+import com.evolinx.terminal.frontend.session.view.TerminalView
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.utils.extractAssetsDir
import java.io.File
class FontComponent : NeoComponent {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/font/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/font/data.kt
similarity index 79%
rename from nhterm/src/main/java/com/offsec/nhterm/component/font/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/font/data.kt
index 97307cd..18bc789 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/font/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/font/data.kt
@@ -1,8 +1,8 @@
-package com.offsec.nhterm.component.font
+package com.evolinx.terminal.component.font
import android.graphics.Typeface
-import com.offsec.nhterm.frontend.session.view.TerminalView
-import com.offsec.nhterm.frontend.session.view.extrakey.ExtraKeysView
+import com.evolinx.terminal.frontend.session.view.TerminalView
+import com.evolinx.terminal.frontend.session.view.extrakey.ExtraKeysView
import java.io.File
class NeoFont {
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java b/terminal/src/main/java/com/evolinx/terminal/component/pm/NeoPackageParser.java
similarity index 99%
rename from nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java
rename to terminal/src/main/java/com/evolinx/terminal/component/pm/NeoPackageParser.java
index 35bf086..e544a8b 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/NeoPackageParser.java
+++ b/terminal/src/main/java/com/evolinx/terminal/component/pm/NeoPackageParser.java
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.pm;
+package com.evolinx.terminal.component.pm;
import java.io.BufferedReader;
import java.io.IOException;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java b/terminal/src/main/java/com/evolinx/terminal/component/pm/PackageComponent.java
similarity index 95%
rename from nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java
rename to terminal/src/main/java/com/evolinx/terminal/component/pm/PackageComponent.java
index 7693eca..8d682b1 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/PackageComponent.java
+++ b/terminal/src/main/java/com/evolinx/terminal/component/pm/PackageComponent.java
@@ -1,8 +1,8 @@
-package com.offsec.nhterm.component.pm;
+package com.evolinx.terminal.component.pm;
-import com.offsec.nhterm.component.NeoComponent;
+import com.evolinx.terminal.component.NeoComponent;
-import com.offsec.nhterm.component.NeoComponent;
+import com.evolinx.terminal.component.NeoComponent;
import java.io.File;
import java.io.FileInputStream;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/Source.java b/terminal/src/main/java/com/evolinx/terminal/component/pm/Source.java
similarity index 54%
rename from nhterm/src/main/java/com/offsec/nhterm/component/pm/Source.java
rename to terminal/src/main/java/com/evolinx/terminal/component/pm/Source.java
index a6b8bd7..75a4fd1 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/Source.java
+++ b/terminal/src/main/java/com/evolinx/terminal/component/pm/Source.java
@@ -1,9 +1,9 @@
-package com.offsec.nhterm.component.pm;
+package com.evolinx.terminal.component.pm;
-import com.offsec.nhterm.framework.database.annotation.ID;
-import com.offsec.nhterm.framework.database.annotation.Table;
-import com.offsec.nhterm.framework.database.annotation.ID;
-import com.offsec.nhterm.framework.database.annotation.Table;
+import com.evolinx.terminal.framework.database.annotation.ID;
+import com.evolinx.terminal.framework.database.annotation.Table;
+import com.evolinx.terminal.framework.database.annotation.ID;
+import com.evolinx.terminal.framework.database.annotation.Table;
/**
* @author kiva
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt b/terminal/src/main/java/com/evolinx/terminal/component/pm/data.kt
similarity index 95%
rename from nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/pm/data.kt
index 51e10e2..90f91a1 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/data.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/pm/data.kt
@@ -1,4 +1,4 @@
-package com.offsec.nhterm.component.pm
+package com.evolinx.terminal.component.pm
enum class Architecture {
ALL, ARM, AARCH64, X86, X86_64;
diff --git a/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt b/terminal/src/main/java/com/evolinx/terminal/component/pm/helper.kt
similarity index 80%
rename from nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt
rename to terminal/src/main/java/com/evolinx/terminal/component/pm/helper.kt
index b8c9aab..f4069c8 100644
--- a/nhterm/src/main/java/com/offsec/nhterm/component/pm/helper.kt
+++ b/terminal/src/main/java/com/evolinx/terminal/component/pm/helper.kt
@@ -1,13 +1,13 @@
-package com.offsec.nhterm.component.pm
+package com.evolinx.terminal.component.pm
import android.util.Log
-import com.offsec.nhterm.App
-import com.offsec.nhterm.R
-import com.offsec.nhterm.component.ComponentManager
-import com.offsec.nhterm.component.config.NeoPreference
-import com.offsec.nhterm.component.config.NeoTermPath
-import com.offsec.nhterm.framework.NeoTermDatabase
-import com.offsec.nhterm.utils.NLog
+import com.evolinx.terminal.App
+import com.evolinx.terminal.R
+import com.evolinx.terminal.component.ComponentManager
+import com.evolinx.terminal.component.config.NeoPreference
+import com.evolinx.terminal.component.config.NeoTermPath
+import com.evolinx.terminal.framework.NeoTermDatabase
+import com.evolinx.terminal.utils.NLog
import com.topjohnwu.superuser.Shell
import java.io.File
import java.net.URL
@@ -22,13 +22,14 @@ object SourceHelper {
fun syncSource(sourceManager: SourceManager) {
val content = buildString {
- this.append("# Generated by NetHunter TerminalPreference\n")
+ this.append("# Generated by Terminal Preference\n")
sourceManager.getEnabledSources()
.joinTo(this, "\n") { "deb [trusted=yes] ${it.url} ${it.repo}\n" }
}
kotlin.runCatching {
Files.write(Paths.get(NeoTermPath.SOURCE_FILE), content.toByteArray())
}
+ updateChrootSource()
}
fun detectSourceFiles(): List {
@@ -79,7 +80,7 @@ object SourceHelper {
}
}
- private fun copySourceFromChroot() {
+ fun copySourceFromChroot() {
val APP_MNT = NeoTermPath.USR_PATH
val MNT = "/data/local/nhsystem/kalifs"
val sources = "$MNT/etc/apt/sources.list"
@@ -99,13 +100,19 @@ object SourceHelper {
Shell.cmd("cp -f $lists/* $APP_MNT/var/lib/apt/lists/").exec()
// Now play with permissions so things are read/writable
- Shell.cmd("chmod -R 775 $APP_MNT/etc/apt").exec()
- Shell.cmd("chmod -R 775 $APP_MNT/var/lib/apt/lists").exec()
+ Shell.cmd("chmod -R 777 $APP_MNT/etc/apt").exec()
+ Shell.cmd("chmod -R 777 $APP_MNT/var/lib/apt/lists").exec()
}
fun updateChrootSource() {
// TODO: ( APT ) Add option for user to edit and update sources.list in Package Manager option
- return
+
+ val APP_MNT = NeoTermPath.USR_PATH
+ val sources = "$APP_MNT/etc/apt/sources.list"
+ val lists = "$APP_MNT/var/lib/apt/lists"
+
+ // Write changes
+ Shell.cmd("cp -f $APP_MNT/etc/apt/sources.list $sources").exec()
}
}
@@ -120,7 +127,7 @@ class SourceManager internal constructor() {
database.saveBean(
Source(
it,
- "kali-rolling main",
+ "main main",
true
)
)
@@ -136,6 +143,8 @@ class SourceManager internal constructor() {
enabled
)
)
+ SourceHelper.updateChrootSource()
+ SourceHelper.copySourceFromChroot()
}
fun removeSource(sourceUrl: String) {
@@ -145,6 +154,8 @@ class SourceManager internal constructor() {
fun updateAll(sources: List