From 36be6abc89dada4fa060b0a6a1f41eeac9e32d4f Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Fri, 28 Mar 2025 11:20:42 +0500 Subject: [PATCH] Added: Export `ANDROID__BUILD_VERSION_SDK` in shell environment variable for the Android build SDK version This is also required for `libtermux-exec-*-ld-preload.so` `$LD_PRELOAD` library as well for `termux-exec` version `>= 2.0.0`. - https://github.com/termux/termux-exec-package/commit/db738a11 --- .../environment/AndroidShellEnvironment.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/termux-shared/src/main/java/com/termux/shared/shell/command/environment/AndroidShellEnvironment.java b/termux-shared/src/main/java/com/termux/shared/shell/command/environment/AndroidShellEnvironment.java index 91a8652e..6e3bff41 100644 --- a/termux-shared/src/main/java/com/termux/shared/shell/command/environment/AndroidShellEnvironment.java +++ b/termux-shared/src/main/java/com/termux/shared/shell/command/environment/AndroidShellEnvironment.java @@ -1,6 +1,7 @@ package com.termux.shared.shell.command.environment; import android.content.Context; +import android.os.Build; import androidx.annotation.NonNull; @@ -20,6 +21,20 @@ import java.util.HashMap; */ public class AndroidShellEnvironment extends UnixShellEnvironment { + /** Environment variable scope for Android. */ + public static final String ANDROID_ENV_SCOPE = "ANDROID__"; // Default: "ANDROID__" + + /** + * Environment variable for the Android build SDK version currently running on the device that + * is defined by {@link Build.VERSION#SDK_INT} and `ro.build.version.sdk` system property. + * + * - https://developer.android.com/reference/android/os/Build.VERSION#SDK_INT + * - https://developer.android.com/reference/android/os/Build.VERSION_CODES + * + * Default value: `ANDROID__BUILD_VERSION_SDK` + */ + public static final String ENV_ANDROID__BUILD_VERSION_SDK = ANDROID_ENV_SCOPE + "BUILD_VERSION_SDK"; + protected ShellCommandShellEnvironment shellCommandShellEnvironment; public AndroidShellEnvironment() { @@ -61,6 +76,8 @@ public class AndroidShellEnvironment extends UnixShellEnvironment { ShellEnvironmentUtils.putToEnvIfInSystemEnv(environment, "DEX2OATBOOTCLASSPATH"); ShellEnvironmentUtils.putToEnvIfInSystemEnv(environment, "SYSTEMSERVERCLASSPATH"); + ShellEnvironmentUtils.putToEnvIfSet(environment, ENV_ANDROID__BUILD_VERSION_SDK, String.valueOf(Build.VERSION.SDK_INT)); + return environment; }