GameHub 5.3.5 ReVanced — extended with GOG Games, Amazon Games, and Epic Games Store library tabs, a full Component Manager, in-app component downloader, Winlator HUD overlay (Normal + Extra Detailed + Konkr style with CPU/GPU/RAM/SWAP/temp/per-core metrics), in-game performance toggles, RTS touch controls, VRAM unlock, per-game CPU core affinity, root access management, offline Steam launch, Japanese locale, and more. Built entirely with apktool smali patching — no source code, no external library injection.
All smali edits, patches, and code changes in this project are developed with the assistance of Claude AI Sonnet 4.6 by Anthropic. Claude is used to write, review, and modify smali bytecode and Java extension code since this project has no source code to work from — all changes are applied directly to the decompiled APK via apktool.
Before any stable release is published, all changes are manually debugged and tested by me across multiple devices — both rooted and unrooted. Debugging is done using logcat output and in-app debug log files to diagnose and verify behavior before changes are finalized.
Installing the app, installing games, and showcasing all features.
- Installation
- Features
- GOG Games
- Amazon Games
- Epic Games Store
- Component Manager
- In-App Component Downloader
- BCI Launcher Button
- Winlator HUD Overlay (Normal + Extra Detailed + Konkr Style)
- Performance Sidebar Toggles
- RTS Touch Controls
- VRAM Limit Unlock
- Community Game Configs
- Per-Game Config Export / Import
- Per-Game CPU Core Affinity
- PC Game Settings: Offline Mode
- Offline Steam Launch
- Settings: Advanced Tab
- Controller Navigation
- Wine Task Manager
- Component Descriptions in Game Settings
- Japanese Locale
- Virtual Container Cleanup on Uninstall
- UI Tweaks
- How It Works
- FAQ
- BannerHub Lite
- Credits
- Signing
Download the APK that matches your existing GameHub package name from the latest release:
| APK | Package | App Label |
|---|---|---|
BannerHub-vX.Y.Z-Normal.apk |
banner.hub |
BannerHub |
BannerHub-vX.Y.Z-Normal.GHL.apk |
gamehub.lite |
BannerHub |
BannerHub-vX.Y.Z-PuBG.apk |
com.tencent.ig |
BannerHub PuBG |
BannerHub-vX.Y.Z-AnTuTu.apk |
com.antutu.ABenchMark |
BannerHub AnTuTu |
BannerHub-vX.Y.Z-alt-AnTuTu.apk |
com.antutu.benchmark.full |
BannerHub AnTuTu |
BannerHub-vX.Y.Z-PuBG-CrossFire.apk |
com.tencent.tmgp.cf |
BannerHub PuBG CrossFire |
BannerHub-vX.Y.Z-Ludashi.apk |
com.ludashi.aibench |
BannerHub Ludashi |
BannerHub-vX.Y.Z-Genshin.apk |
com.miHoYo.GenshinImpact |
BannerHub Genshin |
BannerHub-vX.Y.Z-Original.apk |
com.xiaoji.egggame |
BannerHub Original |
Which APK do I need?
If you do not already have any GameHub variant installed, use the Normal APK (banner.hub). It installs as a completely separate app alongside the official GameHub Lite — both can coexist. If you want BannerHub to take over the gamehub.lite package slot (e.g. so apps that launch GameHub Lite by package name launch BannerHub instead), use Normal.GHL — but you must uninstall the official GameHub Lite first since they share the same package name and have different signing certificates. If you want to use a specific GameHub variant for performance spoofing (e.g. PuBG or Genshin), pick the matching APK. Be aware: performance spoofing variants push your device harder and generate significantly more heat. Do not use these variants without proper cooling and a clear understanding of what you are doing. Use at your own risk.
All 9 variants can be installed simultaneously. All APKs are signed with AOSP testkey (v1/v2/v3).
Note: You must uninstall your existing BannerHub build before installing a new release if the signing certificate changed. Data is not preserved across uninstall.
Accessible via the left side menu → GOG.
For the complete technical implementation breakdown, see GOG_IMPLEMENTATION.md (API endpoints, auth flow, manifest format, download pipeline, BannerHub integration guide).
- OAuth2 login — a WebView opens GOG's standard OAuth2 authorization page. After you log in, BannerHub captures the authorization code from the redirect URL and exchanges it for an access token + refresh token. Both tokens are stored in the
bh_gog_prefsSharedPreferences file. - Auto token refresh — before every API call, BannerHub checks the token expiry timestamp. If the token has expired (or will expire within the margin), it silently issues a refresh request using the stored refresh token. You never need to log in again unless you explicitly log out.
- Login persistence — your session survives app restarts and device reboots.
- Library sync — on login or manual refresh, BannerHub fetches your full GOG library. Both Generation 1 (pre-Galaxy era) and Generation 2 (Galaxy) games are included.
- Metadata per game — title, developer, description, cover image, download size, Gen 1 / Gen 2 badge.
- Game cards — scrollable list and grid view with cover art, title, developer, install state, Install / progress / Add / Launch button.
BannerHub supports both GOG's current and legacy download systems:
Generation 2 (Galaxy-era games):
- Fetches the build manifest from
content-system.gog.com/products/{id}/os/windows/builds - Reads the depot manifest URL from the build record
- Downloads and parses the depot manifest to get the full file list with CDN paths
- Downloads each file individually, writing to
filesDir/gog_games/{title}/ - Per-file progress shown in real time — filename + percentage + download speed (MB/s)
Generation 1 (pre-Galaxy legacy games):
- Fetches builds with
generation=1parameter - Reads the depot manifest, parses
depot.files[], skips support-only files - Downloads each file using
RangeHTTP requests (byte-range resumable download) - Assembles files into the install directory
Installer fallback (very old pre-Galaxy games with no content-system builds):
- Calls
api.gog.com/products/{id}?expand=downloads - Reads the
downlinkormanualUrlfrom the downloads object - Downloads the Windows installer
.exedirectly
- Tapping Install opens a confirmation dialog showing download size and available storage — nothing downloads until you confirm.
- A
ProgressBar+ status text replaces the Install button during download. A red Cancel button appears; tapping it stops the download and cleans up partial files. - After install, BannerHub scans for qualifying executables (excluding redist/setup/unins/crash/helper paths). One found → auto-selected. Two or more → exe picker dialog.
- On completion an Add Game button appears. Tapping it opens GameHub's
EditImportedGameInfoDialogpre-populated with the executable path. - A green ✓ Installed checkmark appears on the card immediately — no app restart needed.
- Persistent install state —
bh_gog_prefsis read on every app open; already-installed cards show checkmark and Add button automatically. - Launch — Add Game button passes the stored executable path to
EditImportedGameInfoDialog. - Set .exe — detail dialog shows current executable and a Set .exe… button to re-scan and re-pick at any time.
- Copy to Downloads — recursively copies
filesDir/gog_games/{dirName}/toDownloads/{dirName}/. - Uninstall — recursively deletes install directory, removes all prefs keys, resets card. Both header ✓ and expanded ✓ disappear immediately.
Accessible via the left side menu → Amazon Games.
For the complete technical implementation breakdown, see AMAZON_IMPLEMENTATION.md (PKCE auth, GetEntitlements API, manifest.proto format, XZ/LZMA decode, FuelPump env vars, SDK DLL deployment, BannerHub integration guide).
Pipeline based on research by The GameNative Team.
- PKCE OAuth2 login — a WebView opens Amazon's standard sign-in page. BannerHub intercepts the authorization code directly from the redirect URL — the detection checks for
openid.oa2.authorization_code=in any redirect URL, so it works correctly through OTP / 2FA intermediate pages without hanging. Tokens are stored inbh_amazon_prefs. - Auto token refresh — silently refreshed before expiry. You never need to log in again unless you uninstall.
- Library sync — fetches your full Amazon Games entitlements list via
GetEntitlements. Each entry includes title, product SKU, entitlement ID, and cover art. - Game cards — scrollable list and grid view with cover art, title, install state, Install / progress / Launch button.
- Calls
GetGameDownloadto retrieve the CDN download URL and version ID - Downloads
manifest.proto— a protobuf manifest listing every file with its CDN hash path, size, and SHA-256 checksum - Downloads files in 6 parallel threads — each file fetched via its hash path, SHA-256 verified, renamed to final path
- Progress shows current filename and download speed (MB/s)
- Resumable — already-complete files (matching size) are skipped on retry
- Launch — reads
fuel.jsonfrom the install directory to determine the executable and required FuelPump environment variables, then launches via GameHub'sEditImportedGameInfoDialog - SDK DLLs —
FuelSDK_x64.dllandAmazonGamesSDK_*DLLs are deployed to the install directory at launch time - Set .exe — detail dialog lets you override the detected executable at any time
- Update checker — compares installed version against current CDN version; marks cards with an update badge when newer version is available
- Uninstall — removes install directory and all prefs; both header ✓ and expanded ✓ disappear immediately
Accessible via the left side menu → Epic Games.
For the complete technical implementation breakdown, see EPIC_IMPLEMENTATION.md (OAuth2 auth, library API, manifest format, CDN selection, chunk download pipeline, BannerHub integration guide).
Pipeline based on research by The GameNative Team.
- OAuth2 login — a WebView opens Epic's login page. After sign-in, BannerHub reads the
authorizationCodefrom Epic's JSON redirect response body viaevaluateJavascript, exchanges it for tokens using the Legendary client credentials, and stores them inbh_epic_prefs. - Auto token refresh — silently refreshed before expiry.
- Library sync — fetches owned games from Epic's library API, enriches each entry with catalog metadata: title, developer, description, cover art, DLC detection, CanRunOffline flag.
- Game cards — scrollable list and grid view with cover art, title, developer, and install state.
- Fetches the manifest API JSON to locate manifest files on Epic's CDN
- Downloads the binary or JSON manifest — parses full file list, chunk map, per-chunk SHA-1 hashes
- Downloads chunks in 6 parallel threads from Fastly or Akamai CDN (public — no auth token required on chunks)
- Assembles each game file from its ordered chunks, SHA-1 verified per chunk
- Progress shows current filename and download speed (MB/s)
- Launch — sets
pending_epic_exein SharedPreferences → picked up by the main launcher activity → opensEditImportedGameInfoDialog - Set .exe — override the detected executable at any time
- Uninstall — removes install directory and prefs; both header ✓ and expanded ✓ disappear immediately
Accessible via the left side menu → Components.
The Component Manager gives you full control over the WCP/ZIP components that GameHub uses to run Windows games — the DXVK, VKD3D, Box64, FEXCore, and GPU Driver entries that appear in per-game settings.
Each installed component is displayed as a compact card with:
- Color-coded type badge — DXVK (blue), VKD3D (purple), Box64 (green), FEXCore (orange), GPU Driver (yellow), WCP (grey) — with a matching left accent strip
- Source badge — components downloaded via BannerHub show the repo they came from (e.g. "Arihany WCPHub", "Nightlies by The412Banner")
- Install count in the header showing total managed components
- Live search bar — type any part of a component name to filter cards in real time
| Action | How to trigger | What it does |
|---|---|---|
| Inject file | Tap a card, select a WCP or ZIP | Replaces the component's contents with the new file. The folder is cleared first — no stale files |
| Add New Component | Tap "+ Add New" in the bottom bar | Injects a WCP or ZIP as a brand new component slot. It immediately appears in GameHub's DXVK/VKD3D/Box64/FEXCore/GPU Driver selection menus and persists across restarts |
| Backup | Swipe RIGHT on a card | Copies the component folder to Downloads/BannerHub/{name}/ |
| Remove | Swipe LEFT on a card | Unregisters the component from GameHub's in-memory map, deletes the folder on disk, and clears its downloaded indicator in the online repo browser |
| Remove All | Tap "Remove All" | Removes only BannerHub-managed components. The confirmation dialog shows the exact count. Stock GameHub components are never touched |
| Format | Used by | Extraction |
|---|---|---|
| ZIP (PK magic) | Turnip, adrenotools GPU drivers | Flat extraction — meta.json + .so files land directly in the component root |
Zstd-compressed tar (.wcp) |
DXVK, VKD3D, Box64 | Preserves system32/ + syswow64/ internal structure |
XZ-compressed tar (.wcp) |
FEXCore nightlies | Flat extraction to component root |
BannerHub uses GameHub's own bundled libraries (commons-compress, zstd-jni, tukaani xz) for extraction — no external dependencies are injected, so there are no class loader conflicts.
Inside the Component Manager, tap Download at the bottom of the screen to open the Download Components browser and install components directly from GitHub without leaving the app.
Three-level navigation: Repo → Category → Asset list
- Repo list — all built-in sources shown as selectable entries
- Category list — choose from DXVK, VKD3D, Box64, FEXCore, or GPU Driver
- Asset list — shows all available assets with file size where available. Assets already installed via BannerHub show a checkmark; the mark clears when the component is removed
Tapping any asset downloads it to the cache directory and injects it as a new component automatically, with a progress screen showing "Downloading: <filename>" during the fetch.
| Source | Format | Types available |
|---|---|---|
| Arihany WCPHub | pack.json flat manifest |
DXVK, VKD3D, Box64, FEXCore, GPU Drivers |
| The412Banner Nightlies | GitHub Releases API (nightly-* tag) |
DXVK, VKD3D-Proton, Box64, FEXCore, GPU Drivers |
| Kimchi GPU Drivers | GitHub Releases API | GPU Drivers only |
| StevenMXZ GPU Drivers | GitHub Releases API | GPU Drivers only |
| MTR GPU Drivers (MaxesTechReview) | rankings.json |
GPU Drivers only |
| Whitebelyash GPU Drivers | GitHub Releases API | GPU Drivers only |
A shortcut button appears in GameHub's top-right toolbar. Tapping it opens BannersComponentInjector (com.banner.inject) directly from inside BannerHub. If BCI is not installed, a toast message is shown instead.
BCI is a companion app that provides SAF-based component management without root — useful for managing virtual containers, accessing Steam shadercache, and injecting components from your local storage.
An in-game heads-up display that shows real-time performance metrics while a game is running. Accessible from the in-game Performance sidebar.
Three HUD modes are available (only one active at a time):
- FPS — current frames per second with a live frame-time graph
- Frame time — milliseconds per frame
- Resolution — current render resolution
A second, expanded overlay that replaces the Normal HUD when the Extra Detailed checkbox is enabled. Displays a richer set of metrics:
- FPS — current frames per second with frame-time graph (spans both rows in horizontal layout)
- CPU usage — overall CPU load percentage
- GPU usage — GPU load percentage
- RAM — used / total memory
- SWAP — swap used / total in GB
- CPU temperature — thermal zone reading for the main CPU cluster
- GPU temperature — Adreno GPU thermal reading
- Battery temperature — battery thermal reading
Available in both horizontal (metrics displayed side-by-side in two aligned rows) and vertical (one metric per row) layouts — toggled with the same Orientation switch as the Normal HUD.
The Extra Detailed checkbox is automatically grayed out and disabled when the Winlator HUD toggle is off.
The Extra Detail HUD is a continuation and extension of the Winlator HUD by Stevenmxz. The additional metrics and layout were inspired by the performance HUD built into my personal device — no credit is claimed from any external project.
A third HUD style, mutually exclusive with Extra Detailed. Enable via the Konkr Style checkbox in the Performance sidebar. Reproduces the layout of the Konkr strategy game's built-in HUD.
Vertical (default): a 2-column table with:
- FPS (large, top row)
- CPU% + CPU temperature
- Per-core MHz for cores C0–C7
- GPU% + GPU temperature + GPU name + current clock + Wine container resolution
- MODE / SKN / PWR readings
- RAM — used / total GB (brown label background)
- SWAP — used / total GB (gray label background)
- BAT — battery % with a blue proportional fill bar
- TIME — current time
Horizontal: a compact multi-column strip — FPS block (current/min FPS + CPU temp), CPU 2×4 core grid, GPU block, thermal/power 2-column block, memory block with colored label backgrounds.
Tap anywhere on the HUD to toggle between vertical and horizontal. Drag to reposition. The opacity slider applies to the Konkr HUD.
Note: Not all data collected and displayed will always be correct. Each device detects and reads data differently. Values are read directly from sysfs/proc and may vary in accuracy depending on your device, kernel, and thermal zone mapping.
- Opacity slider — adjusts transparency of the active HUD overlay from fully opaque to nearly invisible
- Text shadow/halo — a centered shadow is automatically applied to all HUD text when opacity drops below 30% (stronger at <10%), ensuring readability against any background
- Position — drag to reposition on screen
- Orientation — horizontal or vertical layout
All position, orientation, and opacity settings are persisted in SharedPreferences and restored automatically the next time the Performance sidebar is opened.
Located in the in-game Performance sidebar tab, above the Dual Battery Mode toggle. Both toggles persist their state in bh_prefs SharedPreferences and are re-applied automatically every time the Performance sidebar is opened.
WARNING — USE AT YOUR OWN RISK
These toggles override your device's thermal management. Forcing the CPU and GPU to run at maximum frequency continuously generates significantly more heat than normal operation. Sustained high temperatures can cause permanent damage to your device's processor, battery, and other components. Device manufacturers do not support or warrant against damage caused by overriding performance governors. By using these toggles you accept full responsibility for any damage, data loss, throttling, unexpected shutdowns, or reduced component lifespan that results. Do not leave these enabled unattended. Monitor your device temperature. Disable them immediately if your device becomes uncomfortably hot.
Both toggles require root. Without root, both are greyed out at 50% opacity and non-interactive. Root access is checked once when you grant it in Settings → Advanced — there is no root popup every time the sidebar opens.
Sets all CPU cores to the performance frequency governor via su, eliminating all downclocking while the toggle is on. On disable, schedutil is restored.
# Enable
for f in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > "$f"; done
# Disable
for f in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo schedutil > "$f"; doneLocks the Qualcomm Adreno GPU clock floor equal to the ceiling via the KGSL devfreq sysfs interface, so the GPU cannot downclock under any load condition short of a kernel thermal emergency.
# Enable — set min_freq = max_freq
cat /sys/class/kgsl/kgsl-3d0/devfreq/max_freq > /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
# Disable — remove floor
echo 0 > /sys/class/kgsl/kgsl-3d0/devfreq/min_freqUse both toggles together for maximum sustained CPU + GPU performance (root required).
Thanks to @Nightwalker743 for making this possible.
Enable via the Controls tab in the in-game sidebar. Adds a full gesture overlay for PC strategy and RTS games that maps touch gestures to mouse inputs inside the Wine environment.
| Gesture | Mouse action |
|---|---|
| Single tap | Move cursor + left-click at tap position |
| Drag | Hold LMB while dragging — draws a box selection |
| Long press (300 ms) | Right-click at press position |
| Double-tap (within 250 ms / 50 px) | Double left-click |
| Two-finger pan | Camera pan (direction configurable) |
| Pinch to zoom | Mouse wheel scroll up/down (configurable) |
Tap the gear icon in the Controls tab to configure pan direction and pinch-to-zoom scroll direction.
PC game settings → VRAM Limit now includes 6 GB, 8 GB, 12 GB, and 16 GB options in addition to the original GameHub range of 512 MB through 4 GB.
Accessible via the left side menu → Game Configs. A four-screen community browser for sharing and downloading per-game Wine/DXVK/component configurations.
- Searchable list of all games that have community configs — each game shows a config count badge
- Populated from a pre-built
games.jsonfile refreshed every 30 minutes and on every new upload - Total game count is shown in the header subtitle next to your device/SOC info (e.g.
Samsung SM-G998B • Adreno 750 • 89 games); updates toX of Y gameswhile the search box is active
- Lists all shared configs for the selected game — each card shows device model, SOC, upload date, vote count, and download count
- SOC filter chips — a scrollable chip bar at the top lets you filter by GPU type (e.g. filter to only configs from Adreno 750 devices). Chips are built from the SOC values present in the loaded configs. "All" chip shows everything. Resets when switching games.
- ✓ My SOC badge — configs uploaded from a device with the same SOC as yours are tagged in green
- Age indicator — configs older than 6 months are labeled "may be outdated"
- Upvote — tap to vote for configs you find useful
- Full metadata card: device, SOC, BannerHub version, settings count, components count, uploader description, verified SOC badge
- Download to Device — saves the config JSON locally
- View Settings & Components — expands the raw settings and component list inline
- Share Config URL — copies a direct download link to clipboard
- Report Config — flag inappropriate or broken configs
- Comments — read and post comments on any config
- Lists all configs you have uploaded in this session
- Edit Description — add or update a description visible to other users (token-authenticated, only the original uploader can edit)
- Delete — long-press any entry in the list, or tap the Delete My Upload button on the config detail screen, to permanently remove your config from the community database. A confirmation dialog is shown before anything is deleted. Token-authenticated — only the original uploader can delete their own config.
All configs are stored in The412Banner/bannerhub-game-configs. The community is powered by a Cloudflare Worker — votes, downloads, descriptions, and comments are tracked without any account required.
You can also browse, search, filter, and download configs from the web at the412banner.github.io/bannerhub-game-configs — no app required.
The community database grows through contributions — if you find settings that work well for a game on your device, sharing them helps other users get a working config without trial and error.
PC game settings include Export Config and Import Config options.
Opens a preview dialog showing what will be exported before any file is created:
- Device model, SOC (GPU), settings count, components count
Then choose:
- Save Locally — saves to
/sdcard/BannerHub/configs/on your device - Save Locally + Share Online — saves locally and uploads to the community database
The exported filename embeds the game name, device manufacturer, device model, and SOC (e.g. GodOfWar-Samsung-SM_S928B-Adreno_750-1234567890.json).
A dialog lets you choose:
- My Device — lists
.jsonfiles saved in/sdcard/BannerHub/configs/. Selecting a file shows a preview card (device, SOC, settings count, components count) with a ⚠ SOC mismatch warning if the config was made on a different GPU. Tap Apply to proceed or Cancel. - Browse Community — opens the Community Game Configs browser (see above) filtered to the current game
If a config references components not currently installed, a dialog lists the missing ones and offers to download and install them via the Component Manager before applying.
Configs exported from BannerHub are fully compatible with BannerHub Lite, and vice versa.
Both apps store per-game Wine settings under the same SharedPreferences keys (pc_g_setting<gameId>) and export to the same folder (/sdcard/BannerHub/configs/). The export format is identical — the app that created the config has no effect on whether it can be imported. The app_source field in the JSON ("bannerhub" or "bannerhub_lite") is only used by the community config site for filtering and is ignored during import.
PC game settings → Core Count is replaced with a multi-select dialog to choose exactly which CPU cores the game process is pinned to.
| Core(s) | Label |
|---|---|
| Core 0–3 | Efficiency |
| Core 4–6 | Performance |
| Core 7 | Prime |
- Apply — saves the selected core bitmask and updates the settings row label immediately
- No Limit — clears affinity, the game process can use any core
- Selecting all 8 cores is equivalent to No Limit
Opening PC game settings while offline no longer blocks with a spinner or error. Container and component lists fall back to empty data, and all settings rows remain fully accessible and editable without a network connection.
When Steam auto-login fails at cold start with no network, BannerHub detects the condition, skips the Steam login screen, and proceeds using the locally cached Steam configuration. You can continue playing your installed Steam library offline.
| Setting | What it does |
|---|---|
| EmuReady API | Toggle EmuReady compatibility checks |
| CPU Usage Display | Show/hide CPU usage overlay during gameplay |
| Performance Metrics | Show/hide full performance metrics overlay |
| Sustained Performance Mode | Same toggle as the Performance sidebar — available here for convenience outside a running game |
| Grant Root Access | Opens a warning dialog, then runs su -c id on a background thread and stores the result. Performance sidebar reads this pref to enable or grey out the root-dependent toggles — no unsolicited root popup on sidebar open |
All three game store activities (GOG, Epic, Amazon) support full D-pad / gamepad controller navigation.
- Game cards (list view) — navigate up/down with D-pad; focused card shows a gold 3dp border + slightly lighter background; press A to expand/collapse
- Game tiles (grid/poster view) — navigate in all four directions; focused tile shows a gold border via a foreground overlay (works correctly with rounded-corner art clipping); press A to expand/select
- Header buttons (back ←, view toggle, refresh ↺) — focusable with a gold 2dp border + lighter fill on focus; press A to activate
Focus highlight uses gold (#FFD700) consistently across all stores and view modes.
Accessible from the in-game sidebar (three-bar icon) while a game is running. Provides live monitoring and control of the Wine session without leaving the game.
| Tab | What it shows |
|---|---|
| Container Info | CPU cores (WINEMU_CPU_AFFINITY), RAM (/proc/meminfo), VRam (SharedPreferences), device model, Android version |
| Applications | All wine* host processes with PID — tap any row to kill it |
| Processes | All .exe guest processes with PID — tap any row to kill it |
| Launch | WINEPREFIX file browser — navigate directories (yellow ▶), tap any .exe / .msi / .bat / .cmd file (white) to launch it via the Wine binary |
All tabs auto-refresh every 3 seconds. The Kill button at the top terminates the selected process immediately.
The Launch tab lets you run additional executables inside an already-running Wine session — useful for launchers, patchers, or tools that the game itself doesn't start. The browser starts at dosdevices/ in the WINEPREFIX and drills down from there.
A launch guard prevents Wine's "session complete" callback from tearing down the active game session when the secondary executable closes. The guard is released automatically 3 seconds after the secondary process exits.
When selecting a component in per-game settings (DXVK, VKD3D, Box64, FEXCore, or GPU Driver picker), components installed via BannerHub show their description text below the component name. The description is read from profile.json (WCP files) or meta.json (ZIP / adrenotools) at inject time and stored alongside the component.
BannerHub includes a complete 3,468-string Japanese translation covering every screen in the app. When your Android system language is set to Japanese, the app displays fully in Japanese. English users are unaffected — Android's locale fallback uses the default English strings automatically.
Translation contributed by reindex-ot via Crowdin (GameHub's official translation source).
When a game is installed and launched, GameHub creates a Wine virtual container at virtual_containers/{gameId}/ to hold the game's Windows environment. BannerHub ensures this container directory is fully cleaned up when the game is uninstalled, preventing orphaned containers from accumulating on disk over time.
- The "My" tab in the bottom navigation bar is renamed to "My Games" for clarity.
- The original GameHub 5.3.5 ReVanced APK (compiled and patched by @playday3008) is stored as a permanent release asset under the
base-apktag in this repo (136 MB). - CI downloads the base APK, decompiles it with apktool, and overlays everything in the
patches/directory — new smali classes, modified smali files, new resource files, and layout edits. - apktool rebuilds the APK from the merged source tree.
- The rebuilt APK is zipaligned and signed with AOSP testkey (v1 + v2 + v3 signatures).
- The CI matrix builds all 9 package variants in parallel and uploads them to the GitHub Release.
All new BannerHub code lives in smali_classes16/. Existing GameHub smali files that needed modification are patched in place. No external dex files are injected — GameHub's own bundled commons-compress, zstd-jni, and tukaani xz libraries are used at runtime.
smali_classes12 is at the dex method index limit and is never reassembled — the original classes12.dex is extracted from the base APK and zip-injected directly after the rebuild step to bypass the limit.
Q: Does BannerHub require root?
Most features work without root. The only features that require root are the two Performance sidebar toggles (Sustained Performance Mode and Max Adreno Clocks) — both are greyed out and non-interactive on non-rooted devices. All other features — the GOG, Amazon, and Epic Games tabs, Component Manager, component downloader, Winlator HUD, RTS controls, VRAM unlock, core affinity, offline modes, and settings — work on any non-rooted Android device.
Q: Will this replace my existing GameHub install?
Only if you choose a matching package APK. The Normal APK (banner.hub) installs as a completely separate app alongside the official GameHub Lite. The Normal.GHL APK (gamehub.lite) will replace the official GameHub Lite slot — uninstall it first. All other variant APKs replace their respective GameHub variant slots.
Q: Can I use BCI (BannersComponentInjector) with BannerHub?
Yes. BCI grants SAF access to any GameHub package, including banner.hub. The BCI launcher button in BannerHub's toolbar opens BCI directly. Components injected via BCI are visible in BannerHub's Component Manager and vice versa.
Q: Why does the Max Adreno Clocks toggle require root while some other apps can do it without root?
BannerHub uses a direct sysfs write to /sys/class/kgsl/kgsl-3d0/devfreq/min_freq which is a privileged operation. Some emulators use the KGSL ioctl interface instead, which is accessible to unprivileged apps — but that interface issues a performance hint the driver can still override under thermal pressure. The sysfs approach is a harder lock, at the cost of requiring root.
Q: My GOG game says "Generation 1" — will it still download?
Yes. BannerHub supports Gen 1 downloads via the legacy byte-range download pipeline. If your game is so old that it has no content-system builds at all, the installer fallback will download the Windows .exe installer directly.
Q: Where are GOG / Amazon / Epic games installed?
Inside the app's private storage: Android/data/<package>/files/gog_games/<name>/, amazon_games/<name>/, or epic_games/<name>/ respectively. GOG games have a Copy to Downloads button in the detail dialog to copy files to Downloads/<name>/ for access from any file manager.
Q: Does Amazon login work with two-factor authentication (OTP)?
Yes. BannerHub detects the authorization code directly in the redirect URL regardless of which intermediate pages Amazon routes through during OTP/2FA, so login completes correctly with or without 2FA enabled on your account.
BannerHub Lite is a companion project that ports the same BannerHub features into GameHub Lite 5.1.4 (vanilla, non-ReVanced base). If you are running GameHub Lite rather than GameHub 5.3.5 ReVanced, BannerHub Lite is the correct build to use.
| BannerHub (this) | BannerHub Lite | |
|---|---|---|
| Base app | GameHub 5.3.5 — ReVanced | GameHub Lite 5.1.4 — vanilla |
| APK size | ~138 MB | ~47 MB |
| GOG / Amazon / Epic tabs | Yes | Yes |
| Component Manager + Downloader | Yes | Yes |
| Winlator HUD (Normal + Extra Detailed) | Yes | Yes |
| Export / Import Config | Yes | Yes |
| Controller D-pad navigation | Yes | Yes |
| Community Game Configs browser | Yes | No |
| Component descriptions in picker | Yes | No |
| Konkr Style HUD | Yes | No |
| RTS Touch Controls | Patched in | Built into base |
| GPU System Driver default | No | Yes |
| Launch fix (hardware whitelist bypass) | No | Yes |
Game configs exported from either app are cross-compatible — see Per-Game Config Export / Import.
- GOG Games integration — The GameNative Team. The GOG API pipeline, authentication flow, download architecture, and library sync in BannerHub are based on their research and implementation.
- Amazon Games integration — The GameNative Team. The Amazon Games API pipeline, PKCE authentication flow, manifest.proto download architecture, exe scoring heuristic, FuelPump environment variables, and SDK DLL deployment in BannerHub are based on their research and implementation.
- Epic Games Store integration — The GameNative Team. The Epic Games Store API pipeline, OAuth2 authentication flow, chunked manifest download architecture, CDN selection logic, and chunk assembly in BannerHub are based on their research and implementation.
- Japanese translations — reindex-ot via Crowdin
- RTS Touch Controls — @Nightwalker743
- GameHub ReVanced patches — @playday3008
- Winlator HUD — StevenMXZ. The Extra Detail HUD is a continuation and extension of the original Winlator HUD. Additional metrics were inspired by the built-in performance HUD of my personal device.
- Component sources — Arihany WCPHub, The412Banner Nightlies, Kimchi, StevenMXZ, MaxesTechReview, Whitebelyash
All APKs are signed with AOSP testkey (testkey.pk8 / testkey.x509.pem), v1 + v2 + v3 signatures via apksigner. The testkey is committed to this repository and is the same key used across all builds and all variants.
