尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Use your phone as a Bluetooth car key: open-source Android app for BLE keyless car boxes. Unlock, lock, trunk and hands-free smart unlock, no account, no cloud.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A free, open-source Android app that turns your phone into the key of a car fitted with a Bluetooth LE keyless box: unlock, lock, trunk, remote start and hands-free smart unlock, with no account and no cloud.
🌐 Website: simoneluconi.github.io/BtCarKey · 🇮🇹 Italiano · 📱 Get it on Google Play
The box (a small aftermarket module wired into the car, sold with an app called "redriverbear") turns a phone into the car's key over Bluetooth Low Energy. The vendor app needs an account, works poorly and drains the battery; BtCarKey was written from scratch and talks to the same hardware directly, with no account and no cloud. It doesn't even request the Internet permission.
| Home | Smart unlock | Settings | Dark theme |
|---|---|---|---|
BtCarKey) and in a file you can pull from the PC.Two ways to open the car as you walk up to it; turning one on turns the other off.
Smart unlock (Android 12+, any box that can unlock and lock):
A box doesn't advertise while a phone is connected to it, and Android's presence watching is based on advertising: while connected, Android soon reports the car "out of range". The app ignores any report while the link is up (the link itself proves the car is there) and relies on the link dropping for real departures. Android 16 also reports the phone's own connections and disconnections through the same callbacks; only its BLE presence events count. Limit of any presence-based approach: if the car is parked within Bluetooth range of where you are (e.g. right outside the house), Android never sees you leave and come back, so walking out to it doesn't trigger smart unlock; use the app's buttons.
Comfort entry (legacy) is built into the box: the box measures the phone's signal and opens or locks by itself, so the phone must stay connected all the time ("Stay connected", a background connection with a permanent notification), which costs more battery. It has presets, a guided calibration and a live signal view. The app reads its state from the box on every connection, so a legacy mode left on (for example by the vendor app) shows up on the smart unlock screen, with a button to turn it off.
On both screens the live signal is shown next to the threshold sliders while the car is in range.
No account, no analytics, no ads, no Internet permission: nothing leaves the phone except the Bluetooth traffic to your box. Full policy: privacy policy.
Requirements: Android Studio (its JDK is used), a phone with USB debugging on.
scripts\deploy.cmd build, install and open the app (add -Tests to run the unit tests first)
scripts\pull-log.cmd copy the app's log from the phone into logs\
scripts\release.cmd unit tests + signed bundle for Google Play (app-release.aab)
release.cmd signs with an upload key configured in your own %USERPROFILE%\.gradle\gradle.properties
(BTCARKEY_STORE_FILE, BTCARKEY_STORE_PASSWORD, BTCARKEY_KEY_ALIAS, BTCARKEY_KEY_PASSWORD),
never in the repository. The Play Store listing (texts, icon, screenshots) is in
fastlane/metadata/android.
If the box is already paired (for example with the vendor app) and you know its 16-byte device key, give it to the app instead of pairing again:
device_secrets.json (ignored by git) and run
scripts\push-key.cmd -Name "My car"{ "serial": "AA:BB:CC:DD:EE:FF", "deviceKey": "00112233445566778899aabbccddeeff", "bleMac": "C0:00:00:00:00:01" }
The receiver exists only in debug builds and accepts this only from the adb shell. An exported key
file has the same fields and can be pushed back the same way (-File).
tools/esp32-sim is firmware that turns an ESP32 into a box simulator (same advertising, GATT and
protocol), with a serial console to reset it, change the battery level or simulate lost answers.
The protocol and pairing logic are also covered by JVM unit tests against a software box (FakeBox).
The app is built around a small protocol interface, so other kinds of BLE car keys can be added without touching the connection logic or the UI:
KeyProtocol says how a device advertises (to recognise it in a scan), which GATT service and
characteristics it uses, how long its key is, and what it can do (commands, remote buttons,
comfort entry, NFC...); the UI only shows what the protocol supports.ProtocolSession runs one connection: authentication (reuse a stored key or pair a new one),
commands, status.Protocols.all lists the known ones; each saved device remembers its protocol, shown in its details.Supported today: FTK ("redriverbear" boxes), described in PROTOCOL.md: advertising, GATT layout, frame format, authentication and commands, reconstructed for interoperability with hardware the author owns. Contributions for other Bluetooth car keys are welcome.
BtCarKey is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License v3.0.
Use it only with your own car and box. This project is not affiliated with the box's vendor.