Skip to content
This repository has been archived by the owner on Dec 18, 2022. It is now read-only.

Commit

Permalink
Prepare 2.0.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
05nelsonm committed Oct 18, 2020
1 parent e9fbb8b commit 98fbf8a
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 26 deletions.
8 changes: 8 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Change Log

## Version 2.0.0 (2020-10-18)
- Adds support for Version 3 Hidden Service Client Authentication
- The `V3ClientAuthManager` class can be obtained from `TorServiceController.getV3ClientAuthManager`
after Builder initialization, which facilitates easily adding private keys to Tor's `ClientAuthDir`.
- Adds better support for multi-module projects by moving `topl-service`'s public
classes/abstractions to a separate module, `topl-service-base`.
- See [Migrations](./migration.md) for details on how to migrate from `1.0.0` to `2.0.0`

## Version 1.0.0-beta02 (2020-10-08)
- Bug Fix: Service re-binding when application sent to background inhibiting call to stopSelf in
some instances [a544c73](https://github.com/05nelsonm/TorOnionProxyLibrary-Android/pull/85/commits/a544c73a7c28211c75063df6af30001f2ec1c071)
Expand Down
55 changes: 39 additions & 16 deletions docs/get_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,29 @@ Get Started
- Your application's `torrc` file gets created for you based on what you have stored in
[TorServicePrefs](./topl-service-base/io.matthewnelson.topl_service_base/-tor-service-prefs/index.md).
If nothing is in `TorServicePrefs` for that particular setting, then it will fall back on
your static/default [TorSettings](./topl-core-base/io.matthewnelson.topl_core_base/-tor-settings/index.md)
your static/default
[ApplicationDefaultTorSettings](./topl-service-base/io.matthewnelson.topl_service_base/-application-default-tor-settings/index.md)
that you supply upon initialization of `TorServiceController.Builder`.
- **Tor Binaries**:
- I use The GuardianProject's <a href="https://github.com/guardianproject/tor-android" target="_blank">tor-android</a>
project to build binaries, and provided them
<a href="https://github.com/05nelsonm/TOPL-Android-TorBinary" target="_blank">here</a>. The
difference is in how they are packaged as a dependency, and the contents of what you are
importing as a dependency. I package them in the `jniLibs` directory so that the Android OS
will automatically install them into your application's `/data/app/...` directory, and include
no unnecessary classes or resources; just the binaries. Android API 29+ no longer supports
execution of executable files from your application's `/data/data/` directory, and must now be
installed in the `context.applicationInfo.nativeLibraryDir` directory (aka, `/data/app/...`)
to execute.
project to re-package and provide *only* the binaries, as that's all which is needed by
TOPL-Android. As of version 0.4.4.0, the binaries are simply copied instead of being
re-built (prior versions I was building, but build reproducability is problematic...) which can
be verified by checking the sha256sums (see the repo's README for instructions on how to do that).
- They can be found <a href="https://github.com/05nelsonm/TOPL-Android-TorBinary" target="_blank">here</a>.
- The only difference is the contents of what you are importing as a dependency. I package
them in the `jniLibs` directory so that the Android OS will automatically extract them to
your application's `/data/app/...` directory, and include no unnecessary classes or
resources; just the binaries.
- Android API 29+ no longer supports execution of executable files from your application's
`/data/data/` directory, and must now be installed in the
`context.applicationInfo.nativeLibraryDir` directory (aka, `/data/app/...`) to execute.
- Nothing more is needed in terms of configuring initialization via the
`TorServiceController.Builder`, as files will be installed in the correct directory, and
named to match what `topl-service` looks for.
- If you wish to use GuardianProject's binaries, see
`TorServiceController.Builder.useCustomTorConfigFiles`, as files will be installed in the
correct directory, and named to match what `topl-service` looks for.
- If you wish to use GuardianProject's dependency, see
<a href="https://github.com/guardianproject/tor-android" target="_blank">tor-android</a>.
- You'll need to use their `NativeResouceInstaller` to install the binaries.
- You'll need to use their `NativeResourceInstaller` to install the binaries.
- You'll need to also implement `TorServiceController.Builder.useCustomTorConfigFiles`
method when initializing `topl-service` and provide it with your own
[TorConfigFiles](./topl-core-base/io.matthewnelson.topl_core_base/-tor-config-files/index.md).
Expand All @@ -59,18 +63,37 @@ Get Started
implementation "io.matthewnelson.topl-android:topl-service:{{ topl_android.release }}"
```
- Create a new class which extends [TorSettings](./topl-core-base/io.matthewnelson.topl_core_base/-tor-settings/index.md)
- Create a new class which extends [ApplicationDefaultTorSettings](./topl-service-base/io.matthewnelson.topl_service_base/-application-default-tor-settings/index.md)
and apply your own default settings.
- See the SampleApp's
<a href="https://github.com/05nelsonm/TorOnionProxyLibrary-Android/blob/master/sampleapp/src/main/java/io/matthewnelson/sampleapp/topl_android/MyTorSettings.kt" target="_blank">MyTorSettings</a>
<a href="https://github.com/05nelsonm/TorOnionProxyLibrary-Android/blob/master/sampleapp/src/main/java/io/matthewnelson/sampleapp/topl_android/MyTorSettings.kt" target="_blank">MyTorSettings</a>
class for help.
- Also checkout the documentation in the `TorSettings` class for more of a breakdown and help.
- Optional: If you wish to receive broadcasts (TorState/NetworkState, Port Information, Logs, etc.),
Create a new class which extends [TorServiceEventBroadcaster](./topl-service-base/io.matthewnelson.topl_service_base/-tor-service-event-broadcaster/index.md)
and implement the abstract methods.
- See the SampleApp's
<a href="https://github.com/05nelsonm/TorOnionProxyLibrary-Android/blob/master/sampleapp/src/main/java/io/matthewnelson/sampleapp/topl_android/MyEventBroadcaster.kt" target="_blank">MyEventBroadcaster</a>
class for help.
- Use the [TorServiceController.Builder.setEventBroadcaster](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/-builder/set-event-broadcaster.md)
and provide your implementation when initializing `topl-service`.
- In your Application class' `onCreate` implement, and customize as desired, the
[TorServiceController.Builder](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/-builder/index.md)
- Call APIs provided from
[TorServiceController.Companion](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/index.md)
### Multi-Module projects
- If you have a `tor` module in your project that extends the api's in `TorServiceController` to centralize
control of `topl-service`, other modules depending on it need only import the `topl-service-base`
module which provides all of the necessary public classes/abstractions.
- In your `tor` module's `build.gradle` file, add the following to the `dependencies` block:
```groovy
api "io.matthewnelson.topl-android:topl-service-base:{{ topl_android.release }}"
```
### Using the SNAPSHOT version of topl-service
Expand Down
12 changes: 6 additions & 6 deletions docs/roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<!-- Unchecked = :material-checkbox-blank-outline: -->

:material-checkbox-marked: Alpha release
:material-checkbox-blank-outline: Pass-through commands to the TorControlConnection
:material-checkbox-blank-outline: Settings/Debug Activity (so devs don't have to create one if they don't wish to)
:material-checkbox-marked: Builder Option to disable stop service on task termination
:material-checkbox-blank-outline: Transport Plugin support
:material-checkbox-blank-outline: v3 Hidden Service Authentication support
:material-checkbox-blank-outline: v3 Hidden Service Creation
:material-checkbox-marked: Builder Option to disable stop service on task termination
:material-checkbox-marked: v3 Hidden Service Client Authentication support
:material-checkbox-blank-outline: Pass-through commands to the TorControlConnection
:material-checkbox-blank-outline: Transport Plugin support
:material-checkbox-blank-outline: v3 Hidden Service Creation
:material-checkbox-blank-outline: Settings/Debug Activity (so devs don't have to create one if they don't wish to)

[back](index.md)
6 changes: 4 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m
org.gradle.caching=true

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
Expand All @@ -21,13 +23,13 @@ android.enableJetifier=true
kotlin.code.style=official

GROUP=io.matthewnelson.topl-android
VERSION_NAME=1.1.0-alpha01c-SNAPSHOT
VERSION_NAME=2.0.0

# The trailing 2 digits are for `alpha##` releases. For example:
# 4.4.1-alpha02 = 441102 where `102` stands for alpha02
# 4.4.1-beta01 = 441201 where `201` stands for beta01
# 4.4.1-rc01 = 441301 where `301` stands for rc01
VERSION_CODE=110101
VERSION_CODE=200000

POM_INCEPTION_YEAR=2020

Expand Down
4 changes: 2 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extra:
topl_android:
release: '1.0.0-beta02'
next_release: '1.0.0-rc01'
release: '2.0.0'
next_release: '2.0.1'
social:
- icon: material/earth
link: https://matthewnelson.io
Expand Down

0 comments on commit 98fbf8a

Please sign in to comment.