diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-08 20:20:29 -0600 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-08 20:23:25 -0600 |
commit | 7a4af834c213672c65c89b14c75229bf5f2ea4ab (patch) | |
tree | 64fad45abe8f1586449b2f1090547d6d57f5b934 /app/src/main/java/com/wireguard/android/util/ToolsInstaller.java | |
parent | GoBackend: setConfigureIntent does nothing (diff) | |
download | wireguard-android-7a4af834c213672c65c89b14c75229bf5f2ea4ab.tar.xz wireguard-android-7a4af834c213672c65c89b14c75229bf5f2ea4ab.zip |
Backend: do not use singletons
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | app/src/main/java/com/wireguard/android/util/ToolsInstaller.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/app/src/main/java/com/wireguard/android/util/ToolsInstaller.java b/app/src/main/java/com/wireguard/android/util/ToolsInstaller.java index f2fdeddc..5a75c158 100644 --- a/app/src/main/java/com/wireguard/android/util/ToolsInstaller.java +++ b/app/src/main/java/com/wireguard/android/util/ToolsInstaller.java @@ -10,7 +10,6 @@ import androidx.annotation.Nullable; import android.system.OsConstants; import android.util.Log; -import com.wireguard.android.Application; import com.wireguard.android.BuildConfig; import com.wireguard.android.util.RootShell.RootShellException; @@ -39,14 +38,16 @@ public final class ToolsInstaller { private static final String TAG = "WireGuard/" + ToolsInstaller.class.getSimpleName(); private final Context context; + private final RootShell rootShell; private final File localBinaryDir; private final Object lock = new Object(); @Nullable private Boolean areToolsAvailable; @Nullable private Boolean installAsMagiskModule; - public ToolsInstaller(final Context context) { + public ToolsInstaller(final Context context, final RootShell rootShell) { localBinaryDir = new File(context.getCodeCacheDir(), "bin"); this.context = context; + this.rootShell = rootShell; } @Nullable @@ -73,7 +74,7 @@ public final class ToolsInstaller { } script.append("exit ").append(OsConstants.EALREADY).append(';'); try { - final int ret = Application.getRootShell().run(null, script.toString()); + final int ret = rootShell.run(null, script.toString()); if (ret == OsConstants.EALREADY) return willInstallAsMagiskModule() ? YES | MAGISK : YES | SYSTEM; else @@ -124,7 +125,7 @@ public final class ToolsInstaller { script.append("trap - INT TERM EXIT;"); try { - return Application.getRootShell().run(null, script.toString()) == 0 ? YES | MAGISK : ERROR; + return rootShell.run(null, script.toString()) == 0 ? YES | MAGISK : ERROR; } catch (final IOException ignored) { return ERROR; } catch (final RootShellException e) { @@ -146,7 +147,7 @@ public final class ToolsInstaller { new File(localBinaryDir, name), destination, destination, destination)); } try { - return Application.getRootShell().run(null, script.toString()) == 0 ? YES | SYSTEM : ERROR; + return rootShell.run(null, script.toString()) == 0 ? YES | SYSTEM : ERROR; } catch (final IOException ignored) { return ERROR; } catch (final RootShellException e) { @@ -183,7 +184,7 @@ public final class ToolsInstaller { synchronized (lock) { if (installAsMagiskModule == null) { try { - installAsMagiskModule = Application.getRootShell().run(null, "[ -d /sbin/.magisk/mirror -a -d /sbin/.magisk/img -a ! -f /cache/.disable_magisk ]") == OsConstants.EXIT_SUCCESS; + installAsMagiskModule = rootShell.run(null, "[ -d /sbin/.magisk/mirror -a -d /sbin/.magisk/img -a ! -f /cache/.disable_magisk ]") == OsConstants.EXIT_SUCCESS; } catch (final Exception ignored) { installAsMagiskModule = false; } |