From 4ab18548482ffd217f575e88b2a43087e55bdf67 Mon Sep 17 00:00:00 2001 From: Nathan Freitas Date: Sat, 11 Apr 2015 21:16:41 -0400 Subject: [PATCH] update resource installer to handle different architecture --- .../android/service/TorResourceInstaller.java | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/org/torproject/android/service/TorResourceInstaller.java b/src/org/torproject/android/service/TorResourceInstaller.java index 139da029..3d992258 100644 --- a/src/org/torproject/android/service/TorResourceInstaller.java +++ b/src/org/torproject/android/service/TorResourceInstaller.java @@ -26,6 +26,7 @@ import org.torproject.android.OrbotConstants; import org.torproject.android.R; import android.content.Context; +import android.os.Build; import android.util.Log; public class TorResourceInstaller implements TorServiceConstants { @@ -86,33 +87,41 @@ public class TorResourceInstaller implements TorServiceConstants { shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, false); + String cpuPath = null; - is = context.getResources().openRawResource(R.raw.tor); + //only install if ARM (GoLang only supports ARM for now) + if (Build.CPU_ABI.contains("arm")) + { + is = context.getResources().openRawResource(R.raw.obfs4proxy); + outFile = new File(installFolder, OBFSCLIENT_ASSET_KEY); + shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); + streamToFile(is,outFile, false, true); + + is = context.getResources().openRawResource(R.raw.meek); + outFile = new File(installFolder, MEEK_ASSET_KEY); + shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); + streamToFile(is,outFile, false, true); + + cpuPath = "armeabi"; + } + else if (Build.CPU_ABI.contains("x86")) + cpuPath = "x86"; + + is = context.getAssets().open(cpuPath + "/tor.mp3"); outFile = new File(installFolder, TOR_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); - is = context.getResources().openRawResource(R.raw.polipo); + is = context.getAssets().open(cpuPath + "/polipo.mp3"); outFile = new File(installFolder, POLIPO_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); - is = context.getResources().openRawResource(R.raw.obfs4proxy); - outFile = new File(installFolder, OBFSCLIENT_ASSET_KEY); - shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); - streamToFile(is,outFile, false, true); - - - is = context.getResources().openRawResource(R.raw.meek); - outFile = new File(installFolder, MEEK_ASSET_KEY); - shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); - streamToFile(is,outFile, false, true); - - is = context.getResources().openRawResource(R.raw.xtables); + is = context.getAssets().open(cpuPath + "/xtables.mp3"); outFile = new File(installFolder, IPTABLES_ASSET_KEY); shell.add(new SimpleCommand(COMMAND_RM_FORCE + outFile.getAbsolutePath())).waitForFinish(); streamToFile(is,outFile, false, true); - + return true; }