Plug in a gamepad → GameShift sets itself as the default HOME launcher. Press HOME and your game launcher opens instead of the system launcher. Disconnect the controller and everything goes back to normal. No root required.
Built for Android head units, retro-gaming handhelds, and any device where you want a dedicated game launcher to pop up when a controller is plugged in.
| Before — No Controller | After — Controller Connected |
Pressing HOME opens the normal launcher. |
Pressing HOME opens your game launcher. |
| Welcome | How It Works | Activate Shizuku |
| Configure Launchers | Onboarding Complete | Main Settings |
GameShift uses Shizuku to switch the default launcher — it's like root access but safer and easier. Download Shizuku from Google Play or GitHub, open it, and tap Start. On Android 11+ you can start it wirelessly right on your phone — no computer needed.
Note: Shizuku stops after every device reboot. You'll need to re-start it from the Shizuku app (or use Wireless Debugging scripts to auto-start it on rooted devices).
Download the latest APK from the Releases page, open it on your device, and follow the install prompt. You may need to enable Install from unknown apps for your file manager or browser.
- Open GameShift — it'll walk you through the setup.
- Grant the Shizuku permission when prompted.
- Pick your Game Launcher (the app that opens when you press HOME with a controller connected).
- Pick your Normal Launcher (your usual home screen).
- Tap Start Service.
Connect a game controller (USB or Bluetooth). GameShift detects it, switches the HOME launcher, and shows a "Game On!" toast. Press HOME — your game launcher launches. Disconnect the controller and your normal launcher comes right back.
- Automatic launcher switching — connect a controller → GameShift takes over HOME. Disconnect → normal launcher restored.
- HOME button routing — press HOME with a controller connected and your game launcher opens, not the system launcher.
- Game Mode Rotation — force landscape, reverse landscape, or keep your current orientation when a controller is connected.
- Boot-safe — service restarts automatically after a reboot.
- Battery optimization alert — the app warns you if battery optimization might kill the service and offers a one-tap fix.
- No root required — Shizuku handles the elevated permissions.
- Android 8.0 (API 26) or higher
- Shizuku installed and running (download)
- A game controller (USB or Bluetooth)
Open the Shizuku app and start it. On Android 11+ you can start it wirelessly from the Shizuku app without a computer.
- Pair or connect the controller before starting the GameShift service.
- Some Bluetooth controllers use non-standard HID profiles — try USB if Bluetooth doesn't work.
- Check the GameShift notification icon — it shows whether a controller is connected.
- Open GameShift and check the status cards: all three (Controller, Shizuku, Service) should show checkmarks.
- If Shizuku is off, start it from the Shizuku app.
- If the service is off, tap Start Service in GameShift.
The app you selected might not have a proper home-screen intent. Try a different game launcher.
Battery optimization may be killing it. Open the app — the battery status card will show if you're optimized. Tap Exclude App to fix it, or go to Settings → Apps → GameShift → Battery and set it to Unrestricted.
git clone https://github.com/tientien17/GameShift.git
cd GameShift
./gradlew assembleRelease # signed release APKOutput: GameShift-v{version}-release.apk in app/build/outputs/apk/release/.
Bug reports, feature requests, and pull requests are welcome. Please use the issue templates for bug reports and feature requests to help triage efficiently. See the .github/ directory for templates.
Copyright 2026 GameShift
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.