Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
Open Car Project: 자동차 헤드유닛용 오픈소스 안드로이드 런처입니다 최신 APK를 다운로드하고 실행해 보세요
Open Car Project: an open-source Android launcher for car head units. Download the latest APK, see it running and start contributing.
라이프스타일Kotlin · HTMLGitHub @maldos23온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Open-source Android launcher for car head units — customizable dashboard with navigation, media, notifications, weather and a speed scene. Kotlin + Jetpack Compose.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗🌐 Website · ⬇️ Download the latest APK
Open the car you already own. Today's head units carry hardware powerful enough to run features that carmakers lock away or sell as subscriptions. Open Car Project exists to democratize the car's infotainment system: open software, built in the open, so drivers decide what their own screen can do.
We believe it should be a right to choose how your car looks and to modernize it your way, without having to buy a new one — not everyone can afford that. Hours stuck in traffic are better spent in a place that feels like yours, because you built it yourself.
An open-source Android launcher for car head units. It turns the head-unit screen into a customizable dashboard: navigation, music, notifications, weather and a speed scene live on a drag-and-drop grid, with large touch targets designed for use while driving.
Built with Kotlin + Jetpack Compose (Material 3), native Android APIs (AppWidgetHost,
MediaSession, NotificationListenerService, DataStore) and a Clean Architecture layout.
| Area | What you get |
|---|---|
| Customizable home | Long-press anywhere to edit: drag, resize (with live push-aside of neighbours), delete. Half-cell app icons, system widgets (e.g. Google Calendar), configurable grid size. |
| Built-in modules | Navigation (next-turn guidance from Google Maps / Waze, or an animated Navigate button), Media player (cover art, progress, vibrant animated background), Notifications (cards with previews, actions, native rendering for unmapped styles). |
| Top bar | Animated weather pill (gradient per condition) and a speed scene: a car / SUV / pickup / cat / dog in a city that changes with time of day and weather, turning into a rocket above a configurable speed. Optional standalone speedometer (circle or inline). |
| Notification island | Dynamic-Island–style pop-up for new notifications and track changes that rests as a top-center bubble with the latest notification. |
| Motion glow | Optional neon light that travels along the screen border towards where the car is going, brightest at that point: left/right in turns (gyroscope, or GPS bearing), up when speeding up, down and red when braking (GPS), corners in between. Adjustable sensitivity and color, with a Test button. |
| Bottom dock | Clock, app drawer, Google Assistant button with rotating suggestions, app shortcuts, hotspot, signal (4G/5G, Wi-Fi standard), volume, notifications, settings. |
| Settings | Theme (system/light/dark), accent color (incl. Material You), background (solid / wallpaper / animated gradient with particles), units (°C/°F, km/h/mph), 12/24 h, language (5), UI zoom, app-menu style and icon size, what to show in the bars, and more. |
The UI is available in English, Spanish, Simplified Chinese, Portuguese and French (Settings → Language). New languages are welcome — see CONTRIBUTING.md.
Requirements: JDK 17+, Android SDK with platforms;android-37.0 and
build-tools;37.0.0. Gradle comes with the wrapper.
git clone <this-repo> open-car-project && cd open-car-project
export ANDROID_HOME=/path/to/android-sdk # or set sdk.dir in local.properties
./gradlew assembleDebug # APK: app/build/outputs/apk/debug/app-debug.apk
./gradlew installDebug # install on a connected device/emulator
adb shell cmd role add-role-holder android.app.role.HOME org.opencarproject.launcher
Then grant notification access (needed by the media player, notifications and navigation modules):
adb shell cmd notification allow_listener \
org.opencarproject.launcher/org.opencarproject.launcher.data.source.LauncherNotificationListener
Full instructions — emulator setup, debugging tools, fake media/GPS/notifications, tests — are in docs/DEVELOPMENT.md.
./gradlew test # JVM unit tests (no device needed)
./gradlew connectedAndroidTest # instrumented UI tests (device/emulator)
| Document | Contents |
|---|---|
| docs/DEVELOPMENT.md | Build, run, debug and test (emulator, adb recipes, debug-only tools) |
| docs/ARCHITECTURE.md | Layers, packages, data flow, where to look when something breaks |
| CONTRIBUTING.md | How to contribute, code style, PR checklist |
| docs/BUILD_NOTES.md | Toolchain details (Android 17 / API 37 platform naming) |
| docs/HOTSPOT.md | Showing hotspot clients (requires installing as a system app) |
| docs/EMBEDDING.md | Research notes on embedding other apps' windows (system apps only) |
| CLAUDE.md · .claude/ | Conventions, skills and agents for AI coding assistants |
| Permission | Used for |
|---|---|
BIND_APPWIDGET | Hosting system widgets |
| Notification access (listener) | Notifications, media sessions, navigation next-turn |
ACCESS_COARSE_LOCATION | Weather for your area |
ACCESS_FINE_LOCATION | Real vehicle speed from GPS (speed scene / speedometer) |
READ_PHONE_STATE | Mobile network type (4G/5G) in the signal indicator |
INTERNET, ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE | Weather data, signal indicator |
Weather data: Open-Meteo.com (CC BY 4.0; free for non-commercial use).
Contributions of all sizes are welcome — bug reports, translations, new modules, docs.
Start with CONTRIBUTING.md — the project uses gitflow (PRs into
develop) and Conventional Commits.
Signed APKs are published on GitHub Releases. Changes are listed in CHANGELOG.md.
Apache License 2.0 © Open Car Project contributors.