Wallpaper App Generator

Set the wallpaper across your fleet with a signed Android app, ready to deploy via your EMM.

The installer title and launcher label.

Fetched at runtime. This is also a managed-configuration key, so your EMM can point the app at a different image later without a rebuild.

Choose or drop image

Baked into the APK, so it works with no network at all, but changing it means rebuilding. Max 20 MB. With a URL set as well, this becomes the fallback used when the URL cannot be fetched. Not stored, and will need to be provided on subsequent builds.

Android has two independently settable wallpapers. Some devices and launchers do not expose a separate lock-screen one; where that is the case the app reports it on its status screen rather than failing quietly.

How often the app re-reads managed configuration and re-asserts the wallpaper. It also checks at every boot and whenever the app is opened, so this is the ceiling on how long a fleet-wide change takes to reach an idle device - not the only chance it gets. Accepted range is 15 to 1440 minutes; the floor is WorkManager’s limit on how often periodic work can run.

Tints the app’s single status screen and its system bars. It does not affect the wallpaper itself. Defaults to white.

Choose or drop image

512 × 512 px PNG recommended for Play Store quality. Max 5 MB. Optionally maskable. A default icon is used if not provided. Icon is not stored, and will need to be provided on subsequent builds.

On by default. Needed when the wallpaper is served from an internal host behind an SSL-inspection proxy or a self-signed certificate. Turn off to restrict trust to the Android system CA store only.

Off by default. Use HTTPS unless the image host cannot support it - a wallpaper fetched over plaintext can be swapped in transit, and whatever arrives is displayed on every unlock of a managed device. This is baked in at build time: the matching allow_http managed-configuration key defaults to this setting and can turn plaintext off later, but cannot turn it on without a rebuild.

AAB is preferred for Managed Google Play private app distribution.

Used for local testing purposes only, should not be used in production and cannot be deployed through Google Play.
Signed with Bayton's key. Each new build receives a unique package name; supply an update code below to rebuild with the same package name (required for EMM silent-update flows and for republishing to the same Managed Google Play listing). AAB uploads to Managed Google Play are unaffected - Play App Signing takes over after first upload.
Choose keystore file

Max 10 MB.

Your keystore and credentials are used only to sign this build and are never stored. They are purged immediately after the build completes. This is a convenience feature and should never be provided a keystore used to sign any other app; download the application source and sign it directly if you wish to share the keystore.

Enter the update code from a previous build to reuse the same package name for an update. Leave blank to generate a new unique package name.

Queued Waiting for a build worker…