How briar/onionwrapper works
Onion Wrapper is a Java library that manages Tor processes across Android, Linux, macOS, and Windows. Applications call the TorWrapper API to start or stop Tor, configure network and bridge options, publish hidden services, and observe bootstrap and connection state. The shared core installs and controls the process; platform adapters supply resources and platform-specific behavior. Separate location and circumvention components support country-based bridge recommendations. The README documents supported transports and Android wake-lock behavior; some subsystem links are based on documentation or indexed references rather than sampled implementation details.
Main entry points: AbstractTorWrapper.java Process Lifecycle · JavaTorWrapper.java Java Wrapper · LocationUtils.java Location API · CircumventionProviderImpl.java Bridge Selection
Components 19
Application API
- Tor Wrapper API
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/TorWrapper.java
Tor Runtime
- Process Lifecycle
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/AbstractTorWrapper.java - Tor Utilities
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/TorUtils.java
Bridge Selection
- Location API
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java - Bridge Recommendations API
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/CircumventionProvider.java - Bridge Selection
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/CircumventionProviderImpl.java - Bridge Lists
onionwrapper-core/src/main/resources
Platform Adapters
- Android Location
onionwrapper-android/src/main/java/org/briarproject/onionwrapper/AndroidLocationUtils.java - Java Location
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtils.java - Android Wrapper
onionwrapper-android/src/main/java/org/briarproject/onionwrapper/AndroidTorWrapper.java - Java Wrapper
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaTorWrapper.java - Unix Wrapper
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/UnixTorWrapper.java - macOS Wrapper
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/MacTorWrapper.java - Windows Wrapper
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/WindowsTorWrapper.java
Other components
- Application
- Tor Process
- Tor Network
- Tor and Lyrebird Binaries
- Android Wake Lock
Connections 18
- Application → Tor Wrapper API: calls
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/TorWrapper.java - Tor Wrapper API → Process Lifecycle: implemented by
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/AbstractTorWrapper.java - Process Lifecycle → Tor Process: starts and controls
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/AbstractTorWrapper.java - Process Lifecycle → Tor Utilities: uses
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/AbstractTorWrapper.java - Tor Process → Tor Network: connects to
README.md - Process Lifecycle → Tor and Lyrebird Binaries: installs executables
README.md - Application → Location API: queries country
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/LocationUtils.java - Android Location → Location API: implements
onionwrapper-android/src/main/java/org/briarproject/onionwrapper/AndroidLocationUtils.java - Java Location → Location API: implements
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtils.java - Application → Bridge Recommendations API: requests bridges
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/CircumventionProvider.java - Bridge Selection → Bridge Recommendations API: implements
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/CircumventionProviderImpl.java - Bridge Selection → Bridge Lists: reads
onionwrapper-core/src/main/java/org/briarproject/onionwrapper/CircumventionProviderImpl.java - Android Wrapper → Process Lifecycle: extends
onionwrapper-android/src/main/java/org/briarproject/onionwrapper/AndroidTorWrapper.java - Java Wrapper → Process Lifecycle: extends
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaTorWrapper.java - Unix Wrapper → Java Wrapper: extends
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/UnixTorWrapper.java - macOS Wrapper → Unix Wrapper: extends
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/MacTorWrapper.java - Windows Wrapper → Java Wrapper: extends
onionwrapper-java/src/main/java/org/briarproject/onionwrapper/WindowsTorWrapper.java - Android Wrapper → Android Wake Lock: uses
onionwrapper-android/src/main/java/org/briarproject/onionwrapper/AndroidTorWrapper.java