Skip to content
View in the app

A better way to browse. Learn more.

Firmware, Software & Manuals for BYD Owners

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Vitaly

Administrators
  • Joined

  • Last visited

Everything posted by Vitaly

  1. DashCast v1.3.21-betaInternal refactoring — no behavior change SharedPreferences single source of truth All SharedPreferences access is now routed through ClusterPrefs, a new static utility class. Previously, the prefs file name "byd_app_prefs" and ~13 key constants were duplicated across 4 files (MainActivity, SettingsActivity, BetaConfig, BootReceiver), creating a silent bug surface where a typo in any duplicate would silently read/write a different key. What changed: ClusterPrefs (new) — single definition of all prefs file name, all key strings, all typed read/write methods BetaConfig — removed duplicate PREFS_NAME literal SettingsActivity — 4 constants now delegate to ClusterPrefs, 4 raw call sites replaced BootReceiver — removed PREFS_NAME field, 2 raw call sites replaced MainActivity — 13 PREF_* constants removed, 30+ raw call sites replaced with ClusterPrefs.* methods Zero behavior change — same prefs file, same keys, same defaults throughout. versionCode 370 → 371 · versionName 1.3.20-beta → 1.3.21-beta LinksAPK download GitHub release page
  2. DashCast v1.3.20-betaJARVIS voice character TTS voice Switched from nova (warm/feminine) to onyx — the deepest, most authoritative voice in OpenAI's TTS-1 lineup. Closest available match to the JARVIS aesthetic. System prompt rewrite The LLM is now instructed to embody JARVIS: formal, laconic, dry British-butler tone. Replies are capped at 10 words and go straight to the point. Before: "D'accord ! Je vais activer le cluster maintenant." After: "Immédiatement, Monsieur." "Diagnostic ouvert, Monsieur." "Je n'ai pas saisi votre requête, Monsieur." versionCode 369 → 370 · versionName 1.3.19-beta → 1.3.20-beta LinksAPK download GitHub release page
  3. DashCast v1.3.19-betaFixes — Voice pipeline reliability Problem 1: Command word cut off ("diagnostic" → "stic") Root cause: after wake-word detection fires, VoskTranscriber creates a Recognizer object before installing the PCM consumer. This takes ~100-200 ms, during which the beginning of the spoken command is simply discarded. Fix: 500 ms pre-roll ring buffer added to VoiceService. The capture loop continuously fills a circular buffer. When Vosk starts listening, it first feeds the pre-roll audio (covering the Recognizer init gap) into the recognizer, then switches to live audio. Zero gap. Problem 2: TTS not always played / inconsistent Root cause: no AudioFocusRequest, so the system could route audio unexpectedly; also no guard against a new TTS starting while a previous one was still playing. Fix: AudioFocusRequest(GAIN_TRANSIENT_MAY_DUCK) acquired before prepareAsync(), abandoned in OnCompletionListener / OnErrorListener mActiveMp guard: previous MediaPlayer is stopped before starting a new one Tuning — silence detection (car environment) Silence threshold raised: 200 → 500 RMS (avoids false silence in car noise) Silence window reduced: 1200 → 800 ms (snappier end-of-command detection) versionCode 368 → 369 · versionName 1.3.18-beta → 1.3.19-beta LinksAPK download GitHub release page
  4. DashCast v1.3.18-betaNew Feature — LLM-powered voice assistant (OpenAI) Replaces regex command routing with OpenAI GPT-4o-mini + TTS-1 for a natural, conversational in-car assistant. How it works Say "Hey Jarvis" — wake word detected locally (ONNX, offline) Your command is transcribed by Vosk (offline, on-device) The transcript is sent to GPT-4o-mini which understands free-form French and returns a structured command + reply The reply is synthesised by OpenAI TTS-1 (voice: nova) and played as audio Setup Open Diagnostics → Voice tab Paste your OpenAI API key in the new field at the bottom (sk-…) Enable voice commands — the status line confirms whether Jarvis AI or regex fallback is active Fallback behaviour If no API key is set, or if a network error occurs, the app silently falls back to the existing offline regex router. The app never crashes due to LLM failures. Supported commands (free-form French) Activate / deactivate the cluster display Open Diagnostics or Logs Launch an app on the cluster Security API key stored in EncryptedSharedPreferences (AES-256-GCM) — never logged, never committed All OpenAI calls over HTTPS Technical New LlmVoiceEngine.java: chat completion → JSON parse → TTS → MediaPlayer (AudioAttributes + prepareAsync) androidx.security:security-crypto:1.1.0-alpha06 added i18n: 2 new strings in all 12 locales versionCode 367 → 368 · versionName 1.3.17-beta → 1.3.18-beta LinksAPK download GitHub release page
  5. DashCast v1.3.17-betaFix — clavier remonte les boutons (DiLink 5) Symptôme Sur DiLink 5, quand un champ texte prend le focus (ex : barre de recherche Yandex Maps), le clavier virtuel redimensionnait la fenêtre MainActivity. Le NestedScrollView se compressait et les boutons Fullscreen mirror / Stop projection remontaient en haut de l'écran. Cause MainActivity n'avait pas de windowSoftInputMode → comportement Android par défaut : adjustResize. Fix windowSoftInputMode="adjustPan|stateHidden" sur MainActivity dans AndroidManifest.xml : le clavier glisse par-dessus la fenêtre sans la redimensionner. versionCode 366 → 367 · versionName 1.3.16-beta → 1.3.17-beta LinksAPK download GitHub release page
  6. DashCast v1.3.16-betaFix double speak, TTS dedup guard, first-launch Toast. See commit 24f9fda. LinksAPK download GitHub release page
  7. DashCast v1.3.15-betaFixes — Voice Commands pipeline Bug 1 — Transcription loop every ~1.5s (words cut off) Root cause: VoskTranscriber was opening its own AudioRecord while VoiceService already held the microphone. The second AudioRecord failed to initialize immediately, mListening was reset to false, and the next wake-word detection (1500 ms cooldown) re-triggered the same failing attempt — creating a loop. Fix: Removed the second AudioRecord entirely. VoskTranscriber now installs itself as a SampleConsumer on VoiceService's existing AudioRecord via getSampleConsumer()/setSampleConsumer(). A CountDownLatch blocks until silence or the 5 s window closes. The single AudioRecord in VoiceService keeps running; the WakeWordEngine feed is paused for the duration. Bug 2 — TTS silent on BYD DiLink Root cause: On BYD DiLink, the default TTS audio stream is not routed to the speakers while VOICE_RECOGNITION audio capture is active. Fix: speak() now passes STREAM_MUSIC in a Bundle to TextToSpeech.speak(). If TTS is unavailable, a Toast is shown as visual fallback. ⚠️ Pre-release — branch feature/voice-v1.4-beta | versionCode 365 LinksAPK download GitHub release page
  8. DashCast v1.3.14-betaFix — Vosk model download Root cause StorageService.unpack() (Vosk API) reads from the APK assets — it never downloads from the network. Since the model is not bundled in the APK, the error listener fired silently and the transcript pipeline never started. Fix Replaced with a manual download pipeline: Checks if externalFilesDir("vosk")/vosk-model-small-fr-0.22/am/ already exists (skip if present) If not: HttpURLConnection → streams zip from alphacephei.com → ZipInputStream unzip on-the-fly Runs on a dedicated background thread vosk-model-loader Then new Model(path) → listen window opens Expected logs on first launch after enabling Voice Commands I/VoskTranscriber: Downloading model from https://alphacephei.com/vosk/models/vosk-model-small-fr-0.22.zip I/VoskTranscriber: Download complete I/VoskTranscriber: Opening model at .../vosk/vosk-model-small-fr-0.22 I/VoskTranscriber: Vosk model ready ⚠️ Pre-release — branch feature/voice-v1.4-beta | versionCode 364 LinksAPK download GitHub release page
  9. DashCast v1.3.13-beta🎙️ Voice Commands — Phase 3 What's new VoskTranscriber: offline transcription after wake word detection, model vosk-model-small-fr-0.22 (~40 MB, downloaded automatically on first launch) VoiceCommandRouter: regex pattern matching on transcript → action + TTS feedback (FR) Supported commands: cluster on/off, launch app on cluster, open Diag, open Logs UI: new 'Voice Commands' card in the Diag/Voice tab with toggle switch + live transcript display Architecture: full pipeline Hey Jarvis → Vosk → Router → TTS → execution Fix Fixed calls to activateClusterDisplay / getScreenSizeCmd → delegated to local methods activateCluster() / restoreBydDashboard() Dependencies com.alphacephei:vosk-android:0.3.47 i18n 3 new strings across 12 locales (fr, en, de, es, it, ru, uk, be, kk, uz, tr, ar) ⚠️ Pre-release — branch feature/voice-v1.4-beta LinksAPK download GitHub release page
  10. DashCast v1.3.12-betaFixes voix (Hey Jarvis) Deux bugs critiques dans le pipeline ONNX qui maintenaient le score à 0.000 en permanence : Fix 1 — Normalisation PCM manquante L'AudioRecord produit des int16 dans [-32768, 32767]. La copie dans le buffer float ne divisait pas par 32768, saturant les features mel. Le modèle ne recevait jamais de signal valide. Fix 2 — Shape melspectrogram incorrecte (bug principal) Le modèle melspectrogram.onnx sort en forme (1, 1, 247, 32) (batch, channel, temps, mels). Le code utilisait raw.length comme nombre de frames temporelles, mais raw.length = 1 (la dimension batch). Résultat : nFrames = 1 < 196 requis → early return systématique → score = 0.000 constant, le modèle hey_jarvis n'était jamais appelé. Branche : feature/voice-v1.4-beta | versionCode 361 LinksAPK download GitHub release page
  11. DashCast v1.3.11-betaPre-release — fix FileObserver silently failing on DL5 Symptom On DL5 (Android 12, uid=2000, app_process64), the REBROADCAST trigger was timing out at 5s instead of being detected immediately. The daemon was alive but FileObserver never fired — causing DashCast to wait the full 5s latch timeout after every APK install-kill. Root cause On Android 12, inotify watches on a specific file inode are silently dropped when the shell creates the trigger file with O_TRUNC (which may allocate a new inode). The FileObserver(TRIGGER_FILE, …) was watching the old inode — events on the new file were invisible. Fix Switch to a directory-level watch on /data/local/tmp with a filename filter. A directory watch tracks IN_CREATE / IN_CLOSE_WRITE on any child by name, regardless of inode recycling. This is robust to all file-creation patterns (O_TRUNC, rename, echo redirect). Also simplify healTriggerFile(): directory watch survives trigger file deletion — no need to stop/restart the observer on each heal tick. This fix complements the v1.3.10-beta 1s-poll fallback: the poll stays as belt-and-suspenders, but FileObserver now works correctly as the primary path. Affected versions DL5 only (Android 12 / API 32). DL3 was not affected. versionCode 355 → 356 · versionName 1.3.10-beta → 1.3.11-beta LinksAPK download GitHub release page
  12. DashCast v1.3.10-betaPre-release — DL5 only Symptom After DashCast is restarted by the system (e.g. killed by installPackageLI during a background APK install), launching a cluster app takes ~18s before it appears on the cluster display. Root cause The daemon process survives DashCast restarts (via setsid + OOM adj -900). On reconnect, the bootstrap script touches a trigger file to ask the daemon to re-emit its binder. The daemon watches this file via FileObserver — but on DL5 (Android 12, uid=2000, app_process64), inotify events are silently not delivered. The 10s self-heal heartbeat was the only fallback, but the CountDownLatch timed out at 15s first, forcing the slow am start shell fallback. Total: ~18s. Fix Daemon (ProxyDaemonMain): heartbeat loop reduced from 10s to 1s. Each tick polls File.lastModified() on the trigger file (one stat() syscall, ~1µs). On mtime change → emitBroadcast() immediately. Client (BetaProxyClient): REBROADCAST latch timeout reduced from 15s to 5s. Cold-spawn (JVM boot 5-8s on DiLink SoCs) still uses the full 15s. Expected result App launch latency after reconnect: ~2-3s instead of 18s. versionCode 354 → 355 · versionName 1.3.9-beta → 1.3.10-beta LinksAPK download GitHub release page
  13. DashCast v1.3.9-betaPre-release — fixes black screen at app restart Symptom (DL3 field log byd_log_20260529_234318) After Android kills your cluster app in the background (e.g. memory pressure while DashCast itself is in background), reopening DashCast shows an empty/black mirror of the cluster display until ~8 s later, when state-poll catches up and clears the stale state. Root cause At startup, mCurrentDashboardPkg is restored from PREF_CLUSTER_PKG. The pending auto-send fires onSendToDashboard, which takes a shortcut: pkg == mCurrentDashboardPkg → already on cluster, show mirror only. The mirror starts on a display where no app is running → black screen. The 8 s state-poll grace period was tuned for fresh launches and is far too slow for this restore-after-kill case. Fix In the auto-send branch of onActivationOk, when the pending app matches the restored cluster pkg, run pidof first via ShellGateway. If the process is dead → clearClusterState() before delegating to onSendToDashboard so it takes the normal fresh-launch path. If pidof errors out (daemon not yet ready) → fall back to the original shortcut, so no regression on the happy path. Net effect Process alive (happy path) → instant mirror, identical behaviour Process killed in background → clean re-launch in ~1-2 s instead of 8 s of black screen Daemon down → fallback to old behaviour versionCode 353 → 354 · versionName 1.3.8-beta → 1.3.9-beta LinksAPK download GitHub release page
  14. DashCast v1.3.8-betaDL5 — Proactive accessibility service enable Fix The auto-keyboard feature (v1.3.5-beta) required the user to tap ⌨ manually at least once before the automatic trigger would work. Root cause: ClusterImeWatcherService was only enabled via ADB from inside KeyboardBridgeActivity (i.e. after a manual ⌨ tap). Field log byd_report_20260529_175757.log confirmed: service not active at session start → first auto-trigger only fired after manual ⌨ tap in fullscreen mirror. Change ClusterService.onCreate() now calls KeyboardBridgeActivity.ensureClusterImeEnabled() immediately when DL5 is detected (fire-and-forget ADB shell, ~300ms, idempotent). The service is active before the user ever touches the mirror. New KeyboardBridgeActivity.ensureClusterImeEnabled(Context) static method: same ADB settings put secure logic as tryAdbEnableA11y(), no UI side-effects. LinksAPK download GitHub release page
  15. DashCast v1.3.7-betaPre-release — cleanup based on DL3 field log Reduced log noise (findRunningTaskId) The four intermediate not found in dumpsys recents/activities lines are part of a normal Path 1 \u2192 2 \u2192 3 cascade — only the final outcome matters. Downgraded all of them from WARN to DEBUG. The single no running task \u2192 fallback launch WARN at the call site stays. DL3 ROM-strip handling (moveTaskToDisplay) The BYD DiLink 3 API 29 ROM ships a stripped IActivityTaskManager that no longer exposes moveTaskToDisplay(int, int). v1.3.6-beta logged an ERROR with stack trace on every cluster-app tap. Now: probe once per process, log a single WARN at first sight (moveTaskToDisplay: IActivityTaskManager.moveTaskToDisplay(int,int) stripped on this ROM — will use launcher fallback from now on), then skip the reflection entirely on subsequent calls and go straight to the launcher fallback (which was already working in practice). Net effect on DL3 field logs: zero ERROR lines from moveTaskToDisplay, one informational WARN at startup, behaviour unchanged. versionCode 351 → 352 \u00b7 versionName 1.3.6-beta \u2192 1.3.7-beta LinksAPK download GitHub release page
  16. DashCast v1.3.6-betaPre-release — voice beta line back in sync with main Brings the voice/beta line up to date with the latest stable fixes. Includes everything from v1.3.5-beta DL5: clavier auto on cluster mirror tap DL5: F10/F11 fix (Android 12 rootTaskId-aware stack extraction) Wake-word voice PoC Plus (from main) v1.3.3 — daemon: eager invalidateBinder + real pingBinder heartbeat. Catches silent binder deaths the kernel never notified (DiLink 3 Android 10). v1.3.4 — launcher-agnostic findRunningTaskId fallback via dumpsys activity activities. Fixes the slow "fallback launch" path on devices with third-party launchers (e.g. com.dudu.autoui / DuDu AutoUI). For DL3 testers who saw the field log warns You should now see one of: findRunningTaskId ... → taskId=N (via daemon dumpsys activities) — Path 2b working findRunningTaskId ... → taskId=N (via AdbLocal dumpsys activities) — Path 3b working Or a new not found in dumpsys activities warn — please send the log so the regex can be tuned to the API 29 DL3 output. versionCode 350 → 351 · versionName 1.3.5-beta → 1.3.6-beta LinksAPK download GitHub release page
  17. DashCast v1.3.5-betaDL5 — Auto-keyboard on cluster mirror tap New features DL5 auto-keyboard: tapping an editable field in the cluster mirror now automatically triggers the keyboard bridge after 350ms (detected via AccessibilityService). The ⌨ button remains available as a manual fallback. Prerequisite: ClusterImeWatcherService must be enabled (Settings → Accessibility). On dev device: adb shell settings put secure enabled_accessibility_services com.byd.dashcast/com.byd.dashcast.ime.ClusterImeWatcherService Fixes F10/F11 Android 12: fixed rootTaskId extraction for Android 12 (SKQ1.230128.001) — grep widened to rootTaskId=|rootOfTask=|Task{, taskId fallback when task is its own root, F11 step 2 always executed. Architecture (additive — zero regression) ClusterImeWatcherService.checkAndLaunchBridgeIfNeeded(): new static method, work dispatched on existing background thread, same debounce as the event-driven path. MainActivity.forwardTouchFromMirror: ACTION_UP hook → postDelayed 350ms → bridge check. LinksAPK download GitHub release page
  18. DashCast v1.3.4Compatibility fix DashCast now works seamlessly with third-party launchers (e.g. com.dudu.autoui / DuDu AutoUI) that replace the BYD launcher. Symptom (before) Every tap on a cluster app triggered a 2 s "fallback launch" instead of the fast moveTaskToDisplay reparent. App felt slower and racier to use, even with v1.3.3's daemon fix installed. Root cause Non-stock launchers manage the task stack outside the standard mRecentTasks, so live tasks never appear in dumpsys activity recents — our recents-based lookup always returned -1. Fix ClusterService.findRunningTaskId() now has a launcher-agnostic fallback: when the recents lookup returns no match, it re-queries dumpsys activity activities and parses the taskId out of the ActivityRecord{... pkg/class t<N>} line. This works regardless of which launcher manages home. No behaviour change Devices using the stock BYD launcher are unaffected — the original recents-based path still matches first. versionCode 348 → 349 · versionName 1.3.3 → 1.3.4 LinksAPK download GitHub release page
  19. DashCast v1.3.3-betaDL5 Fission F10/F11 — Android 12 stackId fix Field-driven fix from log/byd_report_20260529_082457.log: v1.2.72's novel "resize STACK not TASK" probes never actually ran because F10 couldn't extract a stackId (DL5 / Android 12 renamed Stack # → rootTaskId), so F11 step 2 logged SKIPPED — no stackId from F10 instead of trying the three new shell verbs. Fixes F10 topology — grep filter now includes rootTaskId= / rootOfTask= / Task{; calls cmd activity stack help instead of no-arg (which throws); Android-12 fallback sets stackId = taskId when the dump confirms the task is its own root task; verb-inventory flags treat the Argument expected after "stack" exception itself as positive evidence the dispatcher exists. F11 DL3 chain — step 2 (the 3 stack-resize verbs) is now ALWAYS executed; uses st.targetStackId if found, else taskId as fallback (correct on Android 12 for top-level launched tasks). Row detail annotates [fallback=taskId] when applicable. Asset DashCast-v1.3.3-beta-debug.apk (signed bydPlatform). LinksAPK download GitHub release page
  20. Цены гибридного кроссовера BYD Song Ultra DM-i назвали в Китае, объявив старт продаж. Новинка проезжает до 310 км на электроэнергии и оснащается продвинутым комплексом ассистентов с сенсором LiDAR. Изучаем подробности о модели. Напомним, что в марте 2026 года в продажу в Китае поступила электрическая версия Song Ultra. Её главной особенностью стала тяговая батарея Blade второй генерации с возможностью зарядки с 10 до 97% за 9 минут. Диапазон цен модели составил 151,9–179,9 тысячи юаней (1,6 –1,9 млн рублей). Электрический кроссовер BYD Song Ultra EV Представители BYD объявили, что модель стала успешной, собрав более 61 тысячи заказов за месяц. Но фактическая статистика регистраций показала, что реальные продажи заметно ниже. Так, за апрель 2026-го в Поднебесной поставили на учёт 5940 автомобилей. Теперь на рынок Китая вышла более доступная гибридная версия Song Ultra, нацеленная на увеличение продаж. Подробнее о BYD Song Ultra DM-iВнешне BYD Song Ultra DM-i не отличается от электрической версии. Его передняя часть выдержана в стилистике Loong Face (Dragon Face) с тонкими блоками головной оптики и хромированным элементом между ними. Передний бампер получил крупный трапециевидный воздухозаборник. Другими особенностями стали полускрытые дверные ручки и монофонарь. Гибридный кроссовер BYD Song Ultra DM-i Точные габариты BYD Song Ultra EV составляют 4850 х 1910 х 1670 мм. Колёсная база достигает 2840 мм. Несмотря на немалые размеры, салон предлагает конфигурацию на пять мест. На центральной консоли разместили 15,6-дюймовый сенсорный экран. Селектор КПП и небольшая цифровая приборная панель «спрятались» за двухспицевым рулевым колесом. Объём багажного отсека составляет 680 литров. Салон кроссовера BYD Song Ultra DM-i Опционально BYD Song Ultra DM-i можно оснастить комплексом активных ассистентов водителя DiPilot 300. Его главной особенностью стал сенсор LiDAR на крыше, улучшающий систему восприятия автомобиля. Такой Song Ultra может перемещаться от адреса к адресу без активного участия человека. Водителю остаётся только следить за процессом. Гибридный кроссовер BYD Song Ultra DM-i В движение BYD Song Ultra DM-i приводит параллельная гибридная система. В её основу лёг 1,5-литровый атмосферный мотор мощностью 101 л.с. Ему ассистирует электромотор на 238 л.с. Варианта тяговых батарей два: 26,6 и 38 кВт·ч. Без включения ДВС автомобиль может проехать 205–310 км. Общий запас хода достигает 1845 км. Шасси Song Ultra оборудовали активными амортизаторами. Оснащение и ценыBYD Song Ultra DM-i доступен к покупке в пяти комплектациях. Максимальное исполнение предлагает широкий спектр оснащения. В него входят проекционный дисплей на 26 дюймов, 16 динамиков DiSound, а также обогрев, вентиляция и массаж передних кресел. Переднее пассажирское сиденье предлагает оттоманку с электроприводом. Гибридный кроссовер BYD Song Ultra DM-i Другими особенностями автомобиля стали 7 подушек безопасности, беспроводная зарядка для смартфона мощностью 50 Вт, встроенный холодильник и панорамная крыша. Упомянутый комплекс активный ассистентов водителя DiPilot 300 в любом случае является платной опцией за 12 тысяч юаней (125,6 тысяч рублей). Ранее этот комплекс стоил 9,9 тысячи юаней (103,6 тысячи юаней), но кризис цепочек поставок вынудил BYD увеличить ценник. Гибридный кроссовер BYD Song Ultra DM-i Первые две комплектации BYD Song Ultra DM-i оснащаются батареей на 26,6 кВт·ч. Их диапазон цен составляет 129,9–139,9 тысячи юаней (1,35–1,45 млн рублей). Три другие модификации с более ёмким аккумулятором стоят 139,9–159,9 тысячи юаней (1,45–1,67 млн рублей). Таким образом, максимальная версия гибридного Song Ultra сравнима по цене с начальным электрическим исполнением. Денис БОБЫЛЕВ (YouTube)
  21. DashCast v1.3.3-betaDL5 Fission F10/F11 — Android 12 stackId fix Field-driven fix from log/byd_report_20260529_082457.log: v1.2.72's novel "resize STACK not TASK" probes never actually ran because F10 couldn't extract a stackId (DL5 / Android 12 renamed Stack # → rootTaskId), so F11 step 2 logged SKIPPED — no stackId from F10 instead of trying the three new shell verbs. Fixes F10 topology — grep filter now includes rootTaskId= / rootOfTask= / Task{; calls cmd activity stack help instead of no-arg (which throws); Android-12 fallback sets stackId = taskId when the dump confirms the task is its own root task; verb-inventory flags treat the Argument expected after "stack" exception itself as positive evidence the dispatcher exists. F11 DL3 chain — step 2 (the 3 stack-resize verbs) is now ALWAYS executed; uses st.targetStackId if found, else taskId as fallback (correct on Android 12 for top-level launched tasks). Row detail annotates [fallback=taskId] when applicable. Asset DashCast-v1.3.3-beta-debug.apk (signed bydPlatform). LinksAPK download GitHub release page
  22. DashCast v1.3.2Main screen layout — column alignment fix The Main activity layout has been reworked to match the favorites strip width and give the live cluster preview every available pixel on the right. What changed Left apps column locked to 160 dp (= width of 2 × 80 dp favorite tiles). The previous behaviour applied layout_weight=1.4 from code, which silently overrode the XML's 160dp declaration and let the search bar expand to roughly 400 px wide on DL5 — much wider than the favorites strip below it. Apps grid forced to 2 columns so each app icon sits exactly under one favorite tile. The columns now line up vertically with the favorites strip: the left column (Centre multimédia, DAB+, Spotify …) is flush with the first favorite, the right column (Radio, Metrolist, NewPipe …) with the second one. Live preview now fills the right pane. The cluster preview card has been switched from a fixed 320dp height to 0dp + weight=1 inside a match_parent right-pane container. It expands to occupy all the horizontal and vertical space freed by the narrower left column. Mirror full / Stop projection buttons stay visible. They are placed right under the preview card inside the same vertical container, so they remain pinned at the bottom of the right pane regardless of how tall the preview is. Root cause MainActivity.applyCompactAppsPanelMode() assigned a non-zero layout_weight to the left section without resetting its width. Android's LinearLayout then computed a hybrid size that ignored the XML declaration. The fix: write width = 160dp and weight = 0 explicitly, and pin the grid span to 2 unconditionally. The "compact apps panel" preference is no longer needed and is effectively absorbed into the default behaviour. Compatibility All 13 locales unchanged (no new user-visible strings). Triple-display protection unchanged: display 0 is never touched. BYD-platform signed; installs as an update over any previous 1.3.x. versionCode 347 / versionName 1.3.2 LinksAPK download GitHub release page
  23. BYD officially launched the Song Ultra DM-i on May 28, 2026. The B-class SUV entered the market with five trim levels, priced between 129,900 yuan (19,100 yuan) and 159,900 yuan (23,500 yuan). Hybrid performance The core highlight of the Song Ultra DM-i is the integration of BYD’s fifth-generation DM plug-in hybrid system. The powertrain combines a 1.5L naturally aspirated engine producing 74 kW with an electric motor delivering 175 kW (235 hp). Equipped with BYD’s Blade Battery, the vehicle is available in two configurations: a 26.6 kWh battery offering a 205km pure electric range, and a 38 kWh battery providing a 310km pure electric range. The vehicle boasts an NEDC fuel consumption rate of 3.3L/100km under depleted battery conditions, with a combined maximum range of 1,845 km on a full tank and full charge. Furthermore, the entire lineup comes standard with the DiSus-C intelligent damping body control system and the TBC high-speed tyre blowout stabilisation system. Side of the Song Ultra DM-i. Design and dimensions The Song Ultra DM-i adopts a design language consistent with its pure electric counterparts, featuring a closed-off front grille, dynamic breathing LED daytime running lights, and a sleek, floating roof design. The vehicle measures 4,850mm in length, 1,910mm in width, and 1,670mm in height, with a wheelbase of 2,840mm. Smart cockpit and interior Inside, the cabin emphasises a minimalist aesthetic with two colour themes: Salt Grey and Twilight Grey. Technology is at the forefront, with a standard 15.6-inch adaptive rotating central screen, a 10.25-inch digital instrument cluster, and a 26-inch W-HUD head-up display. The vehicle also debuts DiClaw (“Didi Xia” in Chinese), BYD’s new super-intelligent agent, which supports advanced voice control, proactive interaction, and fuzzy search capabilities. The cockpit of Song Ultra DM-i. For comfort, the top-tier trim includes front-seat ventilation, heating, memory, and a 10-point massage function. The “Queen’s Co-pilot” seat adds power leg support and additional massage features. Other premium amenities include a heated steering wheel, an onboard refrigerator, a smart fragrance system, and a 16-speaker DiSound audio system. DiPilot 300 “God’s Eye B” laser radar version. Intelligent driving The Song Ultra DM-i comes standard with the DiPilot “God’s Eye C” intelligent driving system. Customers can opt for an upgrade to the DiPilot 300 “God’s Eye B” laser radar version for an additional 12,000 yuan (1,800 USD), which enables advanced features such as City Navigate on Autopilot (CNOA) and intelligent parking. BYD will provide full coverage and take complete responsibility for any accidents caused by these smart driving systems.
  24. On May 28, 2026, during the Intelligent Strategy Event, BYD announced a new policy that effectively removes the burden of liability from the user, positioning itself as the first automaker globally to provide a “double guarantee” covering both urban pilot assist and intelligent parking systems. Under this new initiative, BYD is offering comprehensive coverage for its “God’s Eye” A/B smart driving systems. For new owners, the coverage begins upon vehicle delivery, while existing owners will gain access after updating to the “God’s Eye 5.0” version via OTA. This policy provides one year of full liability coverage for urban pilot assist functions. The terms of the guarantee are notably generous: provided the system is used in compliance with regulations, BYD will cover all costs associated with at-fault traffic accidents, including repairs to the owner’s vehicle as well as third-party property damage and personal injury. Crucially, this service requires no additional purchase of “intelligent driving insurance,” features no payout cap, and will not impact the owner’s commercial insurance premiums for the following year. BYD’s “God’s Eye B” smart driving package is currently priced at 12,000 yuan (1,800 USD) for a one-off purchase. A BYD Seal model. This move sets BYD apart from competitors who typically require users to purchase separate insurance products. For instance, Xpeng offers an “Intelligent Assisted Driving Peace of Mind Service” for 239 yuan (35 USD) per year. Similarly, Harmony Intelligent Mobility Alliance (HIMA) provides limited-time “Intelligent Driving Worry-Free” benefits. BYD’s “God’s Eye” intelligent driving is on a par with Tesla’s FSD. In a related development within the Chinese market, Tesla has officially rebranded its Full Self-Driving (FSD) package in China to “Tesla Assisted Driving.” By way of comparison, Tesla Assisted Driving (named Supervised FSD in international markets) is priced at 64,000 yuan (9,400 USD) as a one-off purchase in the Chinese market, with no subscription option available. Huawei’s ADS Max features ‘City Navigation’ and is available via a one-off purchase price of 36,000 yuan (5,300 USD) or subscription (720 yuan/ 106 USD per month, 7,200 yuan/1,059 USD per year). Last year, BYD took the lead in introducing a full L4 parking liability guarantee policy. According to BYD, this policy caused the actual usage rate of the feature to jump significantly from 21% to 93%.
  25. DashCast v1.3.1v1.3.1 — Polish locale + unified nav rail New language 🇵🇱 Polish (Polski) — full translation, 13th supported locale. UI polish Unified nav rail across Apps / Settings / Diag / SysInfo / Log / Hotspot. No more flash/size differences when switching activities — every screen now uses the same Material You Style A: same icon size, paddings, ripple, active pill and typography. Tighter main layout (carried over from v1.3.1-beta): live preview gets every available pixel, favorites column aligned with the 2-col app grid, top bar and hero card removed. Asset DashCast-v1.3.1-release.apk — signed with BYD platform key. versionCode 346 · versionName 1.3.1 LinksAPK download GitHub release page

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.