New app: Vulcan

Abstract for new app inclusion

Functions and usage

Vulcan is an MIT-licensed Android home screen for Android 8 and newer. It includes configurable grids, folders, widgets, a scrolling dock, searchable app drawer, icon packs, gestures, notification badges, local backups, Nova backup import and Android 15 Private Space support. It has no INTERNET permission, ads, analytics or crash-reporting SDKs. It uses platform Views and Kotlin, with no additional application-library dependencies declared in the app module.

Source: https://github.com/krishnanunnir/vulcan-launcher

Vulcan home screen Vulcan app drawer

Purpose and existing users

Vulcan combines extensive Nova-style customization, local launcher-backup import and Private Space with no network access.

The project is younger than three months. For the existing-users exception in Quality Control, see external reports describing use/testing: folder and widget requests, Private Space request, and testing all five drawer styles. There are also community translations. Please let us know if further evidence is needed.

Build and verification

  • Packages v0.25, versionCode 17, at 7e3d4e7ecc37beed563c5153333305d8b9247460.
  • Uses the build server's default JDK 21, with no sudo JDK installation or prebuild step. Java/Kotlin bytecode targets remain 17.
  • Binaries and AllowedAPKSigningKeys preserve the developer signature.
  • GitLab CI for v0.25 passes: Linux reproducible build against the release APK, APK/source scans, schema, formatting, lint and automatic update checks.
  • Local fdroid lint, a clean unsigned JDK 21 apksigcopier compare --unsigned, apksigner verify, fdroid scanner --exit-code and all 54 JVM unit tests pass for v0.25.
  • APK SHA-256: 03eaa50e20958640cb28628b9812e4dd9a4671351d02c8cce804544498ecf167.
  • Certificate SHA-256: da454f94a59d15cb8b6119483d05cfb971a2c61c8695ba5f53f80b7c9fcaa555.
  • Optional permissions support contact search/favourites (READ_CONTACTS), upcoming events (READ_CALENDAR), local sunset/sunrise scheduling (ACCESS_COARSE_LOCATION) and accessibility gestures (canRetrieveWindowContent=false). These are documented in the upstream README. The APK has no INTERNET permission and is neither debuggable nor testOnly.
  • Manifest changes since v0.24: KILL_BACKGROUND_PROCESSES was removed; a non-exported PersonaCardProvider was added, which grants temporary read access only to the share target of a contributor card.
  • The APK is approximately 306 KiB without native libraries, so ABI splitting is unnecessary.

Changes in 0.25 from the second review

Addresses the points from the Android 11 retest of 0.24:

  • The drawer takes taps and holds only once fully open and at rest. Rapid open/close swipes, holding it half open and tapping, and long-pressing home right after closing it no longer open an app menu or drop an app onto home.
  • Long-press home then drag up no longer opens the drawer behind the open menu.
  • The icon picker shows every icon in a pack, across all categories.
  • Swiping up on the home or dock search bar opens the drawer.
  • Number settings are inline sliders; Hide apps uses checkboxes (Material 3).

Full notes: v0.25 release.

Android 11 regression verification

The published v0.24 APK was tested on vulcan-30-phone (Android 11 / API 30, Pixel 4 profile) on 1 November 2026, and the reviewer independently confirmed the earlier fixes on a physical Android 11 device.

On 2 November, the published, developer-signed v0.25 APK was checked on the same emulator. Secondary holds during partly open and fully pulled-but-held drawer states did not open app menus; a normal Calendar long-press worked after release. Holding empty home then moving upward kept home options open without opening the drawer. Home columns changed to 12, persisted after leaving and reopening settings, changed to the minimum 3, and were restored to 5. Rapid open/close probes produced no application crash.

This is sampled emulator coverage. The exact 28-icon fixture, checkbox persistence and every search-bar placement have not yet completed fresh release-APK UI verification; the implementations were reviewed in source. The reviewer’s physical-device retest of v0.25 remains welcome.

Known remaining polish: white navigation buttons have low contrast in light drawers, and the default Clock style description mentions drawer style.

Development provenance

The upstream history credits Claude for code contributions. This packaging contribution was prepared with Codex assistance. This is disclosed for normal source, licensing and quality review.

Checklist

Policy

  • Reviewed the inclusion policy; existing-users evidence for the age exception is linked above, subject to reviewer confirmation.
  • The original author requests inclusion; submitted from the author's GitLab account.
  • Upstream Fastlane en-US descriptions, icon, screenshots and changelogs are present in the release tag.

Docs

  • Read CONTRIBUTING, the Gradle template, Build Metadata Reference and Quick Start Guide.
  • Metadata validation and lint pass.

Merge Request Setup

  • Title follows "New app: app name"; public fork and separate app branch.
  • One app submitted. No existing Vulcan launcher fdroiddata MR or RFP issue found.

Metadata

  • metadata/dev.vulcanlauncher.yml is valid YAML with LF endings.
  • Only build metadata added; descriptions and graphics stay upstream.
  • Tagged releases and automatic updates configured.
  • AuthorName, source and issue tracker provided.
  • No external source repositories or srclibs.
  • Reproducible builds enabled; CI reproducible build for v0.25 passes.
  • ABI split unnecessary for this small APK.
  • Only latest build included; full commit hash and no disabled versions.

Pipeline

  • All pipelines pass for v0.25. GitLab CI results.
  • Reports warnings/errors should be fixed or explained. Permission purposes are documented in the upstream README; the encrypted metadata blocker was removed.
  • F-Droid FOSS runners require no payment. If the fork cannot run CI, please trigger it upstream.
Edited by Krishnanunni R

Merge request reports

Loading
Loading