Run zerotier in the background after booting!
No conflicts with other Android VPN service!
Use Android App to control ZeroTier
Support for Private Root Servers
a version is built with Android NDK Toolchain, supporting api 28 (Android 9.0) and above.
another version is build with GCC toolchain, linking to Linux Syscalls statically
Unofficial planet supported; SSO (zeroidc) supported in the version built with GCC for AArch64
AArch64 suppots ARMv8-A and above; Arm version supports ARMv7-A (compiling with -march=armv7-a
)
Replace /data/adb/zerotier/home/planet
with your own planet
file.
Does not need root privilege
Feature | Supported? |
---|---|
status | β |
start/stop | β |
join/leave network | β |
join/leave planet | β |
Use zerotier.sh
to start/stop or inspect status.
Usage: zerotier.sh {start|stop|restart|status}
Use zerotier-cli / zerotier-idtool
for ZeroTierOne command line operations.
(zerotier-one
not copied to /system/bin
)
/data/adb/zerotier
βββ home # zerotier-one home directory
βΒ Β βββ authtoken.secret # zerotier-one http interface authtoken
βΒ Β βββ zerotier-one.pid # zerotier-one pid
βΒ Β βββ zerotier-one.port # zerotier-one port
βΒ Β βββ ...
βββ lib # only in NDK compiled module
βΒ Β βββ libc++_shared.so # NDK dynamic library
βββ run
βΒ Β βββ daemon.log # service.sh log
βΒ Β βββ pipe # named pipe to interact with service.sh
βΒ Β βββ zerotier.log # zerotier-one log
βΒ Β βββ ...
βββ zerotier-cli -> zerotier-one # zerotier-one command line interface
βββ zerotier-idtool -> zerotier-one # zerotier-one id tool
βββ zerotier-one # zerotier-one executable
βββ zerotier.sh
all the scripts and binaries are placed in /data/adb/zerotier/
, and all copied to /system/bin
(in PATH) to be executed directly (except zerotier-one
)
zerotier.sh
uses named pipe to communicate with service.sh
, preventing ZeroTier to start as a subprocess of Shell.
log files are placed in run
, daemon.log
for service.sh
and zerotier.log
for ZeroTierOne.
refer to .github/workflow/build-{gcc|ndk}.yml
for detailed information.