Home Assistant (minimal version) (Android Automotive) Icon

Download Home Assistant (minimal version) (Android Automotive) APK 2024.9.4-minimal arm64-v8a, armeabi-v7a, x86, x86_64 · Android 29+

By Home Assistant • Updated November 08, 2026
arm64-v8a, armeabi-v7a, x86, x86_64 Native (Java/Kotlin) 87.50 MB
Download APK
Verified Safe

This is the arm64-v8a, armeabi-v7a, x86, x86_64 build of Home Assistant (minimal version) (Android Automotive) 2024.9.4-minimal. Pick this build if your device's primary ABI matches.

File size: 87.5 MB   •   Min Android: 29   •   Target Android: 34   •   Version code: 13809   •   Framework: Native (Java/Kotlin)   •   Permissions: 44

File Information

Package Nameio.homeassistant.companion.android.minimal
Version Name2024.9.4-minimal
Version Code13809
Architecturearm64-v8a, armeabi-v7a, x86, x86_64
Min Android VersionAndroid 29 (API 34)
Main Activityandroidx.car.app.activity.CarAppActivity
FrameworkNative (Java/Kotlin)
File Size87.50 MB
Signature (SHA1)F21C5AA894F278D4E769CBD9BBC6FF276934F37D
File Hash (SHA256)d3bf5e1aada18b2140996de3116c7455e963c49463ab4da2ca0a3e57ceba09ff

What's New

What's Changed
Bump softprops/action-gh-release from 2.0.6 to 2.0.7 by
@dependabot
in
#4521
Bump softprops/action-gh-release from 2.0.7 to 2.0.8 by
@dependabot
in
#4523
Bump horologist from 0.5.27 to 0.5.28 by
@dependabot
in
#4526
Fix Active Notification Count sensor showing 0 notifications when upd… by
@marazmarci
in
#4525
Use compat function for tiles launch API by
@jpelgrom
in
#4520
Bump lifecycle from 2.8.3 to 2.8.4 by
@dependabot
in
#4529
Bump activity-compose from 1.9.0 to 1.9.1 by
@dependabot
in
#4530
Bump androidx.fragment:fragment-ktx from 1.8.1 to 1.8.2 by
@dependabot
in
#4531
Bump paging from 3.3.0 to 3.3.1 by
@dependabot
in
#4532
Bump com.github.Dimezis:BlurView from version-2.0.4 to version-2.0.5 by
@dependabot
in
#4534
Bump io.sentry:sentry-android from 7.12.0 to 7.12.1 by
@dependabot
in
#4535
Bump com.google.devtools.ksp from 2.0.0-1.0.23 to 2.0.0-1.0.24 by
@dependabot
in
#4537
Update to Gradle 8.9, Reckon 0.18.3, optimized order by
@jpelgrom
in
#4540
Bump io.sentry:sentry-android from 7.12.1 to 7.13.0 by
@dependabot
in
#4542
Only update location sent variables when successful by
@dshokouhi
in
#4545
Bump rexml from 3.2.8 to 3.3.3 by
@dependabot
in
#4548
Bump media3 from 1.3.1 to 1.4.0 by
@dependabot
in
#4533
Rename services to actions by
@dshokouhi
in
#4541
Implement Health Connect Sensors by
@psbankar
in
#4452
Bump actions/setup-java from 4.2.1 to 4.2.2 by
@dependabot
in
#4558
Bump paging from 3.3.1 to 3.3.2 by
@dependabot
in
#4563
Bump hilt from 2.51.1 to 2.52 by
@dependabot
in
#4557
Bump gradle/actions from 3 to 4 by
@dependabot
in
#4554
Bump kotlin from 2.0.0 to 2.0.10 by
@dependabot
in
#4560
Bump AndroidX car dependencies to 1.4.0 stable by
@jpelgrom
in
#4566
Bump wear-protolayout from 1.1.0 to 1.2.0 by
@dependabot
in
#4564
Bump androidPlugin from 8.5.1 to 8.5.2 by
@dependabot
in
#4567
Bump androidx.wear.tiles:tiles from 1.3.0 to 1.4.0 by
@dependabot
in
#4568
Bump androidx.work:work-runtime-ktx from 2.9.0 to 2.9.1 by
@dependabot
in
#4569
Bump rexml from 3.3.3 to 3.3.6 by
@dependabot
in
#4591
Bump io.sentry:sentry-android from 7.13.0 to 7.14.0 by
@dependabot
in
#4580
Bump com.google.firebase:firebase-bom from 33.1.2 to 33.2.0 by
@dependabot
in
#4598
Add aab artifact to push action by
@jpelgrom
in
#4609
Temporarily disable health connect to satisfy play console by
@dshokouhi
in
#4610
Handle notification permission on Wear by
@jpelgrom
in
#4551
Breaking Change: Update heart rate sensor for Wear OS 4+ target by
@jpelgrom
in
#4552
Add (NOT_)EXPORTED to registerReceiver for Android 14 target by
@jpelgrom
in
#4559
Add foreground service types for Android 14 target by
@jpelgrom
in
#4561
Bump target SDK to Android 14 (app) / 13 (Wear) by
@jpelgrom
in
#4611
Update Change log week of 9/6 by
@dshokouhi
in
#4612
Bump com.google.guava:guava from 33.2.1-android to 33.3.0-android by
@dependabot
in
#4588
Bump kotlin from 2.0.10 to 2.0.20 by
@dependabot
in
#4592
Bump media3 from 1.4.0 to 1.4.1 by
@dependabot
in
#4608
Bump androidx.compose:compose-bom from 2024.06.00 to 2024.09.00 by
@dependabot
in
#4607
Open onboarding when Assist is launched when not registered by
@jpelgrom
in
#4596
Load sensor setting dialog entries async by
@jpelgrom
in
#4579
Bump lifecycle from 2.8.4 to 2.8.5 by
@dependabot
in
#4619
Bump activity-compose from 1.9.1 to 1.9.2 by
@dependabot
in
#4620
Bump com.android.tools:desugar_jdk_libs from 2.0.4 to 2.1.2 by
@dependabot
in
#4621
Bump actions/setup-java from 4.2.2 to 4.3.0 by
@dependabot
in
#4623
Bump androidPlugin from 8.5.2 to 8.6.0 by
@dependabot
in
#4626
add transparent background to media widget by
@ShaunPlummer
in
#4618
Add Page zoom setting by
@jpelgrom
in
#4578
Don't build minimal flavors for Play Publish workflow task by
@jpelgrom
in
#4555
Allow measured power to be updated via notification command by
@dshokouhi
in
#4546
Bump androidx.health.connect:connect-client from 1.1.0-alpha07 to 1.1.0-alpha08 by
@dependabot
in
#4628
Bump androidx.compose:compose-bom from 2024.09.00 to 2024.09.01 by
@dependabot
in
#4629
Bump androidx.navigation:navigation-compose from 2.7.7 to 2.8.0 by
@dependabot
in
#4625
Add signal strength and data network type sensors by
@dshokouhi
in
#4575
Prevent socket response continuation being called multiple times (
#3338
) by
@ShaunPlummer
in
#4616
Bump androidx.fragment:fragment-ktx from 1.8.2 to 1.8.3 by
@dependabot
in
#4630
Bump androidx.wear.compose:compose-material3 from 1.0.0-alpha15 to 1.0.0-alpha19 by
@dependabot
in
#4250
Add unit of measurement and device class for signal strength sensors by
@dshokouhi
in
#4631
Bump com.google.firebase:firebase-bom from 33.2.0 to 33.3.0 by
@dependabot
in
#4632
Bump compile SDK to 35 by
@dshokouhi
in
#4635
Update change log week of 9/13 by
@dshokouhi
in
#4636
Updates .gitignore to not include .kotlin/ changes into git by
@ivorsmorenburg
in
#4647
Bump kotlinx-coroutines from 1.8.1 to 1.9.0 by
@dependabot
in
#4642
Fire an event when a navigation entity is selected while driving by
@dshokouhi
in
#4637
Bump androidPlugin from 8.6.0 to 8.6.1 by
@dependabot
in
#4651
Bump androidx.webkit:webkit from 1.11.0 to 1.12.0 by
@dependabot
in
#4654
Bump lifecycle from 2.8.5 to 2.8.6 by
@dependabot
in
#4653
Bump androidx.health.connect:connect-client from 1.1.0-alpha08 to 1.1.0-alpha09 by
@dependabot
in
#4655
Bump androidx.navigation:navigation-compose from 2.8.0 to 2.8.1 by
@dependabot
in
#4657
Bump androidx.compose:compose-bom from 2024.09.01 to 2024.09.02 by
@dependabot
in
#4658
Update change log week of 9/20 by
@dshokouhi
in
#4659
New Contributors
@ShaunPlummer
made their first contribution in
#4618
@ivorsmorenburg
made their first contribution in
#4647
Full Changelog
:
2024.7.3...2024.9.4

App Description

📱 Home Assistant Companion for Android

Documentation

If you are looking for documentation around the companion applications check out the

Home Assistant Companion Documentation

. This will provide you instructions on using the applications.

Setup App Development Environment

Download and install

Android Studio

Download / clone this repository to a folder on your computer

Create a Firebase project at

Firebase Console

Create four Android apps, with following package names

io.homeassistant.companion.android

io.homeassistant.companion.android.debug

io.homeassistant.companion.android.minimal

io.homeassistant.companion.android.minimal.debug

Now download the

google-services.json

file and put it in the project's

/app

,

/automotive

and

/wear

folders. This file contains the configuration of the whole project (all four applications). (

You can also use the mock services file instead of generating your own

. The file should contain client IDs for all packages listed above for debugging to work properly.

If you do not generate your own file FCM push notification will never work, only websocket notifications will

)

Start Android Studio, open your source code folder and check if the Gradle build will be successful using Build/Make Module "App". You might have to install the right Android SDK via Tools/SDK Manager first.

Run

gradlew assembleDebug

to build all debug versions, this might take a while.

If the build is successful, you can run the app by doing the following: click

Run

->

Run 'app'

.

Connect your phone or create a new virtual device following on screen instruction

🎉

If you get stuck while setting up your own environment, you can ask questions in the

#devs_mobile_apps

channel on

Discord

.

Push Notifications

If you want to work on push notifications or use a development build with push notifications, please go the server side code

HERE

and deploy it to your firebase project. Once you have your androidV1 URL to the deployed service, set it in to your

${GRADLE_USER_HOME}/gradle.properties

file, e.g.:

homeAssistantAndroidPushUrl

=

mydomain.cloudfunctions.net/androidV1

You can also define the rate limit function URL, e.g.:

homeAssistantAndroidRateLimitUrl

=

mydomain.cloudfunctions.net/checkRateLimits

App Flavors

The Android app has both a full flavor that uses Google Play Services to offer features like location tracking and notifications. There is also a minimal flavor that does not require Google Play Services and can be found in the releases section. The minimal flavor does not have location tracking or notifications.

Building for publishing

To build the app for publishing, you will need to sign the app. To do this, do the following:

Create keystore containing keypair for debug application signing. In Android Studio: Menu/Build/Generate signed APK, then use a button to create new keystore. Remember the passwords and key alias. Default, the keystore must be named

release_keystore.keystore

and should be placed in the

home-assistant-Android/app

and

home-assistant-Android/wear

folder.

Set environmental variables used in

app/build.gradle.kts

:

KEYSTORE_PASSWORD

KEYSTORE_ALIAS

KEYSTORE_ALIAS_PASSWORD

KEYSTORE_PATH

(if your keystore is located differently than stated above)

Run

gradlew build

The signed APK is located in your build folder

Testing Dev Releases

We are using

Github Actions

to perform continuous integration both by unit testing, deploying dev releases to

Play Store Beta

and final releases to the

Play Store

when we release. To help test out a specific feature/fixes users can find the APK on the Actions page for each pull request, this debug APK can be installed side-by-side the production or beta builds.

Quality

We are using

ktlint

as our linter. You can run a check locally on your machine with:

./gradlew ktlintCheck

This commands runs on our CI to check if your PR passes all tests. So we strongly recommend running it before committing.

To run a check with an auto-format:

./gradlew ktlintFormat

Translating

The project currently uses

lokalise

to translate the application. If you are interested in helping translate go to the link and click start translating!

Generating a release to production

Go to the latest Pre-release and edit it

Uncheck the Pre-release box, check the Latest release box, and click Update release

This should cause the

Play Publish Production

Workflow to execute and should handle the rest for Google Play

Some platforms, such as the Amazon App Store, need to be updated manually

F-Droid uses the

version_code.txt

file of the latest release to detect a new production release and build it themselves, this may take some time

APK Permissions 44

  • android.car.permission.CAR_ENERGY
  • android.car.permission.CAR_ENERGY_PORTS
  • android.car.permission.CAR_INFO
  • android.car.permission.READ_CAR_DISPLAY_UNITS
  • android.permission.ACCESS_BACKGROUND_LOCATION
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.ACCESS_NOTIFICATION_POLICY
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.ACTIVITY_RECOGNITION
  • android.permission.BLUETOOTH
  • android.permission.BLUETOOTH_ADMIN
  • android.permission.BLUETOOTH_ADVERTISE
  • android.permission.BLUETOOTH_CONNECT
  • android.permission.BLUETOOTH_SCAN
  • android.permission.CALL_PHONE
  • android.permission.CAMERA
  • android.permission.CHANGE_WIFI_MULTICAST_STATE
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_DATA_SYNC
  • android.permission.FOREGROUND_SERVICE_LOCATION
  • android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING
  • android.permission.INTERNET
  • android.permission.MODIFY_AUDIO_SETTINGS
  • android.permission.NFC
  • android.permission.PACKAGE_USAGE_STATS
  • android.permission.POST_NOTIFICATIONS
  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.RECORD_AUDIO
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.SCHEDULE_EXACT_ALARM
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_BIOMETRIC
  • android.permission.USE_FINGERPRINT
  • android.permission.VIBRATE
  • android.permission.WAKE_LOCK
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.android.alarm.permission.SET_ALARM
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION
  • io.homeassistant.companion.android.minimal.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
APK Verified

The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way.

Developer

Name: Home Assistant

See All Versions View on Google Play

Frequently Asked Questions about Home Assistant (minimal version) (Android Automotive) APK

This variant is built for devices that report `arm64-v8a, armeabi-v7a, x86, x86_64` as their primary ABI. If your device's CPU matches, this is the smallest, fastest version to install.

Yes — the APK's signature has been cryptographically verified against the publisher's signing key. The SHA-256 hash is shown in the File Information panel so you can independently confirm the file matches the original release.

Android 29 (API level 34) or newer. Older devices will refuse the install.

Install a free app like 'CPU-Z' or 'Droid Hardware Info' from the Play Store and look at the ABI / Instruction Set row. Most phones made after 2017 are arm64-v8a; if in doubt, download the universal variant.

All variants are functionally identical — same features, same version. They differ only in which CPU architectures the native code is compiled for, and (sometimes) which screen densities the included graphics target. Pick the one that matches your device for the smallest install size, or pick 'Universal' if you're unsure.