diff --git a/app/src/main/java/org/torproject/android/backup/BackupUtils.java b/app/src/main/java/org/torproject/android/backup/BackupUtils.java index 42c98f8a..5d77d17f 100644 --- a/app/src/main/java/org/torproject/android/backup/BackupUtils.java +++ b/app/src/main/java/org/torproject/android/backup/BackupUtils.java @@ -9,10 +9,13 @@ import org.torproject.android.storage.ExternalStorage; import java.io.File; public class BackupUtils { - private static File appCacheHome; + private static File mHSBasePath; public BackupUtils(Context context) { - appCacheHome = context.getDir(TorServiceConstants.DIRECTORY_TOR_DATA, Application.MODE_PRIVATE); + mHSBasePath = context.getDir( + TorServiceConstants.DIRECTORY_TOR_DATA + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR, + Application.MODE_PRIVATE + ); } public String createOnionBackup(Integer port) { @@ -25,8 +28,8 @@ public class BackupUtils { String zip_path = storage_path + "/hs" + port + ".zip"; String files[] = { - appCacheHome + "/hs" + port + "/hostname", - appCacheHome + "/hs" + port + "/private_key" + mHSBasePath + "/hs" + port + "/hostname", + mHSBasePath + "/hs" + port + "/private_key" }; ZipIt zip = new ZipIt(files, zip_path); @@ -40,6 +43,6 @@ public class BackupUtils { public void restoreOnionBackup(Integer port, String path) { ZipIt zip = new ZipIt(null, path); - zip.unzip(appCacheHome + "/hs" + port); + zip.unzip(mHSBasePath + "/hs" + port); } } diff --git a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java index 2c031d8e..f222b854 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java +++ b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java @@ -121,7 +121,6 @@ public class HSContentProvider extends ContentProvider { } public static final class HiddenService implements BaseColumns { - //Nombres de columnas public static final String NAME = "name"; public static final String PORT = "port"; public static final String ONION_PORT = "onion_port"; diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java index dfd01956..f8ed3b34 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java @@ -23,14 +23,12 @@ import android.content.ContextWrapper; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; import android.content.pm.PackageManager; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; -import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; import android.provider.BaseColumns; @@ -128,18 +126,20 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon public static File fileObfsclient; public static File fileXtables; public static File fileTorRc; + private File mHSBasePath; private Shell mShell; private Shell mShellPolipo; + private static final Uri CONTENT_URI = Uri.parse("content://org.torproject.android.ui.hs.providers/hs"); public static final class HiddenService implements BaseColumns { - //Nombres de columnas public static final String NAME = "name"; public static final String PORT = "port"; public static final String ONION_PORT = "onion_port"; public static final String DOMAIN = "domain"; + public static final String CREATED_BY_USER = "created_by_user"; private HiddenService() { } @@ -147,7 +147,6 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon private String[] mProjection = new String[]{ HiddenService._ID, - HiddenService.NAME, HiddenService.DOMAIN, HiddenService.PORT, HiddenService.ONION_PORT}; @@ -532,6 +531,12 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon fileXtables = new File(appBinHome, TorServiceConstants.IPTABLES_ASSET_KEY); fileTorRc = new File(appBinHome, TorServiceConstants.TORRC_ASSET_KEY); + mHSBasePath = new File(appCacheHome , TorServiceConstants.HIDDEN_SERVICES_DIR); + + if (!mHSBasePath.isDirectory()) { + mHSBasePath.mkdirs(); + } + mEventHandler = new TorEventHandler(this); if (mNotificationManager == null) @@ -773,7 +778,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon // Update only new domains if(HSDomain == null || HSDomain.length() < 1) { - String hsDirPath = new File(appCacheHome,"hs" + HSLocalPort).getCanonicalPath(); + String hsDirPath = new File(mHSBasePath.getAbsolutePath(),"hs" + HSLocalPort).getCanonicalPath(); File file = new File(hsDirPath, "hostname"); if (file.exists()) @@ -1782,7 +1787,7 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon while (hidden_services.moveToNext()) { Integer HSLocalPort = hidden_services.getInt(hidden_services.getColumnIndex(HiddenService.PORT)); Integer HSOnionPort = hidden_services.getInt(hidden_services.getColumnIndex(HiddenService.ONION_PORT)); - String hsDirPath = new File(appCacheHome,"hs" + HSLocalPort).getCanonicalPath(); + String hsDirPath = new File(mHSBasePath.getAbsolutePath(),"hs" + HSLocalPort).getCanonicalPath(); debug("Adding hidden service on port: " + HSLocalPort); diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java index 00ade29e..9bc5a030 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorServiceConstants.java @@ -159,4 +159,6 @@ public interface TorServiceConstants { "meek_lite 0.0.2.0:3 url=https://az668014.vo.msecnd.net/ front=ajax.aspnetcdn.com" }; + public static final String HIDDEN_SERVICES_DIR = "hidden_services"; + }