How xwtk/hmg_nemesis works
NEMESIS is an Android-based Gen5W head-unit package manager and runtime. The user browses installed packages or the USB/online store, resolves compatibility and dependencies, then installs or updates packages; Manager also exposes settings, apps, services, logs, and system-update checks. Its Android UI invokes a native command-line runtime, whose indexed modules cover package operations, USB handling, updates, services, and root access. The README documents USB-based initial installation and major capabilities, but most native command dispatch and several UI flows were not excerpted, so those links are omitted or marked unverified.
Main entry points: Cli.java Native CLI bridge · nemesis.h Runtime interfaces · StoreActivity.java Package Store · main.c Native command runtime
Components 31
Manager app
- Manager dashboard
Sources/manager/src/com/nemesis/manager/MainActivity.java - Installed packages
Sources/manager/src/com/nemesis/manager/PackageActivity.java - Package Store
Sources/manager/src/com/nemesis/manager/StoreActivity.java - Updates screen
Sources/manager/src/com/nemesis/manager/UpdatesActivity.java - Install and update flow
Sources/manager/src/com/nemesis/manager/DialogActivity.java - Core update service
Sources/manager/src/com/nemesis/manager/UpdateService.java - Native CLI bridge
Sources/manager/src/com/nemesis/manager/Cli.java - Apps and launch
Sources/manager/src/com/nemesis/manager/AppsActivity.java - Service controls
Sources/manager/src/com/nemesis/manager/ServiceActivity.java - Settings
Sources/manager/src/com/nemesis/manager/SettingsActivity.java - Log viewer
Sources/manager/src/com/nemesis/manager/LogActivity.java - Manager diagnostics
Sources/manager/src/com/nemesis/manager/CrashLog.java
Package management
- Catalog parsing
Sources/manager/src/com/nemesis/manager/StoreList.java - Portal client
Sources/manager/src/com/nemesis/manager/Portal.java - Dependency planning
Sources/manager/src/com/nemesis/manager/DepPlan.java - Package updates
Sources/manager/src/com/nemesis/manager/PkgUpdates.java - Version and network rules
Sources/manager/src/com/nemesis/manager/UpdateRule.java
Native runtime
- Native command runtime
Sources/native/main.c - Package engine
Sources/native/pkg.c - USB handler
Sources/native/usb.c - Update engine
Sources/native/update.c - Service manager
Sources/native/svc.c - Root access
Sources/native/su.c - Compatibility metadata
Sources/native/meta.c - Runtime utilities
Sources/native/util.c - INI parsing
Sources/native/ini.c - Runtime interfaces
Sources/native/nemesis.h
Head-unit platform
- Gen5W head unit
- USB drive
- NEMESIS portal
Other components
- Vehicle user
Connections 39
- Vehicle user → Manager dashboard: opens
Sources/manager/src/com/nemesis/manager/MainActivity.java - Manager dashboard → Installed packages: opens
Sources/manager/src/com/nemesis/manager/MainActivity.java - Manager dashboard → Package Store: opens
Sources/manager/src/com/nemesis/manager/MainActivity.java - Manager dashboard → Native CLI bridge: lists packages
Sources/manager/src/com/nemesis/manager/MainActivity.java - Installed packages → Native CLI bridge: runs commands
Sources/manager/src/com/nemesis/manager/PackageActivity.java - Package Store → Native CLI bridge: reads USB catalog
Sources/manager/src/com/nemesis/manager/StoreActivity.java - Package Store → Catalog parsing: parses catalog
Sources/manager/src/com/nemesis/manager/StoreActivity.java - Package Store → Updates screen: opens updates
Sources/manager/src/com/nemesis/manager/StoreActivity.java - Package Store → Portal client: fetches listings
Sources/manager/src/com/nemesis/manager/StoreActivity.java - Package updates → Catalog parsing: parses rows
Sources/manager/src/com/nemesis/manager/PkgUpdates.java - Package updates → Portal client: loads catalog
Sources/manager/src/com/nemesis/manager/PkgUpdates.java - Package updates → Native CLI bridge: checks packages
Sources/manager/src/com/nemesis/manager/PkgUpdates.java - Updates screen → Package updates: finds updates
Sources/manager/src/com/nemesis/manager/UpdatesActivity.java - Install and update flow → Native CLI bridge: inspects packages
Sources/manager/src/com/nemesis/manager/DialogActivity.java - Install and update flow → Dependency planning: plans dependencies
Sources/manager/src/com/nemesis/manager/DialogActivity.java - Install and update flow → Package updates: finds dependencies
Sources/manager/src/com/nemesis/manager/DialogActivity.java - Core update service → Portal client: checks core update
Sources/manager/src/com/nemesis/manager/UpdateService.java - Core update service → Native CLI bridge: checks compatibility
Sources/manager/src/com/nemesis/manager/UpdateService.java - Core update service → Version and network rules: compares versions
Sources/manager/src/com/nemesis/manager/UpdateService.java - Apps and launch → Manager dashboard: shares launch state
Sources/manager/src/com/nemesis/manager/AppsActivity.java - Service controls → Native CLI bridge: runs commands
Sources/manager/src/com/nemesis/manager/ServiceActivity.java - Settings → Portal client: configures access
Sources/manager/src/com/nemesis/manager/SettingsActivity.java - Log viewer → Native CLI bridge: collects logs
Sources/manager/src/com/nemesis/manager/LogActivity.java - Native CLI bridge → Native command runtime: executes binary
Sources/manager/src/com/nemesis/manager/Cli.java - Package engine → Runtime interfaces: uses interfaces
Sources/native/pkg.c - USB handler → Runtime interfaces: uses interfaces
Sources/native/usb.c - Update engine → Runtime interfaces: uses interfaces
Sources/native/update.c - Service manager → Runtime interfaces: uses interfaces
Sources/native/svc.c - Root access → Runtime interfaces: uses interfaces
Sources/native/su.c - Compatibility metadata → Runtime interfaces: uses interfaces
Sources/native/meta.c - Runtime utilities → Runtime interfaces: uses interfaces
Sources/native/util.c - INI parsing → Runtime interfaces: uses interfaces
- Gen5W head unit → USB drive: provides installation media
README.md - USB drive → USB handler: supplies packages
README.md - NEMESIS portal → Portal client: serves package data
README.md - Native command runtime → Package engine: dispatches commands
- Native command runtime → USB handler: dispatches commands
- Native command runtime → Update engine: dispatches commands
- Native command runtime → Service manager: dispatches commands