move hidden services to files directory
This commit is contained in:
parent
a49ac3fcc5
commit
fca54cfcdc
|
@ -26,16 +26,9 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven {
|
|
||||||
url "https://s3.amazonaws.com/repo.commonsware.com"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile project(':orbotservice')
|
compile project(':orbotservice')
|
||||||
compile 'com.android.support:support-v4:23.4.0'
|
compile 'com.android.support:support-v4:23.4.0'
|
||||||
compile 'com.android.support:appcompat-v7:23.4.0'
|
compile 'com.android.support:appcompat-v7:23.4.0'
|
||||||
compile 'com.android.support:design:23.4.0'
|
compile 'com.android.support:design:23.4.0'
|
||||||
compile 'com.commonsware.cwac:provider:0.4.4'
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,12 +151,12 @@
|
||||||
android:authorities="org.torproject.android.ui.hiddenservices.providers" />
|
android:authorities="org.torproject.android.ui.hiddenservices.providers" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".ui.hiddenservices.storage.AppDataProvider"
|
android:name="android.support.v4.content.FileProvider"
|
||||||
android:authorities="org.torproject.android.ui.hiddenservices.storage"
|
android:authorities="org.torproject.android.ui.hiddenservices.storage"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.commonsware.cwac.provider.STREAM_PROVIDER_PATHS"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
android:resource="@xml/hidden_services_paths"/>
|
android:resource="@xml/hidden_services_paths"/>
|
||||||
</provider>
|
</provider>
|
||||||
</application>
|
</application>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package org.torproject.android.ui.hiddenservices.backup;
|
package org.torproject.android.ui.hiddenservices.backup;
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
@ -17,9 +16,9 @@ public class BackupUtils {
|
||||||
|
|
||||||
public BackupUtils(Context context) {
|
public BackupUtils(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mHSBasePath = mContext.getDir(
|
mHSBasePath = new File(
|
||||||
TorServiceConstants.DIRECTORY_TOR_DATA,
|
mContext.getFilesDir().getAbsolutePath(),
|
||||||
Application.MODE_PRIVATE
|
TorServiceConstants.HIDDEN_SERVICES_DIR
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,8 +31,8 @@ public class BackupUtils {
|
||||||
|
|
||||||
String zip_path = storage_path.getAbsolutePath() + "/hs" + port + ".zip";
|
String zip_path = storage_path.getAbsolutePath() + "/hs" + port + ".zip";
|
||||||
String files[] = {
|
String files[] = {
|
||||||
mHSBasePath + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR + "/hs" + port + "/hostname",
|
mHSBasePath + "/hs" + port + "/hostname",
|
||||||
mHSBasePath + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR + "/hs" + port + "/private_key"
|
mHSBasePath + "/hs" + port + "/private_key"
|
||||||
};
|
};
|
||||||
|
|
||||||
ZipIt zip = new ZipIt(files, zip_path);
|
ZipIt zip = new ZipIt(files, zip_path);
|
||||||
|
@ -46,11 +45,8 @@ public class BackupUtils {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreZipBackup(Integer port, String path) {
|
public void restoreZipBackup(Integer port, String path) {
|
||||||
String hsBasePath;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
hsBasePath = mHSBasePath.getCanonicalPath() + "/" + TorServiceConstants.HIDDEN_SERVICES_DIR;
|
File hsPath = new File(mHSBasePath.getCanonicalPath(), "/hs" + port);
|
||||||
File hsPath = new File(hsBasePath, "/hs" + port);
|
|
||||||
if (hsPath.mkdirs()) {
|
if (hsPath.mkdirs()) {
|
||||||
ZipIt zip = new ZipIt(null, path);
|
ZipIt zip = new ZipIt(null, path);
|
||||||
zip.unzip(hsPath.getCanonicalPath());
|
zip.unzip(hsPath.getCanonicalPath());
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
package org.torproject.android.ui.hiddenservices.storage;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import com.commonsware.cwac.provider.LocalPathStrategy;
|
|
||||||
import com.commonsware.cwac.provider.StreamProvider;
|
|
||||||
import com.commonsware.cwac.provider.StreamStrategy;
|
|
||||||
|
|
||||||
import org.torproject.android.service.TorServiceConstants;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
public class AppDataProvider extends StreamProvider {
|
|
||||||
private static final String TAG = "app-data-path";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected StreamStrategy buildStrategy(Context context,
|
|
||||||
String tag, String name,
|
|
||||||
String path,
|
|
||||||
HashMap<String, String> attrs)
|
|
||||||
throws IOException {
|
|
||||||
|
|
||||||
if (TAG.equals(tag)) {
|
|
||||||
return (new LocalPathStrategy(
|
|
||||||
name,
|
|
||||||
context.getDir(
|
|
||||||
TorServiceConstants.DIRECTORY_TOR_DATA,
|
|
||||||
Application.MODE_PRIVATE
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (super.buildStrategy(context, tag, name, path, attrs));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,5 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<app-data-path name="hidden-services" path="hidden_services/"/>
|
<files-path name="hidden-services" path="hidden_services/" />
|
||||||
|
|
||||||
</paths>
|
</paths>
|
|
@ -531,11 +531,13 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon
|
||||||
fileXtables = new File(appBinHome, TorServiceConstants.IPTABLES_ASSET_KEY);
|
fileXtables = new File(appBinHome, TorServiceConstants.IPTABLES_ASSET_KEY);
|
||||||
fileTorRc = new File(appBinHome, TorServiceConstants.TORRC_ASSET_KEY);
|
fileTorRc = new File(appBinHome, TorServiceConstants.TORRC_ASSET_KEY);
|
||||||
|
|
||||||
mHSBasePath = new File(appCacheHome , TorServiceConstants.HIDDEN_SERVICES_DIR);
|
mHSBasePath = new File(
|
||||||
|
getFilesDir().getAbsolutePath(),
|
||||||
|
TorServiceConstants.HIDDEN_SERVICES_DIR
|
||||||
|
);
|
||||||
|
|
||||||
if (!mHSBasePath.isDirectory()) {
|
if (!mHSBasePath.isDirectory())
|
||||||
mHSBasePath.mkdirs();
|
mHSBasePath.mkdirs();
|
||||||
}
|
|
||||||
|
|
||||||
mEventHandler = new TorEventHandler(this);
|
mEventHandler = new TorEventHandler(this);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue