使用 ProcessBuilder 运行 tor 二进制文件



我想在Android上以编程方式运行Tor服务。

final String path = getNoBackupFilesDir().getCanonicalPath();
            final ProcessBuilder torpb = new ProcessBuilder(
                    String.format("%s/%s", path, "tor"),
                    "HiddenServiceDir " + path + "/hidden_service",
                    "HiddenServicePort 80 127.0.0.1:8080"
            );
            torpb.directory(new File(path));
            mProcessTor = torpb.start();

但是我会收到以下错误消息。

11 月 22 日 23:31:53.041 [通知]

Tor 0.4.0.5 运行在 Linux 上,具有 Libevent 2.1.8-stable、OpenSSL 1.1.1b、Zlib 1.2.11、Liblzma N/A 和 Libzstd N/
A.Nov 22 23:31:53.042 [通知] 如果你用错了,Tor 帮不了你!了解如何在
11 月 22 日 23:31:53.042 https://www.torproject.org/download/download#warning 确保安全 [通知] 配置文件"//.torrc"不存在,使用合理的默认值。
11 月 22 日 23:31:53.058 [通知] 打开袜子侦听器 127.0.0.1:9050 11 月 22 日 23:31:53.058 [通知] 打开 Socks 侦听器 127.0.0.1:9050

11 月 22 日 23:31:53.058 [警告] 创建目录//.tor 时出错:只读文件系统
11 月 22 日 23:31:53.058 [警告] 解析/验证配置失败:无法创建私有数据目录"//.tor">
11 月 22 日 23:31:53.058 [err] 读取配置失败 - 请参阅上面的警告。

我想我可能会错过一些参数来运行 tor 服务?
什么是//.tor?

谢谢!!

它通过修改源代码来工作:

final String path = getNoBackupFilesDir().getCanonicalPath();
            final ProcessBuilder torpb = new ProcessBuilder(
                    String.format("%s/%s", path, "tor"),
                    "DataDirectory",
                    path + "/tordata",
                    "HiddenServiceDir",
                    path + "/hidden_service",
                    "HiddenServicePort",
                    "80 127.0.0.1:8080"
            );
            torpb.directory(new File(path));
            mProcessTor = torpb.start();

最新更新