Static JSON API for the GameHub Lite app. This repository hosts configuration files, component manifests, and API responses.
GameHub Lite App/Patch Repository: https://github.com/Producdevity/gamehub-lite
The TypeScript build generates API endpoint files from:
sp_winemu_all_components12.xml- Official GameHub component datadata/custom_components.json- Custom components not in the XMLdata/*.json- Static configuration files
# Install dependencies
npm install
# Build all files
npm run build
# Validate without generating
npm run validateThe build system generates 16 API endpoint files:
Component Manifests (components/):
box64_manifest- Type 1: Box64/FEX emulatorsdrivers_manifest- Type 2: GPU drivers (Turnip, Adreno, etc.)dxvk_manifest- Type 3: DXVK layersvkd3d_manifest- Type 4: VKD3D Protongames_manifest- Type 5: Game patches/configslibraries_manifest- Type 6: Windows librariessteam_manifest- Type 7: Steam componentsindex- Component counts by typedownloads- All downloadable files
Simulator Endpoints (simulator/):
v2/getAllComponentList- All componentsv2/getComponentList- Type 1 components onlyv2/getContainerList- Wine/Proton containersv2/getDefaultComponent- Default component selectionv2/getImagefsDetail- Firmware infoexecuteScript/generic- Generic ARM execution presetexecuteScript/qualcomm- Qualcomm-specific preset
npm run build checks the Components release before deployment. It fails when an asset is missing, when GitHub has an incomplete release asset upload, when two records point to the same release filename with different MD5/size metadata, or when the release file size/MD5 does not match the API metadata. Exact MD5 checks use .tmp_components/release-md5-cache.json.
gamehub-lite-api/
├── src/ # TypeScript source code
│ ├── index.ts # Main entry point
│ ├── parsers/ # XML and JSON parsers
│ ├── generators/ # Output file generators
│ ├── registry/ # Component registry
│ ├── types/ # TypeScript types
│ └── utils/ # Utilities
├── data/ # Configuration and source files
│ ├── sp_winemu_all_components12.xml # Source XML from GameHub
│ ├── containers.json # Wine/Proton containers
│ ├── imagefs.json # Firmware configuration
│ ├── defaults.json # Default component selection
│ ├── execution_config.json # Execution settings
│ └── custom_components.json # Custom components
├── components/ # Generated manifests
├── simulator/ # Generated API endpoints
└── package.json
Configures default component selections:
{
"dxvk": 24,
"vkd3d": 7,
"steamClient": 334,
"container": 2,
"genericComponentIds": [7, 8, 24, 345],
"qualcommComponentIds": [7, 8, 25, 345, 48],
"genericContext": { ... },
"qualcommContext": { ... }
}Add components that aren't in the official XML:
{
"components": [
{
"id": 316,
"name": "steam_9866232",
"type": 7,
"version": "1.0.0",
"version_code": 1,
"file_name": "steam_9866232.tar.zst",
"file_md5": "3d9d01362622a782a27ae691427b786c",
"file_size": "41192642"
}
]
}| Type | Name | Description |
|---|---|---|
| 1 | Box64/FEX | x86_64 emulators for ARM64 |
| 2 | GPU Drivers | Turnip, Adreno, Mali drivers |
| 3 | DXVK | DirectX 9/10/11 to Vulkan |
| 4 | VKD3D | Direct3D 12 to Vulkan |
| 5 | Games | Game-specific patches/configs |
| 6 | Libraries | Windows DLLs for Wine |
| 7 | Steam | Steam client components |
GitHub normalizes spaces and some punctuation in release asset names. The build uses the same names for URLs and release checks.
Torchlight II.tzst->Torchlight.II.tzstDeadSpace(2023).tzst->DeadSpace.2023.tzst
Install and run the official GameHub app, then copy the XML files from its app-data shared_prefs/ directory. Depending on device/access method this may be under /data/data/<gamehub-package>/shared_prefs/, /data/user/0/<gamehub-package>/shared_prefs/, or an exposed path such as /storage/<storage-volume>/data/shared_prefs/.
- Put the XML files in ignored
tmp/:tmp/sp_winemu_all_components12.xmltmp/sp_winemu_all_imageFs.xmltmp/sp_winemu_all_containers.xml
- Import the XML:
This writes tracked data files and
npm run import-gamehub-xml
.tmp_components/gamehub-xml/asset-manifest.json. Types10,12,13,94, and95are settings records, so they are skipped. - Download release assets referenced by changed or new records:
Files are written to ignored
npm run import-gamehub-xml -- --download-assets
.tmp_components/gamehub-xml/. Do not uploadasset-manifest.json. - Compare local assets with the
Componentsrelease:npm run release-assets:check
- Upload assets missing from the release:
npm run release-assets:upload-new -- --dry-run npm run release-assets:upload-new
- Replace changed release assets after reviewing the dry run:
npm run release-assets:replace-changed -- --dry-run npm run release-assets:replace-changed
- Run
npm run build - Review the diff and commit changes
If npm run build reports a release asset error for a file that already exists in .tmp_components/gamehub-xml/, repair from the local cache:
npm run release-assets:repair -- --dry-run
npm run release-assets:repair- Add to
data/custom_components.json - Use custom release filenames that cannot collide with official XML assets
- Run
npm run build - Upload the component file to GitHub release
Remove a custom component when the official XML now provides the same component. Keeping both can make the app show duplicate entries and can create release filename collisions.
Component files are hosted on GitHub Releases:
https://github.com/Producdevity/gamehub-lite-api/releases/download/Components/{filename}
The build system rewrites all download URLs to point to GitHub.
| Repository | Description |
|---|---|
| gamehub-lite | Main project with pre-built APK releases |
| gamehub-lite-api | Static JSON API hosting component manifests, configuration files, and mock responses that replace the original Chinese servers |
| gamehub-lite-worker | Cloudflare Worker API proxy that handles token management, signature regeneration, privacy protection (IP hiding, fingerprint sanitization), and content routing |
| gamehub-lite-news | News aggregator that collects gaming news from RSS feeds and GitHub releases, transforms them into GameHub's API format |
| gamehub-lite-token-refresh | Automated token refresher that uses Mail.tm OTP authentication to maintain valid GameHub tokens, runs every 4 hours via Cloudflare Cron |
This repository contains public manifests, configuration data, and CDN links. It does not contain user data, analytics, or tracking.