Android Solid Services App¶
The Android Solid Services app is the hub of the ecosystem. It manages your Solid accounts and runs three background bound services that third-party apps connect to over AIDL — giving the whole Android device a single, shared Solid identity layer.
Features¶
- Single sign-in — one login in ASS; every third-party app on the device reuses that session via IPC.
- Multi-account — log in with multiple Solid pod accounts and switch the active one from Settings.
- Access control — third-party apps must request a grant; you see the app name and approve or deny from within ASS.
- Resource management — proxy CRUD operations on pod resources for connected apps.
- Contacts data module — manage address books, contacts, and groups stored on the pod.
Screenshots¶
| Login | Account switcher | Resource browser | Settings |
|---|---|---|---|
How the App Works¶
When a third-party app wants to use Solid, it binds to one of ASS's three AIDL services:
Third-party app
│
│ (Android IPC / AIDL)
▼
Android Solid Services
├── ASSAuthenticatorService ← login, access grants, account switching
├── ASSResourceService ← read / create / update / delete pod resources
└── SolidDataModulesService ← contacts data module (address books, contacts, groups)
The third-party app never handles tokens or pod credentials directly. ASS performs all authenticated requests on its behalf.
Installation¶
Download the latest APK from the GitHub Releases page or build it from source.
Technology Stack¶
| Area | Technology |
|---|---|
| UI | Jetpack Compose, Navigation Compose |
| State / architecture | MVVM, ViewModel, StateFlow |
| Dependency injection | Hilt |
| IPC | Android AIDL bound services |
| Authentication | OpenID Connect + DPoP (net.openid:appauth) |
| Persistence | DataStore + Protocol Buffers (access grants, user profiles) |
| Solid protocol | Inrupt Java Client SDK |
| Min SDK | 26 |
| Target SDK | 33 |
| Compile SDK | 35 |