Generate a signed Android home-launcher with a fixed grid of apps, ready for EMM-managed kiosks and dedicated devices.
The Bayton Kiosk App Generator produces a signed Android launcher application that takes over the home screen and presents a fixed grid of apps to the user. Designed for dedicated devices, single-purpose kiosks, and EMM-managed deployments where the operator wants to lock the device to a curated set of apps.
Every option in the form is also exposed as an Android managed configuration. An EMM admin can override layout, wallpaper, settings access, app list — anything — at runtime, without rebuilding the APK. The configuration baked into the APK at build time is purely the default.
Generated launchers target API 37 (Android 17) and require API 28 (Android 9 Pie) or above to install.
Install the APK and set it as the device's default home launcher (via EMM lock-task / kiosk policy, or manually in Settings → Apps → Default apps → Home app for testing). The system back button and recents are intentionally suppressed; the operator's settings menu is the only escape hatch.
The launcher requires QUERY_ALL_PACKAGES to resolve icons and labels for the apps it shows. This is a restricted permission on Google Play — Bayton-built kiosks are distributed via EMM, not Play, so the permission is granted without scrutiny.
Each row maps one Android package to a grid cell. Add a row, paste a package name (e.g. com.android.chrome), pick a row + column. The label defaults to whatever the installed app reports; override it if you want to display something different to your users.
Tiles for apps not currently installed on the device still render (with a placeholder icon and greyed label) so the grid layout stays consistent across devices that haven't finished provisioning yet.
Two optional sources:
If neither is set, the launcher uses the theme colour as a solid background.
The launcher exposes a small overflow menu (visible only if at least one option is enabled here) so end-users can change basic device settings — Wi-Fi, Bluetooth, language, etc. — without an admin unlocking the device. Pick the settings panels you want exposed; everything else stays inaccessible from the launcher.
For full lockdown, leave all of these unchecked. The menu button disappears entirely.
Sets the splash-screen background, the system bar tint, and the fallback launcher background when no wallpaper is configured. Defaults to dark grey, which suits most kiosk deployments.
Upload a 512 × 512 px PNG. The generator produces all mipmap densities and the adaptive-icon variants automatically. A default placeholder is used if you don't upload one.
Every fresh build returns an update code. Store it securely — it is never shown again. Supplying it on a future build reuses the same Android package name, which is required for EMM silent-update flows.
The submission form's "Import config" button accepts a previously exported kiosk_config.json. The form is repopulated from the imported JSON, the update code is carried across, and the build resumes against the same package name. After each successful build the JSON is also available as a separate download alongside the APK.
Download links expire 5 minutes after first click; build files are purged at that point. All builds are purged after 24 hours regardless of download activity.