# fzer0x/fucksolidexplorer architecture

> Architecture diagram of the GitHub repository fzer0x/fucksolidexplorer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fzer0x/fucksolidexplorer
- Repository: https://github.com/fzer0x/fucksolidexplorer

## Overview

FuckSolidExplorer is an Android LSPosed module for Solid Explorer, with a companion Compose app for activation status, launching the target, and showing project statistics. The principal flow is LSPosed loading the module in Solid Explorer, where hooks alter licensing checks, mask device identifiers, and block selected ad/analytics hosts. The README also describes premium unlocking, ad removal, and privacy protection; these are implemented in the sampled hook entry point. UI details and some MainActivity code are excerpted, so uncertain internal wiring is omitted.

Main entry points: [`app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt`](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt) (Status and launcher UI), [`app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt`](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt) (Package-load entry), [`app/src/main/java/dev/fzer0x/fucksolidexplorer/ui/theme/Theme.kt`](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/ui/theme/Theme.kt) (Compose theme)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_companion["Companion app"]
  node_main["Status and launcher UI<br/>[MainActivity.kt]"]
  node_theme["Compose theme<br/>[Theme.kt]"]
end

subgraph group_hooks["LSPosed hooks"]
  node_xposed["Package-load entry<br/>[XposedInit.kt]"]
end

subgraph group_protection["Target protections"]
  node_license["License hooks<br/>[XposedInit.kt]"]
  node_deviceid["Identifier masking<br/>[XposedInit.kt]"]
  node_network["Host blocking<br/>[XposedInit.kt]"]
end

subgraph group_community["Project stats"]
  node_stats["Stats fetch<br/>[MainActivity.kt]"]
end

node_user(("User"))
node_lsposed["LSPosed"]
node_solid["Solid Explorer"]
node_android["Android APIs"]
node_github["GitHub API"]

node_user -->|"opens"| node_main
node_main -->|"renders with"| node_theme
node_main -->|"checks and launches"| node_android
node_main -->|"requests stats"| node_stats
node_stats -->|"fetches repository data"| node_github
node_lsposed -->|"loads package hook"| node_xposed
node_xposed -->|"installs"| node_license
node_xposed -->|"installs"| node_deviceid
node_xposed -->|"installs"| node_network
node_license -->|"replaces license checks"| node_solid
node_deviceid -->|"intercepts identifier reads"| node_android
node_network -->|"blocks selected host lookups"| node_solid
node_user -->|"uses"| node_solid
node_main -->|"launches"| node_solid

click node_main "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt"
click node_theme "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/ui/theme/Theme.kt"
click node_xposed "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt"
click node_license "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt"
click node_deviceid "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt"
click node_network "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt"
click node_stats "https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_theme,node_user toneBlue
class node_xposed toneAmber
class node_license,node_deviceid,node_network,node_android,node_github toneMint
class node_stats toneRose
class node_lsposed,node_solid toneIndigo
```

## Components

### Companion app

- [Status and launcher UI](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt`
- [Compose theme](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/ui/theme/Theme.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/ui/theme/Theme.kt`

### LSPosed hooks

- [Package-load entry](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt`

### Target protections

- [License hooks](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt`
- [Identifier masking](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt`
- [Host blocking](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/XposedInit.kt`

### Project stats

- [Stats fetch](https://github.com/fzer0x/fucksolidexplorer/blob/main/app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt): `app/src/main/java/dev/fzer0x/fucksolidexplorer/MainActivity.kt`

### Other components

- **User**
- **LSPosed**
- **Solid Explorer**
- **Android APIs**
- **GitHub API**

## Connections

- User → Status and launcher UI: opens
- Status and launcher UI → Compose theme: renders with
- Status and launcher UI → Android APIs: checks and launches
- Status and launcher UI → Stats fetch: requests stats
- Stats fetch → GitHub API: fetches repository data
- LSPosed → Package-load entry: loads package hook
- Package-load entry → License hooks: installs
- Package-load entry → Identifier masking: installs
- Package-load entry → Host blocking: installs
- License hooks → Solid Explorer: replaces license checks
- Identifier masking → Android APIs: intercepts identifier reads
- Host blocking → Solid Explorer: blocks selected host lookups
- User → Solid Explorer: uses
- Status and launcher UI → Solid Explorer: launches
