@@ -202,6 +203,7 @@ This allows the host app to launch your plugin without ever launching your app.
...
@@ -202,6 +203,7 @@ This allows the host app to launch your plugin without ever launching your app.
## JVM mode
## JVM mode
This feature hasn't been implemented yet.
This feature hasn't been implemented yet.
Please open an issue if you need this.
# Plugin security
# Plugin security
...
@@ -241,6 +243,49 @@ Plugin app must include this in their application tag: (which should be automati
...
@@ -241,6 +243,49 @@ Plugin app must include this in their application tag: (which should be automati
android:value="1.0.0"/>
android:value="1.0.0"/>
```
```
# Plugin ID Aliasing
To implement plugin ID aliasing, you:
* MUST define meta-data `com.github.shadowsocks.plugin.id.aliases` in your plugin content provider with `android:value="alias"`,
or use `android:resources` to specify a string resource or string array resource for multiple aliases.
* MUST be able to be matched by `com.github.shadowsocks.plugin.ACTION_NATIVE_PLUGIN` when invoked on alias.
To do this, you SHOULD use multiple `intent-filter` and use a different `android:path` for each alias.
Alternatively, you MAY also use a single `intent-filter` and use `android:pathPattern` to match all your aliases at once.
You MUST NOT use `android:pathPrefix` or allow `android:pathPattern` to match undeclared plugin ID/alias as it might create a conflict with other plugins.
* SHOULD NOT add or change `intent-filter` for activities to include your aliases -- your plugin ID will always be used.