Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在Android 9.0(Termux)上Prebuilt(arm64)无法下载订阅内容且尝试手动编译失败 #54

Closed
walwan opened this issue Feb 11, 2020 · 11 comments

Comments

@walwan
Copy link

walwan commented Feb 11, 2020

Device: XiaoMi 5
Host: Mokee Android 9.0 (Termux 0.92)
Linux Kernel Version: 3.18.120
Architecture: aarch64

  1. Prebuilt(v0.6.1 arm64)无法正常运行
    脱敏Log:

[2020/02/11 Tue 04:53:00.540402][INFO]Stair Speedtest v0.6.1-beta started in CLI mode.
[2020/02/11 Tue 04:53:00.550165][INFO]Found V2Ray core at path tools/clients/v2ray
[2020/02/11 Tue 04:53:00.550315][INFO]Found Shadowsocks-libev at path tools/clients/ss-local
[2020/02/11 Tue 04:53:00.550366][INFO]Found ShadowsocksR-libev at path tools/clients/ssr-local
[2020/02/11 Tue 04:53:00.550541][INFO]Using local port: 65432
[2020/02/11 Tue 04:53:00.550579][INFO]Init completed.
[2020/02/11 Tue 04:53:02.775610][INFO]Input data: [A SSR Subscription Link]
[2020/02/11 Tue 04:53:02.776286][INFO]Received Link.
[2020/02/11 Tue 04:53:03.594876][INFO]Downloading subscription data...
[2020/02/11 Tue 04:53:08.616852][WARNING]Cannot download subscription directly. Using system proxy.
[2020/02/11 Tue 04:53:08.617466][WARNING]No system proxy is set. Skipping.
[2020/02/11 Tue 04:53:08.618070][ERROR]Cannot download subscription data.
[2020/02/11 Tue 04:53:08.618542][ERROR]No valid link found.
[2020/02/11 Tue 04:53:08.618868][INFO]Program terminated.
--EOF--

我翻了一下telegram的讨论组,有人说用termux-chroot可以正常运行subconverter,故尝试使用termux-chroot运行stairspeedtest,结果与直接运行一样。

  1. 手动编译失败
    拉取源代码后,修改scripts/config.termux.sh中安装包部分"libz-static"为"zlib-static",并添加了"pcre-static"、"pcre2-static"与"pkg-config"。
    执行此文件,正常结束。
    后执行
    “mkdir stairspeedtest-reborn-build"
    "cd stairspeedtest-reborn-build"
    "cmake ../stairspeedtest-reborn/"
    至此,一切正常结束
    在进行编译“make -j1”时,
    报error错误,编译失败,详见下方log。

CMake Log:

-- The CXX compiler identification is Clang 9.0.1
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for MSG_NOSIGNAL
-- Looking for MSG_NOSIGNAL - found
-- Found PkgConfig: /data/data/com.termux/files/usr/bin/pkg-config (found version "0.29.2")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Checking for module 'libevent'
-- Found libevent, version 2.1.11
-- Found CURL: /data/data/com.termux/files/usr/lib/libcurl.so (found suitable version "7.68.0", minimum required is "7.54.0")
-- Found OpenSSL: /data/data/com.termux/files/usr/lib/libcrypto.so (found suitable version "1.1.1d", minimum required is "1.1.0")
-- Found rapidjson header files in /data/data/com.termux/files/usr/include
-- Found ZLIB: /data/data/com.termux/files/usr/lib/libz.so (found version "1.2.11")
-- Found PNG: /data/data/com.termux/files/usr/lib/libpng.so (found suitable version "1.6.37", minimum required is "1.6")
-- Found Freetype: /data/data/com.termux/files/usr/lib/libfreetype.so (found version "2.10.1")
-- Found PNG: /data/data/com.termux/files/usr/lib/libpng.so (found version "1.6.37")
-- Checking for module 'yaml-cpp'
-- Found yaml-cpp, version 0.6.3
-- Found PCRECPP: /data/data/com.termux/files/usr/lib/libpcrecpp.so
-- Configuring done
-- Generating done
-- Build files have been written to: /data/data/com.termux/files/home/stairspeedtest-reborn-build

Build Log:

make[1]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[2]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
Scanning dependencies of target stairspeedtest
make[2]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[2]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
[ 5%] Building CXX object CMakeFiles/stairspeedtest.dir/src/geoip.cpp.o
[ 11%] Building CXX object CMakeFiles/stairspeedtest.dir/src/logger.cpp.o
[ 17%] Building CXX object CMakeFiles/stairspeedtest.dir/src/main.cpp.o
[ 23%] Building CXX object CMakeFiles/stairspeedtest.dir/src/misc.cpp.o
/data/data/com.termux/files/home/stairspeedtest-reborn/src/misc.cpp:36:22: error: expected namespace name
using namespace std::__cxx11;
~~~~~^
1 error generated.
make[2]: *** [CMakeFiles/stairspeedtest.dir/build.make:102: CMakeFiles/stairspeedtest.dir/src/misc.cpp.o] Error 1
make[2]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/stairspeedtest.dir/all] Error 2
make[1]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make: *** [Makefile:130: all] Error 2

@walwan walwan changed the title 在Android 9.0(Termux)上Prebuilt(arm64)无法正常运行且手动编译失败 在Android 9.0(Termux)上Prebuilt(arm64)无法下载订阅内容且尝试手动编译失败 Feb 11, 2020
@tindy2013
Copy link
Owner

tindy2013 commented Feb 12, 2020

在 Termux 上使用 termux-chroot 直接运行预编译版本实测无问题

@tindy2013
Copy link
Owner

已修正代码 可以重新尝试编译

@walwan
Copy link
Author

walwan commented Feb 13, 2020

在 Termux 上使用 termux-chroot 直接运行预编译版本实测无问题

再次测试,仍然无法正常获取节点信息。不知是不是我使用termux-chroot的方式不对。
解压预编译版本,在目录里执行"termux-chroot ./stairspeedtest"后,输入订阅连接,仍然不能获取到内容。

已修正代码 可以重新尝试编译

  1. 运行scripts/config.termux.sh文件,正常结束。
  2. 可能CMakeLists.txt文件的第104行应为"TARGET_LINK_LIBRARIES(stairspeedtest ${PCRE2_LIBRARY})",原来文件cmake指令不过,修改后可以正常生产makefile文件。
  3. cmake指令执行完之后,进行编译"multithread_test.cpp"文件过程中,报错。

CMake Log:

$ cmake ../stairspeedtest-reborn
-- The CXX compiler identification is Clang 9.0.1
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++
-- Check for working CXX compiler: /data/data/com.termux/files/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_TO_STRING
-- Performing Test HAVE_TO_STRING - Failed
-- Looking for MSG_NOSIGNAL
-- Looking for MSG_NOSIGNAL - found
-- Found PkgConfig: /data/data/com.termux/files/usr/bin/pkg-config (found version "0.29.2")
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Checking for module 'libevent'
-- Found libevent, version 2.1.11
-- Found CURL: /data/data/com.termux/files/usr/lib/libcurl.so (found suitable version "7.68.0", minimum required is "7.54.0")
-- Found OpenSSL: /data/data/com.termux/files/usr/lib/libcrypto.so (found suitable version "1.1.1d", minimum required is "1.1.0")
-- Found rapidjson header files in /data/data/com.termux/files/usr/include
-- Found ZLIB: /data/data/com.termux/files/usr/lib/libz.so (found version "1.2.11")
-- Found PNG: /data/data/com.termux/files/usr/lib/libpng.so (found suitable version "1.6.37", minimum required is "1.6")
-- Found Freetype: /data/data/com.termux/files/usr/lib/libfreetype.so (found version "2.10.1")
-- Found PNG: /data/data/com.termux/files/usr/lib/libpng.so (found version "1.6.37")
-- Checking for module 'yaml-cpp'
-- Found yaml-cpp, version 0.6.3
-- Found PCRE2: /data/data/com.termux/files/usr/lib/libpcre2-8.so
-- Configuring done
-- Generating done
-- Build files have been written to: /data/data/com.termux/files/home/stairspeedtest-reborn-build

注意到"-- Performing Test HAVE_TO_STRING - Failed",不知有无影响。

Build Log:

$ make -j1
make[1]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[2]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
Scanning dependencies of target stairspeedtest
make[2]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[2]: Entering directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
[ 5%] Building CXX object CMakeFiles/stairspeedtest.dir/src/geoip.cpp.o
[ 11%] Building CXX object CMakeFiles/stairspeedtest.dir/src/logger.cpp.o
[ 17%] Building CXX object CMakeFiles/stairspeedtest.dir/src/main.cpp.o
[ 23%] Building CXX object CMakeFiles/stairspeedtest.dir/src/misc.cpp.o
[ 29%] Building CXX object CMakeFiles/stairspeedtest.dir/src/multithread_test.cpp.o
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:19:22: error: expected namespace name
using namespace std::__cxx11;
~~~~~^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:405:60: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEDL, "Starting up thread #" + to_string(i + 1) + ".");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:433:57: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEDL, "Running threads: " + to_string(running) + ", total received bytes: " + to_string(transferred_bytes)
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:433:107: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEDL, "Running threads: " + to_string(running) + ", total received bytes: " + to_string(transferred_bytes)
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:434:51: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
+ ", current received bytes: " + to_string(this_bytes) + ".");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:457:47: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEDL, "Downloaded " + to_string(received_bytes) + " bytes in " + to_string(deltatime) + " milliseconds.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:457:90: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEDL, "Downloaded " + to_string(received_bytes) + " bytes in " + to_string(deltatime) + " milliseconds.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:505:67: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEUL, "Starting up worker thread #" + to_string(i + 1) + ".");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:523:64: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEUL, "Running worker threads: " + to_string(running) + ", total sent bytes: " + to_string(transferred_bytes)
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:523:110: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEUL, "Running worker threads: " + to_string(running) + ", total sent bytes: " + to_string(transferred_bytes)
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:524:47: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
+ ", current sent bytes: " + to_string(this_bytes) + ".");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:542:45: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEUL, "Uploaded " + to_string(received_bytes) + " bytes in " + to_string(deltatime) + " milliseconds.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:542:88: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_FILEUL, "Uploaded " + to_string(received_bytes) + " bytes in " + to_string(deltatime) + " milliseconds.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:608:110: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "Website ping started. Target: '" + target + "' . Proxy: '" + localaddr + ":" + to_string(localport) + "' .");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:630:93: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "ERROR: Connect to SOCKS5 server " + localaddr + ":" + to_string(localport) + " failed.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:645:74: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "ERROR: Connect to " + host + ":" + to_string(port) + " through SOCKS5 server failed.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:670:82: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "ERROR: Connect to " + host + ":" + to_string(port) + " through SOCKS5 server failed.");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:683:96: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "Accessing '" + target + "' - Fail - time=" + to_string(deltatime) + "ms");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
/data/data/com.termux/files/home/stairspeedtest-reborn/src/multithread_test.cpp:690:99: error: use of undeclared identifier 'to_string'; did you mean 'std::to_string'?
writeLog(LOG_TYPE_GPING, "Accessing '" + target + "' - Success - time=" + to_string(deltatime) + "ms");
^~~~~~~~~
std::to_string
/data/data/com.termux/files/usr/bin/../include/c++/v1/string:4197:25: note: 'std::to_string' declared here
_LIBCPP_FUNC_VIS string to_string(int __val);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [CMakeFiles/stairspeedtest.dir/build.make:115: CMakeFiles/stairspeedtest.dir/src/multithread_test.cpp.o] Error 1
make[2]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/stairspeedtest.dir/all] Error 2
make[1]: Leaving directory '/data/data/com.termux/files/home/stairspeedtest-reborn-build'
make: *** [Makefile:130: all] Error 2

@walwan
Copy link
Author

walwan commented Feb 13, 2020

补充测试:
我尝试用termux-chroot在手机上运行subconverter(执行"termux-chroot ./subconverter"),转换时仍然提示订阅链接没有内容。
然后我手动编译subconverter,能够正常运行。
故推测我这个手机用termux可能只能编译后使用stairspeedtest-reborn

@walwan
Copy link
Author

walwan commented Feb 15, 2020

已修正代码 可以重新尝试编译

已经成功编译,谢谢!
注:需要安装libandroid-spawn-static包。

@walwan walwan closed this as completed Feb 15, 2020
@w311ang
Copy link

w311ang commented May 3, 2020

已修正代码 可以重新尝试编译

已经成功编译,谢谢!
注:需要安装libandroid-spawn-static包。

包不存在?

$ pkg install libandroid-spawn-static
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libandroid-spawn-static

libandroid-spawn也不行

$ pkg install libandroid-spawn
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libandroid-spawn

@walwan
Copy link
Author

walwan commented May 3, 2020

您好,经过和作者确认,libandroid-spawn-static包不必安装。拉取最新代码后,注释"src/processes.cpp"文件第16行引用(#include <spawn.h>)即可。实现里没用到这个包,好像是个一直没改的地方。
如您希望安装一下,我是有这个包的。您用"pkg search spwan"搜索一下?

@w311ang
Copy link

w311ang commented May 10, 2020

您好,经过和作者确认,libandroid-spawn-static包不必安装。拉取最新代码后,注释"src/processes.cpp"文件第16行引用(#include <spawn.h>)即可。实现里没用到这个包,好像是个一直没改的地方。
如您希望安装一下,我是有这个包的。您用"pkg search spwan"搜索一下?

$ pkg search spwan
Sorting... Done
Full Text Search... Done
$ pkg search libandroid
Sorting... Done
Full Text Search... Done
libandroid-glob/stable,now 0.6-1 arm [installed,automatic]
  Shared library for the glob(3) system function

libandroid-glob-static/stable 0.6-1 arm
  Static libraries for libandroid-glob

libandroid-shmem/stable 0.2.1-1 arm
  System V shared memory emulation on Android using ashmem

libandroid-shmem-static/stable 0.2.1-1 arm
  Static libraries for libandroid-shmem

libandroid-support/stable,now 24-6 arm [installed]
  Library extending the Android C library (Bionic) for additional multibyte, locale and math support

libandroid-support-static/stable 24-6 arm
  Static libraries for libandroid-support

@w311ang
Copy link

w311ang commented May 10, 2020

您好,经过和作者确认,libandroid-spawn-static包不必安装。拉取最新代码后,注释"src/processes.cpp"文件第16行引用(#include <spawn.h>)即可。实现里没用到这个包,好像是个一直没改的地方。
如您希望安装一下,我是有这个包的。您用"pkg search spwan"搜索一下?

我在termux-packages这个库里找到了libandroid-spawn这个包,而我Termux没有这个库,而强加进去会导致诸多问题,可能是旧版的问题?而新版只支持7.0以上安卓了好像,那就是我的问题了

@walwan
Copy link
Author

walwan commented May 10, 2020

我觉得可能是版本低了。似乎新系统版本和老系统版本用的包源不一样。

@w311ang
Copy link

w311ang commented Jul 16, 2020

完美解决方案termux/termux-app#1138 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants