How c45v3/unfloat works
UnFloat is an LSPosed module that targets supported cloud-game apps to hide floating controls and loading masks without disrupting their view trees or touch behavior. On package load, it locates host-specific creation points (using cached DexKit results or scanning), then installs precise hooks; view capture and resource/class matching select what to make persistently transparent. A temporary addView fallback handles missed or deferred creations. The README lists supported games; excerpts do not show the full package dispatch or manifest configuration, so those connections are omitted.
Main entry points: HookEntry.kt Package hook entry · Locator.kt Host locator · Util.kt View matching
Components 16
Package initialization
- Package hook entry
app/src/main/java/io/c4/UnFloat/HookEntry.kt
Host discovery
- Host locator
app/src/main/java/io/c4/UnFloat/Locator.kt - Location cache
app/src/main/java/io/c4/UnFloat/Locator.kt - DexKit scanner
app/src/main/java/io/c4/UnFloat/Locator.kt
Hooking and hiding
- Float creator hooks
app/src/main/java/io/c4/UnFloat/HookEntry.kt - View capture
app/src/main/java/io/c4/UnFloat/HookEntry.kt - AddView fallback
app/src/main/java/io/c4/UnFloat/HookEntry.kt - Loading mask hooks
app/src/main/java/io/c4/UnFloat/HookEntry.kt
View utilities
- View matching
app/src/main/java/io/c4/UnFloat/Util.kt - Persistent transparency
app/src/main/java/io/c4/UnFloat/Util.kt - Hook logging
app/src/main/java/io/c4/UnFloat/Util.kt
Other components
- Cloud-game host
- LSPosed runtime
- DexKit library
- Android view system
- Hidden controls and masks
Connections 19
- LSPosed runtime → Package hook entry: loads package hook
- Package hook entry → Host locator: requests host locations
- Host locator → Location cache: reads or writes
- Host locator → DexKit scanner: scans on cache miss
- DexKit scanner → DexKit library: queries host bytecode
- Host locator → Package hook entry: returns locations
- Package hook entry → Float creator hooks: installs creator hooks
- Package hook entry → Loading mask hooks: installs mask hooks
- Float creator hooks → View capture: temporarily captures views
- View capture → Android view system: observes addView
- View capture → View matching: selects float targets
- View matching → Persistent transparency: pins transparent
- Float creator hooks → AddView fallback: arms when unmatched
- AddView fallback → Android view system: hooks addView
- AddView fallback → View matching: checks added views
- Loading mask hooks → Persistent transparency: fades mask views
- Loading mask hooks → Android view system: hooks binding constructors
- Persistent transparency → Hidden controls and masks: hides visually
- Package hook entry → Cloud-game host: hooks supported apps