Get started

Install

Get the latest build onto a head unit, an AI box or a phone, and build the app from source.

Requirements

  • Android 13 (API level 33) or later.
  • Permission to install apps from outside an app store on the device (“Install unknown apps”), or adb access to it.

Download a build

Femto Car Launcher publishes two channels as release-signed APKs, both built from the repository by continuous integration. There is no app-store listing at present, and sideloading is the supported installation path for both.

  • Stable — a dated release that only changes when a build is judged ready, published as a GitHub release. Download femto-car-launcher-v<version>.apk.
  • Nightly — the newest test build, which changes often and may break, published as a rolling nightly prerelease that replaces itself on every push that changes the APK. Download femto-car-launcher-nightly.apk. Its launcher icon carries an “N” badge and its app name reads “Femto Nightly”, so it never gets mixed up with stable.

The two channels use different application ids and install side by side, so trying a nightly build never means uninstalling stable, and switching back is just as easy.

  1. Download the APK for the channel you want from its release page.

  2. Install it by sideloading on the device, or from a computer:

    adb install -r <file>.apk
  3. Open the app. It asks for the permissions its panels need — location for the map and the speed readout, calendar for the agenda, notification access for now playing. A permission you deny renders a reduced card, never an error screen.

The in-app diagnostics report (Settings → System → Diagnostics) names the installed build by its version name, which is what a bug report should quote.

Make it the home screen

  • Built-in Android head units and phones: open Android’s default-apps settings and choose Femto Car Launcher (or Femto Nightly, on the nightly channel) as the home app. On a phone this step is optional — the launcher also runs as a regular app.
  • Aftermarket AI boxes: most boxes lock the default-launcher slot. Use the box’s own “boot-up app” or auto-start setting to launch Femto Car Launcher (or Femto Nightly) when the box starts.

Updating

The app checks its own channel for a newer build — stable checks the latest stable release, nightly checks the rolling nightly — so you don’t need to repeat the sideloading steps above for every new version.

  • Automatic check. At most once a day while the app is running, the app looks for a newer build. Turn this off with the “Check automatically” switch under Settings → Updates.
  • Manual check. Tap Check for updates under Settings → Updates at any time. The Available version row shows what the check found: the newer version and its download size, or “Up to date”.
  • Update. When a newer build is available, tap Update to … under Settings → Updates. One tap downloads the update (about 45 MB), checks it, and then Android asks you to confirm the install. Some devices then add a security-scan prompt of their own; continue past it to finish the install. Leaving that prompt cancels the install, and tapping Update to … again starts over. The first time, Android asks you to allow installs from Femto Car Launcher (or Femto Nightly) before anything downloads; while driving, it asks when you install instead. If you leave Settings → Updates before Android asks you to confirm — or switch to another app, or the screen turns off — the downloaded update waits there: tap Update to … again to install it. After the install, the launcher comes back on its own when Android allows it. Otherwise, tap the “Updated to …” notification or open the launcher again — press Home if it is your home screen.
  • When an update is found. The dashboard asks once about each new version, after the vehicle has been parked for a minute with a live GPS fix, so a stop at a traffic light seldom brings it up. Update opens Settings → Updates and starts the update there. Later (or Back) means the dashboard does not ask about that version again; the dot on the dock’s Settings button and Settings → Updates keep offering it. A version you have already seen under Settings → Updates is not asked about. If the vehicle starts moving before you answer, or you switch to another app, the question closes and comes back once the vehicle has been parked for a minute again.
  • While driving. Install is unavailable while the vehicle is known to be moving, so tapping Update to … then only downloads the update. If a download finishes while the vehicle moves, the update waits: tap Update to … again once you have stopped. If the vehicle starts moving before Android’s confirmation appears, the confirmation waits until you tap Show the install dialog again under Settings → Updates; a confirmation already on screen stays there until you answer it. Checking and downloading are not affected.
  • Where to look. A dot on the dock’s Settings button shows an update is waiting, while the vehicle is parked with a live GPS fix. The same dot shows on Settings → Updates, which is where to check if the Settings button is hidden from your dock.

A copy you build from source does not check for updates.

Optional: Google Maps provider

To enable the optional paid map provider under Settings → Map, enter a personal Google Maps Platform API key with the Maps JavaScript API enabled and an HTTP-referrer restriction allowing https://appassets.androidplatform.net/*. An optional Map ID (created in the Google Cloud console) renders a vector map with heading-up rotation, tilt and 3D; a blank Map ID renders a flat north-up raster map. Usage bills your own Google Cloud account.

Build from source

A Java Development Kit (JDK) 21 and an Android 13+ device or emulator are the only prerequisites; the Gradle build provisions Node.js and pnpm on demand for the bundled map page.

git clone https://github.com/seijikohara/femto-car-launcher.git
cd femto-car-launcher
./gradlew assembleStableDebug   # debug APK at app/build/outputs/apk/stable/debug/
./gradlew test lint             # unit tests and Android Lint

The repository’s CONTRIBUTING.md explains how to report bugs, propose features and submit changes.