Skip to content

GameCore 1.0

Choose a tag to compare

@Dreamucxe Dreamucxe released this 01 Sep 11:09
· 13 commits to main since this release

GameCore 1.0 — an Android gaming overlay, performance monitor and per-game profile manager.

The rule the whole app is built on: no number reaches the screen unless the platform actually
reported it. Every reading is either a value that names its source and precision, or an
absence that names its reason — so some cards say "Not available on this device" or
"Requires Shizuku" instead of showing a figure. That is the feature.

Download

GameCore.apk — Android 8.0 (API 26) or newer, arm64-v8a and armeabi-v7a.

size    12,126,769 bytes (11.6 MB)
sha256  b3d4c075d28ebb223d992afce51d2fd70118c649ee18d8f0523cd1655a4102a8

This is the release variant: R8 with obfuscation and resource shrinking, signed with the
project's own release key (CN=GameCore, RSA 2048) using the v2 APK signature scheme.
Certificate SHA-256:

8eef17e0163198517f765b91a29aa9414710a852281b5e6fdd6362442586d42b

With minSdk 26 the build omits the legacy v1 JAR signature entirely, so the absence of
META-INF/*.RSA is expected and does not mean the APK is unsigned — apksigner verify
reports it as verified under v2.

What is in it

  • Floating overlay — a draggable gaming button that snaps to the nearer edge, survives
    rotation and remembers where you left it. Tapping it opens a control panel directly below
    the button: brightness, media volume, screenshot, screen recording, Do Not Disturb,
    orientation lock, flashlight, and a shortcut back into the game.
  • Performance pill and HUD builder — sixteen stats, drag-and-drop placement on a live
    preview, per-widget text size, opacity, colour and background, and saved layouts a game
    profile can raise by name.
  • Crosshair — ten designs drawn with Compose primitives, plus an imported PNG, with size,
    thickness, centre gap, rotation, opacity, colour and position.
  • Game profiles — refresh rate, brightness, orientation, screen timeout, volume, DND,
    overlays, HUD layout, crosshair preset and performance mode, per package. Every adjustable
    field is nullable and null means leave it alone, so a profile restores exactly what it
    changed and nothing else. Automatic detection applies on launch and unwinds on exit; you can
    also launch a game from its profile.
  • Monitoring — per-core CPU load and frequency, memory, battery level/temperature/voltage/
    current and drain as percent per hour, thermal status, display mode, network type, latency
    and throughput, free storage. Live graphs, configurable interval, sampling that stops when
    nothing is watching.
  • Sessions — written to a SQLCipher-encrypted Room database with reports, history,
    filtering, sorting and aggregate statistics. A session cut short by process death is
    repaired on the next launch rather than lost.

Honesty, specifically

Refresh rate. Only rates the panel advertises are offered, and a change is reported as
applied only after it has been read back. On several MediaTek and PowerVR devices the standard
preferredDisplayModeId call is accepted without error and then ignored; GameCore says
"accepted the request but stayed at 60 Hz" and offers the Shizuku path, which works there.

FPS. Reliable per-frame timing is generally unavailable through public APIs without root
or instrumentation and varies by OEM and GPU. It is detected per device and honestly absent
when no usable signal exists.

Not in this app at all: root, game-file modification, code injection, process memory
access, anti-cheat interference, fabricated statistics, background-app killing, thermal-limit
override.

Shizuku is optional

Everything works without it. With it, ADB-level authority reaches the device-wide
refresh-rate bounds, animation scales and a few dumpsys reads Android does not expose to
ordinary apps. The command surface is a closed set — id, cat, dumpsys, settings,
getprop, and pm grant / appops set aimed at this app only — with no shell interpreter
anywhere in it, and every externally-sourced argument validated against a form before a
command is built.

Untested on hardware

The build host is an aarch64 device without a working adb, so the instrumented suite could
not be executed and the overlay, screen recording and Shizuku paths have not been exercised
end to end on a phone by the build itself. The JVM unit suite covers the geometry, the
formatters, the sanitizer, the command builder and the model invariants.