Tor Onion Proxy Library에서 계속 사용하려면 Linux 용 Android 용 최신 Tor를 빌드해야합니다.Linux 용 Android 용 빌드
최신 안정기는 maint-0.3.1입니다.
Android NDK r15b를 사용하고 있습니다.
Tor Onion Proxy Library에서 계속 사용하려면 Linux 용 Android 용 최신 Tor를 빌드해야합니다.Linux 용 Android 용 빌드
최신 안정기는 maint-0.3.1입니다.
Android NDK r15b를 사용하고 있습니다.
아래에서 설명 할 해결책을 준비했습니다. 그것은 다양한 소스의 구성입니다. 스크립트는 더욱 최적화 될 수 있습니다.
지침은 사용 토르를 구축 할 수 있도록 :
주요 단계는 다음과 같습니다.
export ANDROID_NDK_HOME=/home/marco/Android/ndkr15b
작업 :
설치된 NDK의 위치를 지정rm -Rf native
mkdir native
mkdir native/lib
cd native
도 참조 these instructions.
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
setenv-android.sh는 here에서 다운로드하고, 편집 또는 사용하도록 이미 개질 this version를 사용 _ANDROID_EABI = "아암 리눅스 androideabi-4.9"될 수있다.
# ANDROID_NDK_ROOT is required by setenv-android.sh
export ANDROID_NDK_ROOT=$ANDROID_NDK_HOME
. ../setenv-android.sh
# ANDROID_TOOLCHAIN is now set
tar -xvzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
# openssl engine is needed by libevent
./config shared no-ssl2 no-ssl3 no-comp no-hw --openssldir=/usr/local/ssl/android-16/
make depend
make all
돌봐 : 다음 명령은/usr/지방/포함/OpenSSL을,/usr/local/lib 등의/각각 크로스 컴파일 된 헤더와 libs와 설치합니다. 교차 컴파일 된 라이브러리는 토르와 링크 할 때 마지막 단계에서 사용됩니다.
sudo -E make install CC=$ANDROID_TOOLCHAIN/arm-linux-androideabi-gcc RANLIB=$ANDROID_TOOLCHAIN/arm-linux-androideabi-ranlib
cd ..
# go back to native folder
# when linking to, openssl libraries are still linked from /usr/local/lib/
cp ./openssl-1.1.0f/'*'.a lib/
cp -R ./openssl-1.1.0f/include/openssl ./include
rm -Rf libevent
. diff을 참조하십시오.
git clone https://github.com/marcotessarotto/libevent
cd libevent
export NDK=$ANDROID_NDK_ROOT
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-16 --toolchain=arm-linux-androideabi-4.9 --install-dir=`pwd`/android-toolchain-arm
export TOOLCHAIN_PATH=`pwd`/android-toolchain-arm/bin
export TOOL=arm-linux-androideabi
export NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}/${TOOL}
export CC="$NDK_TOOLCHAIN_BASENAME-gcc -D__ANDROID_API__=16 "
export CXX="$NDK_TOOLCHAIN_BASENAME-g++ -D__ANDROID_API__=16 "
export LINK=${CXX}
export LD=$NDK_TOOLCHAIN_BASENAME-ld
export AR=$NDK_TOOLCHAIN_BASENAME-ar
export RANLIB=$NDK_TOOLCHAIN_BASENAME-ranlib
export STRIP=$NDK_TOOLCHAIN_BASENAME-strip
export ARCH_FLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16"
export ARCH_LINK="-march=armv7-a -Wl,--fix-cortex-a8"
export CPPFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export CXXFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions "
export CFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export LDFLAGS=" ${ARCH_LINK} "
./autogen.sh
./configure --host=arm-linux-androideabi
make
# all tests should pass successfully
#copy headers and libary in work folder
cp .libs/libevent.a ../lib
cp -R include/* ../include
cd ..
git clone https://github.com/torproject/tor
cd tor/
git checkout remotes/origin/maint-0.3.1
export NDK_ROOT=$ANDROID_NDK_ROOT
echo "SETTING UP CROSS COMPILER"
# export needed variables
export NDK_TOOLCHAIN=$NDK_ROOT/my-android-toolchain
# remove the old toolchain
rm -rf $NDK_TOOLCHAIN
# create the toolchain
$NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-16 --install-dir=$NDK_TOOLCHAIN
# export needed variables for crosscompile
export PATH="$NDK_TOOLCHAIN/bin/:$PATH"
export HOST=arm-linux-androideabi
export CC=$HOST-gcc
export CXX=$HOST-g++
export AR=$HOST-ar
export LD=$HOST-ld
export AS=$HOST-as
export NM=$HOST-nm
export STRIP=$HOST-strip
export RANLIB=$HOST-ranlib
export OBJDUMP=$HOST-objdump
export CPPFLAGS="--sysroot=$NDK_TOOLCHAIN/sysroot -I$NDK_TOOLCHAIN/sysroot/usr/include -I$NDK_TOOLCHAIN/include -I../include -L../lib "
export LDFLAGS="-L$NDK_TOOLCHAIN/sysroot/usr/lib -L$NDK_TOOLCHAIN/lib -L../lib"
export CC="$HOST-gcc -D__ANDROID_API__=16 "
export CXX="$HOST-g++ -D__ANDROID_API__=16 "
./autogen.sh
./configure --host=arm-linux-eabi --disable-asciidoc --prefix=$NDK_TOOLCHAIN --with-openssl-dir=../lib --enable-static-openssl --with-libevent-dir=../lib --enable-static-libevent
make
#some tests fail on compilation, but tor is built (in src/or/tor) and I confirm that it works on Android 6
cd ..
토르 (0.3.2.0 알파 DEV)은 패치를 사용하여 토 양파 프록시 라이브러리 개시로부터 로그 캣이다 (아래 참조)
09-14 12:25:43.059 13520-13544/? I/c*.m*.t*.t*.c: Sep 14 12:25:43.058 [notice] Tor 0.3.2.0-alpha-dev (git-d71a00e91f3921f6) running on Linux with Libevent 2.0.23-stable, OpenSSL 1.1.0f, Zlib 1.2.8, Liblzma N/A, and Libzstd N/A.
09-14 12:25:43.060 13520-13544/? I/c*.m*.t*.t*.c: Sep 14 12:25:43.058 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
09-14 12:25:43.060 13520-13544/? I/c*.m*.t*.t*.c: Sep 14 12:25:43.058 [notice] This version is not a stable Tor release. Expect more bugs than usual.
09-14 12:25:43.060 13520-13544/? I/c*.m*.t*.t*.c: Sep 14 12:25:43.059 [notice] Read configuration file "/data/user/0/rs.tlcadvancedtech.ultravpnandroidclient/app_torfiles/torrc".
09-14 12:25:43.080 13520-13544/? I/c*.m*.t*.t*.c: Sep 14 12:25:43.079 [notice] I think we have 8 CPUS, but only 2 of them are available. Telling Tor to only use 2. You can override this with the NumCPUs option
09-14 12:26:04.593 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 53%: Loading relay descriptors
09-14 12:26:07.023 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 59%: Loading relay descriptors
09-14 12:26:08.472 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 67%: Loading relay descriptors
09-14 12:26:09.027 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 72%: Loading relay descriptors
09-14 12:26:09.689 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 78%: Loading relay descriptors
09-14 12:26:10.301 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 80%: Connecting to the Tor network
09-14 12:26:11.633 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Bootstrapped 90%: Establishing a Tor circuit
09-14 12:26:14.637 13520-13548/? I/c*.m*.t*.t*.d: message: severity: NOTICE, msg: Tor has successfully opened a circuit. Looks like client functionality is working.
최신 tor 버전 (0.3.2.0 alpha-dev 작성시)을 사용하려면 torrc 구성 파일 가장 최근의 tor는 설정 파일 안의 상대 경로에서 더 엄격하기 때문에 Tor Onion Proxy Library에 의해 다르게 생성됩니다 (상대 파일 이름이 지정되면 tor가 종료됩니다).
패치 된 Tor Onion Proxy Library는 here입니다.