File size: 1,038 Bytes
cf7be65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# tool-neuron-plugins

Public catalog of plugin bundles consumed by the ToolNeuron Android app.

The app reads `plugins.json` from this repo on every refresh and lists the
plugins it advertises. When the user installs a plugin, the app downloads the
zip at `download`, verifies `sha256`, extracts it into the plugin store, and
deletes the zip.

## Layout

```
plugins.json
plugins/<id>/<version>/<name>.zip
```

Each zip contains:

- `manifest.json` — id, version, apiVersion, entryClass, capabilities, hasNativeCode
- `classes*.dex` — plugin code (multidex supported)
- `lib/<abi>/*.so` — optional native libraries (only when `hasNativeCode: true`)

## Adding a plugin

1. Build the plugin module (`./gradlew :plugins:<name>:packagePlugin`)
2. Drop the zip under `plugins/<id>/<version>/`
3. Add an entry to `plugins.json` with `size` and `sha256`
4. `hf upload Void2377/tool-neuron-plugins . .`

The schema versions itself via `schemaVersion`; the app refuses to parse
catalogs whose `schemaVersion` is newer than it understands.