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

Commit 98fbf8a

Browse files
committed
Prepare 2.0.0 release
1 parent e9fbb8b commit 98fbf8a

5 files changed

Lines changed: 59 additions & 26 deletions

File tree

docs/changelog.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Change Log
22

3+
## Version 2.0.0 (2020-10-18)
4+
- Adds support for Version 3 Hidden Service Client Authentication
5+
- The `V3ClientAuthManager` class can be obtained from `TorServiceController.getV3ClientAuthManager`
6+
after Builder initialization, which facilitates easily adding private keys to Tor's `ClientAuthDir`.
7+
- Adds better support for multi-module projects by moving `topl-service`'s public
8+
classes/abstractions to a separate module, `topl-service-base`.
9+
- See [Migrations](./migration.md) for details on how to migrate from `1.0.0` to `2.0.0`
10+
311
## Version 1.0.0-beta02 (2020-10-08)
412
- Bug Fix: Service re-binding when application sent to background inhibiting call to stopSelf in
513
some instances [a544c73](https://github.com/05nelsonm/TorOnionProxyLibrary-Android/pull/85/commits/a544c73a7c28211c75063df6af30001f2ec1c071)

docs/get_started.md

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,29 @@ Get Started
1919
- Your application's `torrc` file gets created for you based on what you have stored in
2020
[TorServicePrefs](./topl-service-base/io.matthewnelson.topl_service_base/-tor-service-prefs/index.md).
2121
If nothing is in `TorServicePrefs` for that particular setting, then it will fall back on
22-
your static/default [TorSettings](./topl-core-base/io.matthewnelson.topl_core_base/-tor-settings/index.md)
22+
your static/default
23+
[ApplicationDefaultTorSettings](./topl-service-base/io.matthewnelson.topl_service_base/-application-default-tor-settings/index.md)
2324
that you supply upon initialization of `TorServiceController.Builder`.
2425
- **Tor Binaries**:
2526
- I use The GuardianProject's <a href="https://github.com/guardianproject/tor-android" target="_blank">tor-android</a>
26-
project to build binaries, and provided them
27-
<a href="https://github.com/05nelsonm/TOPL-Android-TorBinary" target="_blank">here</a>. The
28-
difference is in how they are packaged as a dependency, and the contents of what you are
29-
importing as a dependency. I package them in the `jniLibs` directory so that the Android OS
30-
will automatically install them into your application's `/data/app/...` directory, and include
31-
no unnecessary classes or resources; just the binaries. Android API 29+ no longer supports
32-
execution of executable files from your application's `/data/data/` directory, and must now be
33-
installed in the `context.applicationInfo.nativeLibraryDir` directory (aka, `/data/app/...`)
34-
to execute.
27+
project to re-package and provide *only* the binaries, as that's all which is needed by
28+
TOPL-Android. As of version 0.4.4.0, the binaries are simply copied instead of being
29+
re-built (prior versions I was building, but build reproducability is problematic...) which can
30+
be verified by checking the sha256sums (see the repo's README for instructions on how to do that).
31+
- They can be found <a href="https://github.com/05nelsonm/TOPL-Android-TorBinary" target="_blank">here</a>.
32+
- The only difference is the contents of what you are importing as a dependency. I package
33+
them in the `jniLibs` directory so that the Android OS will automatically extract them to
34+
your application's `/data/app/...` directory, and include no unnecessary classes or
35+
resources; just the binaries.
36+
- Android API 29+ no longer supports execution of executable files from your application's
37+
`/data/data/` directory, and must now be installed in the
38+
`context.applicationInfo.nativeLibraryDir` directory (aka, `/data/app/...`) to execute.
3539
- Nothing more is needed in terms of configuring initialization via the
36-
`TorServiceController.Builder`, as files will be installed in the correct directory, and
37-
named to match what `topl-service` looks for.
38-
- If you wish to use GuardianProject's binaries, see
40+
`TorServiceController.Builder.useCustomTorConfigFiles`, as files will be installed in the
41+
correct directory, and named to match what `topl-service` looks for.
42+
- If you wish to use GuardianProject's dependency, see
3943
<a href="https://github.com/guardianproject/tor-android" target="_blank">tor-android</a>.
40-
- You'll need to use their `NativeResouceInstaller` to install the binaries.
44+
- You'll need to use their `NativeResourceInstaller` to install the binaries.
4145
- You'll need to also implement `TorServiceController.Builder.useCustomTorConfigFiles`
4246
method when initializing `topl-service` and provide it with your own
4347
[TorConfigFiles](./topl-core-base/io.matthewnelson.topl_core_base/-tor-config-files/index.md).
@@ -59,18 +63,37 @@ Get Started
5963
implementation "io.matthewnelson.topl-android:topl-service:{{ topl_android.release }}"
6064
```
6165
62-
- Create a new class which extends [TorSettings](./topl-core-base/io.matthewnelson.topl_core_base/-tor-settings/index.md)
66+
- Create a new class which extends [ApplicationDefaultTorSettings](./topl-service-base/io.matthewnelson.topl_service_base/-application-default-tor-settings/index.md)
6367
and apply your own default settings.
6468
- See the SampleApp's
65-
<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>
69+
<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>
6670
class for help.
6771
- Also checkout the documentation in the `TorSettings` class for more of a breakdown and help.
72+
73+
- Optional: If you wish to receive broadcasts (TorState/NetworkState, Port Information, Logs, etc.),
74+
Create a new class which extends [TorServiceEventBroadcaster](./topl-service-base/io.matthewnelson.topl_service_base/-tor-service-event-broadcaster/index.md)
75+
and implement the abstract methods.
76+
- See the SampleApp's
77+
<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>
78+
class for help.
79+
- Use the [TorServiceController.Builder.setEventBroadcaster](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/-builder/set-event-broadcaster.md)
80+
and provide your implementation when initializing `topl-service`.
6881
6982
- In your Application class' `onCreate` implement, and customize as desired, the
7083
[TorServiceController.Builder](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/-builder/index.md)
7184
7285
- Call APIs provided from
7386
[TorServiceController.Companion](./topl-service/io.matthewnelson.topl_service/-tor-service-controller/index.md)
87+
88+
### Multi-Module projects
89+
- If you have a `tor` module in your project that extends the api's in `TorServiceController` to centralize
90+
control of `topl-service`, other modules depending on it need only import the `topl-service-base`
91+
module which provides all of the necessary public classes/abstractions.
92+
93+
- In your `tor` module's `build.gradle` file, add the following to the `dependencies` block:
94+
```groovy
95+
api "io.matthewnelson.topl-android:topl-service-base:{{ topl_android.release }}"
96+
```
7497
7598
### Using the SNAPSHOT version of topl-service
7699

docs/roadmap.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
<!-- Unchecked = :material-checkbox-blank-outline: -->
66

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

1515
[back](index.md)

gradle.properties

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
# Specifies the JVM arguments used for the daemon process.
88
# The setting is particularly useful for tweaking memory settings.
99
org.gradle.jvmargs=-Xmx2048m
10+
org.gradle.caching=true
11+
1012
# When configured, Gradle will run in incubating parallel mode.
1113
# This option should only be used with decoupled projects. More details, visit
1214
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
@@ -21,13 +23,13 @@ android.enableJetifier=true
2123
kotlin.code.style=official
2224

2325
GROUP=io.matthewnelson.topl-android
24-
VERSION_NAME=1.1.0-alpha01c-SNAPSHOT
26+
VERSION_NAME=2.0.0
2527

2628
# The trailing 2 digits are for `alpha##` releases. For example:
2729
# 4.4.1-alpha02 = 441102 where `102` stands for alpha02
2830
# 4.4.1-beta01 = 441201 where `201` stands for beta01
2931
# 4.4.1-rc01 = 441301 where `301` stands for rc01
30-
VERSION_CODE=110101
32+
VERSION_CODE=200000
3133

3234
POM_INCEPTION_YEAR=2020
3335

mkdocs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extra:
22
topl_android:
3-
release: '1.0.0-beta02'
4-
next_release: '1.0.0-rc01'
3+
release: '2.0.0'
4+
next_release: '2.0.1'
55
social:
66
- icon: material/earth
77
link: https://matthewnelson.io

0 commit comments

Comments
 (0)