ChangelogNouveautés
Every change of the apps, the kernel, TWRP and the zips, newest first, read from GitHub every hour. Each line is a commit (in English); the green lines are the versions that reached LibreHU Apps.Tous les changements des applis, du noyau, de TWRP et des zips, du plus récent au plus ancien, relus sur GitHub toutes les heures. Chaque ligne est un commit (en anglais) ; les lignes vertes sont les versions arrivées dans LibreHU Apps.
November 2026novembre 2026 83
Thursday, November 5jeudi 5 novembre
Wednesday, November 4mercredi 4 novembre
- ZipsJancar settings providerFournisseur des réglages Jancar 7c84776-main in LibreHU Appsdans LibreHU Apps
- servicev156 in LibreHU Appsdans LibreHU Apps
- serviceCAN: the dialogue card and the export count the requests the box answered (it hears the head unit), since some boxes never acknowledge
- serviceCAN Clio 3 (LNP002): asks the box for its version (Hiworld request 0x6A [5, 1, F0]) every 30 s, to see whether the box hears the head unit
- serviceCAN: the box dialogue keeps running when the same profile is set again (it restarted several times a minute)
- serviceCAN Clio 3 (LNP002): the head unit also sends its audio source (0xE1, AUX) and Bluetooth state (0xCD) to the box, as Hiworld's app does
- serviceCAN: the export shows what the head unit sends to the box (→ lines, dialogue status in the header), and the box speed is sent again 5 s after the start
- servicev148 in LibreHU Appsdans LibreHU Apps
- serviceCAN batch 1: built-in Hiworld profiles for Hyundai / Kia (HYP001, 152 cars), Toyota / Lexus ES (TYP001, 142) and Honda / Acura (HDP004, 79), each car with the car type its box needs; no car type is sent before the car is chosen.
- TWRPb13 beta buildbuild bêta
- serviceCAN: the built-in Hiworld LNP002 profile serves its 94 cars (55 models: Renault, Dacia, LADA, Samsung, Nissan, Mercedes), each with the car type its box needs; choose yours in the CAN tab (searchable list), the Clio 3 stays the default.
- serviceCAN: the chosen car profile is written for LibreHU's TWRP too (/sdcard/TWRP/ujc201_can.conf), so that TWRP answers the box like the service (acknowledgements, Clio 3 car type) and reads the steering wheel keys of that car; the beta TWRP had the keys code but the box sent no key without it.
- TWRPtouchfix: answer the CAN box as its own app does, so a Hiworld box sends the steering wheel keys in TWRP: each message acknowledged (5A A5 01 FF <cmd> CS in an MCU frame 10) and the car profile's messages sent (Clio 3: car type 5A A5 02 24 00 31 56 at 1 s then every 30 s, again when the box talks after 5 s of silence).
- serviceCAN boxes of several makers, as Hiworld's app handles them: the car profile names its box family or maker, the service reads, acknowledges and writes its framing, sets the box's serial speed and reads the steering wheel keys where the profile says.
- serviceCAN box: the service answers it as the box's own app does, so a Hiworld box sends the steering wheel keys again: each message acknowledged (5A A5 01 FF <cmd> CS) and the Clio 3's car type 5A A5 02 24 00 31 56, 1 s after the start then every 30 s and again when the box comes back after a silence.
Tuesday, November 3mardi 3 novembre
- Bridgev16 in LibreHU Appsdans LibreHU Apps
- BridgeHome screen: app updates, the installed version and a check of GitHub for a newer one, then the APK (Android) or ipa (iPhone) to download, on Android and iOS.
- BridgeiPhone: head unit screen here, touched from the iPhone (for the passenger), and each app opened on the head unit or here, like the Android app.
- BridgeHead unit screen on the phone, touched from here (for the passenger): "Head unit screen here" and, for each app, Open on the head unit / Open here in the Apps tab, with LibreHU-service sharing its screen (Wi-Fi, root).
- serviceHead unit screen on the phone, touched from there (for the passenger): the LibreHU phone app shows the screen and plays its fingers and Back / Home / recent apps keys, over Wi-Fi with root.
- serviceSearch bar at the top of every page: menus, groups and settings (those described to the phone app, accents ignored); a setting found is changed right in the results (switch, slider, choice, action without confirmation), Open goes to its page; in the modern and car looks.
- Launcherv177 in LibreHU Appsdans LibreHU Apps
- serviceBrightness set by hand kept after a restart: with the brightness following the headlights, a change made by the user (brightness panel, Android settings, touch keys, launcher, phone app) becomes the day or night value in use; before, the saved value was written over it when the MCU reported the headlights at start (LibreHU Helper report of 02/11: Android read 255, the service wrote right after).
- LauncherTPMS on / off switch at the top of the Tyres screen and in the phone app page: off, no USB adapter is opened, no Bluetooth sensor scanned, the alarms and their sound stop and the dashboard card is hidden ("on the dashboard" only shows or hides the card).
- LauncherTPMS no longer takes the OBD adapter of LibreHU-service: interfaces claimed without force first (an adapter another app holds is left to it; usb-serial-for-android's forced claim took the ELM327 from the service, both failing in a loop), an adapter that sends no TPMS frame within 15 s is given back until unplugged, and the TPMS card turns itself on only at the first TPMS frame, not when any USB-se
- serviceOBD over USB no longer fights the launcher's TPMS for the adapter: interfaces claimed without force first (an adapter another app holds is left to it, usb-serial-for-android's forced claim took it from the other connection: both failed in a loop, "Error writing 5 bytes … rc=-1"); with the automatic choice, an adapter that does not answer ELM to ATZ is skipped until unplugged. Seen in a LibreHU Hel
- serviceLogs for the reports of LibreHU Helper: each steering wheel key press of the CAN box (code, name, action or the app that handles it; a car profile without the key frame is reported once) and each change of the call audio link (SCO state, audio mode, voice call volume, microphone mute).
- FMv108 in LibreHU Appsdans LibreHU Apps
- FMCredits in the README: code taken (DABplay+ by jvspier, AOSP FM JNI, redsea by Oona Räisänen), APIs and data (Radio Browser by segler-alex, RDS / RBDS / DAB standards, MediaTek driver, LibreHU-service and ivi-services), libraries, fonts and sounds, Google's touch size guide, Reo Au In's tests; redsea's licence (MIT, not ISC: comments fixed) kept in third_party.
- FMMore space under the FM | DAB+ | Internet switch (32 dp) before the logo and the station name, so that they no longer look stuck to it; 20 dp under the panel tabs; DAB picture in the same 112 dp box as the FM and internet logos; screenshots.
- FMAntenna amplifier setting: Reo Au In found the FM reception better with the amplifier switched off (through LibreHU-service and MCU command 43); the setting's hint and the README say so (off: passive antenna, or a clearer FM reception without the amplifier).
- FMDAB+ USB dongles as a third source (FM | DAB+ | Internet): the DABplay+ engine (MIT, pure Kotlin, dab/) drives C100 / DTR-100, Si4684 and Siano SMS2160 dongles; USB attach and permission, scan of band III, favourites, DLS text and slideshow, signal, service following, traffic announcements with the TA setting; DAB screens in the modern, factory and LHU-Link looks, widget, media session and phone a
- FMModern look at car touch size: FM | Internet switch rebuilt (76 dp segments with radio / globe icons, a dot on the source playing, space under it: the logo no longer touches it), same tabs on the station panels, 76 dp icon keys, offer and dialog keys, catalogue filters as caption over value, 76 dp catalogue rows; grid names on two lines broken after hyphens, never inside a word; web tile name no l
- FMlibrehu-service: antenna amplifier setting honoured (antenna asked from LibreHU-service only when allowed), shown when LibreHU-service is installed. (librehu-service)
- FMAntenna amplifier setting (Settings > Reception, phone app page): the antenna power is asked with the FM chip only when it is on; shown by the editions whose head unit bridge switches it.
Monday, November 2lundi 2 novembre
- FMCatalogue filters as big tiles for a car screen: country, region and genre chosen on a one-screen grid (biggest regions first, small ones under "Other regions"), catalogue country apart from the FM band country.
- FMInternet radio in the car styles: factory screen (station between ‹ ›, six-tile pages, catalogue list, soft keys FM / Catalogue / play / Add / Import) and LHU-Link screen (Playing / Internet stations / Catalogue tabs, Options), Internet key and the FM station's stream offer on their FM screens, logo chosen per station, stream titles in the history, phone app source and station choice, immediate re
- FMInternet radio settings in the phone app pages (quality, offer of the FM station's stream) and README section on the internet radio: player, M3U / PLS, Radio Browser catalogue by region and genre with its limits, quality and data use, switch from FM.
- FMInternet radio catalogue and FM offer: Radio Browser list of the country kept a week (regions merged across spellings, national ones apart, genres, name search, streams of a station grouped with the best sound or least data), and on the FM screen an offer to switch to the station's internet stream when the internet works, only on a clear name match (never between two close names), with back to FM,
- FMInternet radio in LibreHU FM: FM | Internet switch, Media3 player (MP3, AAC, Opus, FLAC, HLS) with the stream's song titles (ICY), automatic reconnection and a car-sized buffer, stations added by address or imported from M3U / PLS files, one media session for both sources (launcher, steering wheel keys, widget, notification).
- serviceDisplay: panel picture through MediaTek's picture engine, what Jancar's com.jancar.tftdisplay set
- ViPER4Androidv286 in LibreHU Appsdans LibreHU Apps
- Android Autov2769 in LibreHU Appsdans LibreHU Apps
- Discv21 in LibreHU Appsdans LibreHU Apps
- serviceRoot request of the launcher's assistant through RootShell, for the old su of AOSP
- ViPER4AndroidLibreHU fork: root through Su and RootShell, for the old su of AOSP some Jancar ROMs ship
- DiscRoot: every su call through Su, for the old su of AOSP some Jancar ROMs ship
- Appsv59 in LibreHU Appsdans LibreHU Apps
- Android AutoLibreHU fork: root request through Su, for the old su of AOSP some Jancar ROMs ship
- LauncherRoot: every su call through Su, for the old su of AOSP some Jancar ROMs ship
- AppsRoot: every su call through Su, for the old su of AOSP some Jancar ROMs ship
- FMRoot: every su call through Su, for the old su of AOSP some Jancar ROMs ship
- serviceRoot: old su binaries (su UID COMMAND) and a Looper for BackCar, so the ARM2 handover runs (fix by Reo Au In)
- ZipsREADME: the jancar-settings-provider zips
- servicedocs: ARM2 handover done by the service (hd2cam can go), jacsettings for com.jancar.settings, "Sans les applis Jancar" in the README
- Zipstweaks: jancar-settings-provider / -restore, LibreHU's com.jancar.settings.provider as a system app
- servicejacsettings: R8 on the release build (the Kotlin standard library AGP 9 adds made a 2.3 MB APK)
- servicejacsettings: a replacement for the settings provider of Jancar's settings app, so com.jancar.settings can go
- serviceAutochips: hand the display over from the ARM2 at start-up, so hd2cam can go (green hardware video)
- servicedocs: atc, the ARM2 handover at start-up: without hd2cam, hardware video is green
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r146 (FM driver: forced mono and the end of a scan from a 32-bit app), republished with the r146 build
- FMForced mono: needs the LibreHU kernel r146, whose FM driver passes the command on
- KernelNoyaufmradio: compat_ioctl, give RESTORE_SEARCH and SETMONOSTERO their own command
Sunday, November 1dimanche 1 novembre
- FMRadio: signal and stereo, forced mono, local search, traffic announcements, RDS clock, history, eRT+, PTY 31 alert
- FMRadio: Brazil's extended band, US call letters from the PI code, enhanced RadioText (eRT)
- FMRadio: band plans (Americas: 200 kHz, 75 us, RBDS; Japan), RDS accents, RT+ artist and title
- FMRDS: read the AC8257 driver's 720-byte record (RT+ tags), fix by Reo Au In
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r145 (KernelSU connectivity module fixed), republished with the r145 build
- KernelNoyauci: build Image.gz-dtb and the connectivity modules in one make (the KernelSU module loaded nothing)
- serviceUSB: file transfer with a computer (MTP) off by default, a setting of the Autochips screen
- servicedocs: atc, the MTP setting (off by default) and the Windows Code 28 cache
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r144 (adb back after the standby), republished with the r144 build
- servicedocs: power, the BD37534 set up again after a real standby
- serviceAudio: set the BD37534 up again after a real standby (no sound after waking)
- KernelNoyauusb20: ac8257: reconnect port 0 in its role at resume_end after a standby (adb gone after waking)
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: r143 validated on the unit (panel back after the standby)
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r143 (black panel after resume fixed), republished with the r143 build
- KernelNoyaulcm: read the Jancar panel table at its real MetaZone indexes (black panel after resume)
- Zipscategories / README: the linux-stable subcategory now only holds 4.9.337
- Zipskernel-stable / conn-modules-stable: only 4.9.337; the 4.9.150 to 4.9.319 branches are legacy (bisection only) and leave the OTA
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r134 (MediaTek USB boost off by default and tunable), republished with the r134 build
- KernelNoyauusb_boost: ac8257: off by default, and its settings writable from tuning apps (the CPU stayed at the maximum while a PC used MTP)
October 2026octobre 2026 902
Saturday, October 31samedi 31 octobre
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r133 (CPU / GPU frequency limits respected by every governor, same code as r131), republished with the r133 build
- KernelNoyaudocs: r131, CPU / GPU frequency limits respected by every governor (TUNING.md: what was frozen, how to read the values)
- KernelNoyaucpufreq: ac8257: the SSPM starts within the boot maximum (its zeroed request was OPP 0, 2601 MHz with the overclock table)
- KernelNoyaugpufreq / ged: ac8257: a kept GPU OPP no longer overrides the thermal limit, and GED aims within the LibreHU bounds
- KernelNoyaugpufreq: ac8257: indent g_fixed_vsram_volt_idx = 0 as the unconditional statement it is (clang -Wmisleading-indentation)
- KernelNoyaucpufreq: interactive: give the target to the driver when it equals policy->cur, for CPUFREQ_NEED_UPDATE_LIMITS drivers
- KernelNoyaucpufreq: ac8257: mt-cpufreq sets CPUFREQ_NEED_UPDATE_LIMITS (a governor request equal to the SSPM frequency was dropped)
- KernelNoyaucpufreq / perfmgr: ac8257: the vendor OPP indexes are indexes of the stock table (boot boost OPP 0 meant 2601 MHz with the overclock table)
- KernelNoyauBACKPORT: cpufreq: Introduce cpufreq_driver_test_flags()
- KernelNoyaucpufreq: governors: on a limits change, give a CPUFREQ_NEED_UPDATE_LIMITS driver the governor's request, not one built from policy->cur
- KernelNoyaucpufreq: ac8257: the SSPM bounds no longer overwrite scaling_min/max_freq (CPU kept at a boost floor after a governor change)
- KernelNoyauBACKPORT: cpufreq: Introduce CPUFREQ_NEED_UPDATE_LIMITS driver flag
- KernelNoyaucpufreq: ac8257: governor requests go to the SSPM unclamped, as the MediaTek governors' (a request froze a boost floor or a thermal limit)
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r130 (USB safety nets after a resume, Android USB gadget locked against a function change), republished with the r130 build
- KernelNoyauusb: gadget: configfs: android_setup() under gi->spinlock, as configfs_composite_setup()
- KernelNoyauusb: hub: enumerate again at resume_end the ports b_is_in_suspend gave up (device left unenumerated after a resume)
- KernelNoyauboot_state: send resume_end from the kernel when userspace does not (USB left in its suspend mode after a resume)
Friday, October 30vendredi 30 octobre
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r129 (OC at 1.05 V at most, LibreHU thermal policy), republished with the r129 build
- KernelNoyaucpufreq: procfs cpufreq_oppidx / cpufreq_freq / cpufreq_volt writes no longer freeze the SSPM DVFS
- KernelNoyauthermal: LibreHU policy over the vendor thermal_manager values (CPU reset 125 C, brakes 105 C, ATM 100 C, CTM off; board shutdown 105 C, reset 107 C)
- KernelNoyaucpufreq: ac8257: volt_uv / volt_offset_uv given on the command line are applied at boot
- KernelNoyaucpufreq: ac8257: OC voltages at 1.05 V at most, the Vsram ceiling of the SSPM (Vsram below Vproc from 2.3 GHz since r127)
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r128 (touch boost effective), republished with the r128 build
- KernelNoyaulibrehu: touch input boost through the cpufreq floor (the PPM sysboost policy is disabled, the boost did nothing)
- Zipskernel-stable-4.9.337 / conn-modules-stable-4.9.337: status of r127 (standby fixes for the black screen on wake, touch and USB, overclock voltages really applied above 2.0 GHz), republished with the r127 build
- KernelNoyautp9963: sleep instead of busy-waiting during the format detection (up to 700 ms of spinning CPU at each AHD camera open)
- KernelNoyaucpufreq: give the SSPM the raised overclock voltages (2.1 to 2.6 GHz still ran at the pre-d95b3be61 ones)
- KernelNoyauppm: the PTPOD OPP of the overclock table is index 11, as PTPOD_FREQ_IDX_AC8257_OC says (comment said 10)
- KernelNoyaugt9xx: wake the panel with one reset when the driver sends no config (5 resets and "GTP wakeup sleep failed" at every screen on)
- KernelNoyauusb: hub: do the MediaTek suspend / reboot abort before taking address0_mutex (USB enumeration blocked after it)
- KernelNoyaulcm: cancel the pending Jancar panel power-off on resume (quick screen off / on left the panel unpowered)
- KernelNoyauimgsensor: put the regulator taken by imgsensor_oc_interrupt() when its supply is off (leak at every camera power on)
- KernelNoyaudisp: fast_disp_composer waits for the resume instead of a VSYNC while the display sleeps
Thursday, October 29jeudi 29 octobre
- KernelNoyaulcm: run the Jancar MetaZone panel init on resume (black panel after a real suspend)
- KernelNoyauRevert "lcm: a lone bridge IC (lcm_id 0) also serves the primary panel"
- KernelNoyaulcm: a lone bridge IC (lcm_id 0) also serves the primary panel (black panel after a real suspend)
- KernelNoyausmpboot: do not wait for cpuhp/N itself in the MediaTek park loop (CPU offline hangs since 4.9.120)
- serviceAutochips: the full root command to turn the second LVDS panel off, in docs/atc.md and the journal
- serviceAutochips: the second LVDS panel switch says it is not VIDEO OUT, asks before turning on
- serviceStandby: same boot told by the kernel's boot id, not the wall clock
- serviceStandby: watch for the resume from the standby entry, wake lock check never silent
- Android AutoLibreHU fork: release the boot wake lock at the screen off
- serviceStandby: clean shutdown at t+25 s, engine-start delay 8 s at most
- serviceStandby: stop the apps whose wake lock keeps the SoC awake
- serviceStandby: wake up again after a QuickBoot power off
Wednesday, October 28mercredi 28 octobre
- Zipsqb-whitelist / qb-whitelist-restore: LibreHU apps kept through QuickBoot
- serviceStandby: survive Autochips QuickBoot, suspend test off
- Zipsgapps-remove / gapps-restore: take the Google Apps (OpenGApps) out of the ROM
- serviceStandby: shut down cleanly when the SoC does not suspend, read why the last boot ended
- serviceStandby test: root wake up set first, every alarm call guarded
- serviceStandby test: always wake up again, find out why the service restarts
- serviceStandby journal and suspend test
- ViPER4AndroidFollow LibreHU Launcher's car styles and key clicks
- Dialerv104 in LibreHU Appsdans LibreHU Apps
- BtnRemapv56 in LibreHU Appsdans LibreHU Apps
- Widgetsv51 in LibreHU Appsdans LibreHU Apps
- EasySourcev19 in LibreHU Appsdans LibreHU Apps
- WidgetsDialogs and settings screens follow the launcher's style
- BtnRemapDialogs and settings screens follow the launcher's style
- EasySourceDialogs and settings screens follow the launcher's style
- AppsDialogs and settings screens follow the launcher's style
- serviceDialogs and settings screens follow the launcher's style
- DiscDialogs and settings screens follow the launcher's style
- DialerDialogs and settings screens follow the launcher's style
- FMDialogs and settings screens follow the launcher's style
- LauncherLHU-Link: two home pages of real Android app widgets
- LauncherOBD and tyre screens follow the selected style
- LauncherStyles: every menu tile opens the right page, ViPER as the sound, AUX and Bluetooth sources, wallpaper per style
- WidgetsKey clicks: 26 sounds to choose from, one per style, and an off switch
- BtnRemapKey clicks: 26 sounds to choose from, one per style, and an off switch
- EasySourceKey clicks: 26 sounds to choose from, one per style, and an off switch
- AppsKey clicks: 26 sounds to choose from, one per style, and an off switch
- serviceKey clicks: 26 sounds to choose from, one per style, and an off switch
- DiscKey clicks: 26 sounds to choose from, one per style, and an off switch
- DialerKey clicks: 26 sounds to choose from, one per style, and an off switch
- FMKey clicks: 26 sounds to choose from, one per style, and an off switch
- LauncherKey clicks: 26 sounds to choose from, one per style, and an off switch
- WidgetsKey clicks that follow LibreHU Launcher's style
- BtnRemapKey clicks that follow LibreHU Launcher's style
- EasySourceKey clicks that follow LibreHU Launcher's style
- AppsKey clicks that follow LibreHU Launcher's style
- serviceKey clicks that follow LibreHU Launcher's style
- DiscKey clicks that follow LibreHU Launcher's style
- DialerKey clicks that follow LibreHU Launcher's style
- FMKey clicks that follow LibreHU Launcher's style
- LauncherKey clicks that follow LibreHU Launcher's style
- FMCarKit: generic styled frame, cards, keys, switches, list rows and square panels (shared with the other LibreHU apps)
- serviceSettings in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- AppsLibreHU Apps in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- BtnRemapRemap screen in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- WidgetsSettings in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- EasySourceSettings and source switcher in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- DiscDisc player in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- FMCarKit: menu tiles, metal icons, grid keys and framed pictures (shared with the other LibreHU apps)
- DialerPhone screens in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- FMRadio screen in LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link layouts
- CarPlayv1557 in LibreHU Appsdans LibreHU Apps
- Android AutoLibreHU fork: follow LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- CarPlayLibreHU fork: follow LibreHU Launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- WidgetsStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- BtnRemapStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- EasySourceStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- AppsStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- serviceStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- DiscStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- DialerStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- FMStyles: follow the launcher's Modularer Infotainment-Baukasten and LHU-Link styles
- LauncherFactory style: album line, empty cover like the original, notifications envelope
- LauncherLHU-Link: Vehicle and System sub-menus, ambient lighting page
- LauncherLHU-Link: our own scissor jack where the original shows its maker's logo
- LauncherFactory and LHU-Link styles: square OBD and tyre panels
- LauncherLHU-Link settings: framed list, filled arrows, ON | OFF keys with the red selection mark
- LauncherLHU-Link: Multimedia player like the original (Playback / Sources tabs)
- LauncherFactory style: Vehicle pages with framed arrows and soft keys
- LauncherLHU-Link: My apps as framed tiles
- LauncherFactory and LHU-Link styles: framed dialogs, back to the previous screen
- LauncherFactory and LHU-Link styles: settings, sub-menus, options pop-up like the originals
Tuesday, October 27mardi 27 octobre
- LauncherLHU-Link style: match the measured look (lines, ambient light, bars, clock) + screenshots
- LauncherTheme: name the styles Modularer Infotainment-Baukasten and LHU-Link
- LauncherTheme: selectable ambient screen style (connected-car tablet layout)
- LauncherFactory style: apps screen, Add tile, road in the status bar, Source box on its key
- LauncherTheme: selectable factory screen style (MENU tiles, status bar, Media soft keys)
- LauncherAndroid Auto directions in a popup over the other screens: each new direction, a reminder at 200 m, 6 s, never over Android Auto itself (Open Headunit LibreHU's projection_on_screen), touch to show it; switch in Look settings and from the phone app; overlay permission by root or asked when switched on
- Android AutoLibreHU fork: NAVIGATION_UPDATE says whether the projection is on screen (org.librehu.projection_on_screen), for LibreHU Launcher's direction popup shown only over the other screens
- Android AutoLibreHU fork: a new phone plugged in over USB is paired over Bluetooth by itself
- Android AutoAAP: Route opt-in native Bluetooth pairing without changing legacy paths
- Android AutoAAP: Define Bluetooth pairing messages and bounded request state
- Android AutoWireless Android Auto: the WiFi Direct group asked for on the station's own channel when it is a 5 GHz channel a group owner can use (no time-sharing of a single radio, MCC), else 5 GHz non-DFS; 2.4 GHz fallback rung on the station's channel; a pinned channel still wins; tests
- Zipskernel-stable: 4.9.337 validated on the unit (27/10)
- Zipskernel-stable: 4.9.200 and 4.9.337 boot on the unit (27/10)
- KernelNoyauci: build user and host dokt@librehu (KBUILD_BUILD_USER / KBUILD_BUILD_HOST) (connectivity-builtin)
- KernelNoyauci: build user and host dokt@librehu (KBUILD_BUILD_USER / KBUILD_BUILD_HOST)
- KernelNoyauci: build user and host dokt@librehu (KBUILD_BUILD_USER / KBUILD_BUILD_HOST) (LibreHU-main)
- KernelNoyaudocs: slow boot of the 26/10 kernels (KernelSU AVC seqno), fix and check
- KernelNoyaudocs: slow boot of the 26/10 kernels (KernelSU AVC seqno), fix and check (LibreHU-main)
- KernelNoyaukernelsu: reset_avc_cache with seqno 0 on 4.9 (AVC cache disabled, very slow boot)
Monday, October 26lundi 26 octobre
- AppsZips sorted in sections with grouped variants; screenshots of zips and apps
- Zipscatalogue: subcategories, grouped variants, order and screenshots
- Zipskernel: zip with the stock 4.9.117 connectivity modules
- Zipskernel: original connectivity modules zip visible in the catalogue
- Zipskernel: two zips per linux-stable kernel (kernel + modules, modules only)
- KernelNoyaudocs: stable lot 7 (4.9.320 -> 4.9.337), audit of the automatic resolutions; apply.py: no automatic resolution
- KernelNoyauexit: remove the PF_EXITING barrier moved into the futex exit code
- KernelNoyaucrypto: asymmetric_keys: select CRYPTO_HASH where needed
- KernelNoyauchar, mediatek: build fixes after linux-stable 4.9.337
- KernelNoyauPM / core: clear direct_complete when a wakeup is pending
- KernelNoyauusb: hub: drop the address0_mutex lock left in hub_port_init()
- KernelNoyaudocs: stable lot 6 (4.9.301 -> 4.9.319), log; apply.py: build files count as compiled
- KernelNoyauarm64, clocksource: build fixes after linux-stable 4.9.319
- KernelNoyaudocs: stable lot 5 (4.9.251 -> 4.9.300), log; tools/stable: no rename detection
- KernelNoyaufs, zram: build fixes after linux-stable 4.9.300
- KernelNoyauspi: ac82xx: undo "spi: mediatek: Fix fifo transfer"
- KernelNoyaudocs: stable lot 4 (4.9.226 -> 4.9.250), log
- KernelNoyaumm: memblock: pass hotplug_context to build_all_zonelists()
- KernelNoyaudocs: stable lot 3 (4.9.201 -> 4.9.225), log
- KernelNoyauusb: gadget: configfs: build the composite wrappers only without CONFIG_USB_CONFIGFS_UEVENT
- KernelNoyautools/stable/apply.py: look for applied commits in the whole branch
- KernelNoyaukernelsu: update KernelSU Next to legacy 465490a2 + 165b87fa (API 5)
- KernelNoyaudocs/STABLE.md: batch 2 (stable-4.9.200), choices and what to test
- KernelNoyaustable lot 2: build fixes on the Jancar / MediaTek tree
- KernelNoyautools/stable: lot 2 log (4.9.151 - 4.9.200), non-compiled conflict check limited to the conflicting files
- KernelNoyautools/stable/apply.py: skip commits logged by earlier batches
- KernelNoyauwlan: hotspot interface ap%d as the stock driver (was the Samsung swlan%d)
- KernelNoyauconnectivity: no GPS EMI MPU region on the AC8257, as the stock gps_drv.ko
- KernelNoyauconnectivity: module entry points, MT6357 LDO SW mode and vendor load order (from the stock modules)
- KernelNoyauconnectivity: register the consys platform driver for the AC8257 wmt_loader (oops on first load)
- Zipskernel: conn-modules-stable / -restore, connectivity modules for the linux-stable kernel without KernelSU
- KernelNoyaudocs: linux-stable 4.9.y updates by batch (docs/STABLE.md), batch 1 log and tools (tools/stable)
- KernelNoyauCI: stable-4.9.* branches also build the connectivity modules and publish librehu_connectivity_ksu.zip
- KernelNoyauConnectivity drivers (WMT, Wi-Fi gen4m, BT, GPS, FM) as modules named as the stock ones (CONFIG_LIBREHU_CONN_MODULES)
- KernelNoyauMakefile: one clang block, at the place linux-stable 4.9.13x moved it to (before the arch Makefile)
Sunday, October 25dimanche 25 octobre
- AppsScreenshots: launcher in dark theme, settings tabs reached from the top, lock screen unlocked by sliding, every retro display scene and wallpaper; service rail scrolled to Advanced, GPS page without the position card; OTA quick setup skipped (and shot), BtnRemap test screen closed, Open Headunit assistant pages
- AppsScreenshots: every page of LibreHU-service (scrolled), launcher settings tabs, retro style, wallpapers, standby clock and lock screen, more pages of FM, Widgets, BtnRemap, ViPER, OTA; new apps Helper, Disc, Bridge, Open Headunit, CarPlay
Saturday, October 24samedi 24 octobre
- servicePerformance: CPU boost on touch (Tweaks, off by default: each policy's minimum at its maximum while a finger is on the panel, back 1.5 s after the last touch, one root shell kept open); rear view camera in a SurfaceView drawn with GLES 2 on its own thread (same matrix as the TextureView) instead of a TextureView recomposing the window every frame
- serviceSegment font widgets: each text drawn by its own TextView laid out at the widget's size (cut with an ellipsis, aligned and wrapped as usual) instead of shrunk
- WidgetsSegment font widgets: each text drawn by its own TextView laid out at the widget's size (cut with an ellipsis, aligned and wrapped as usual) instead of shrunk; the clock drawn again right at the minute change
- DialerSegment font widgets: each text drawn by its own TextView laid out at the widget's size (cut with an ellipsis, aligned and wrapped as usual) instead of shrunk
- FMSegment font widgets: each text drawn by its own TextView laid out at the widget's size (cut with an ellipsis, aligned and wrapped as usual) instead of shrunk
- ViPER4AndroidFrench translation of the app (labels and the vehicle audio screen); the phone app's ViPER pages use the app's own labels instead of the parameters' keys
- LauncherDisplay: deep space (spiral galaxy, twinkling stars, ringed planet, shooting stars, hyperspace jumps; in the demo too); retro night colours and scan lines on the lock screen and the standby clock; widget sizes given to the apps (updateAppWidgetSize); GPU vaporwave palm trees sway (triangles each frame); Segment font widgets: each text drawn by its own TextView laid out at the widget's size (cut wi
- AppsKernelSU Next's signing key checked too: catalogue cert = the manager certificate its kernel accepts (KSU_NEXT_MANAGER_HASH in KernelSU-Next's kernel/Kbuild)
- CarPlayCarPlay's settings for LibreHU's phone app (picture, sound, wireless and hotspot, MFi chip, car identity, start, logs; no secrets) through org.librehu.carplay.bridge
- ViPER4AndroidViPER4Android from A to Z for LibreHU's phone app: master switch and one page per effect with every parameter, built from the effects' own list (EFFECT_GROUPS); saved like the app, applied again by the service
- BridgeNames and icons of the new pages (every LibreHU app: launcher pages, radio, sources, OTA, helper, ViPER effects, CarPlay), Android and iPhone
- Helperv7 in LibreHU Appsdans LibreHU Apps
- serviceBridge: the settings pages of every LibreHU app (dialer, widgets, sources, helper, ViPER, CarPlay added to the providers and to package visibility); docs/bridge.md lists them
- HelperEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- EasySourceEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- AppsEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- DiscEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- BtnRemapEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- WidgetsEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- DialerEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- LauncherGPU acceleration of the built-in animations (setting, off by default): aurora, stars, waves, vaporwave and the dot matrix scenes drawn by OpenGL ES 2 fragment shaders (GlScenes.kt), the dots still computed by the processor and handed over as a texture; frames paced at 30 / 15 per second
- FMEvery setting of the app for LibreHU's phone app: <package>.bridge provider (bridge/BridgeKit.kt: pages, items, signature permission checked in call()), same labels and stores as its screens
- LauncherBridge kit (bridge/BridgeKit.kt) left out of the previous commit: pages, items and the signature permission checked in call()
- LauncherEvery launcher setting for LibreHU's phone app (look, wallpaper, home and bar, drawer, standby clock, lock, SOS, driving, tyres) through a small bridge kit; one theme store for the screens and the bridge
- AppsInstall confirmation also as a notification on Android 10+; signing key checked before installing (LibreHU key for LibreHU repositories, catalogue cert otherwise); install from a USB key offline (APKs: LibreHU key or the installed app's, zips / images: SHA-256 of the last zips list); free space checked before downloads; root check with a 15 s timeout and one retry
- serviceWidgets follow LibreHU Launcher's retro palette and segment display font (texts drawn as pictures: Android 9 widgets cannot use an app font; tools/segment_widgets.py adds the <id>_seg images); the OBD dashboard picture too
- WidgetsWidgets follow LibreHU Launcher's retro palette and segment display font (texts drawn as pictures: Android 9 widgets cannot use an app font; tools/segment_widgets.py adds the <id>_seg images)
- DialerWidgets follow LibreHU Launcher's retro palette and segment display font (texts drawn as pictures: Android 9 widgets cannot use an app font; tools/segment_widgets.py adds the <id>_seg images)
- FMWidgets follow LibreHU Launcher's retro palette and segment display font (texts drawn as pictures: Android 9 widgets cannot use an app font; tools/segment_widgets.py adds the <id>_seg images)
- LauncherVaporwave animated wallpaper (striped sun, wireframe mountains, neon grid floor, palm trees, stars); the launcher's widgets in the retro palette and segment display font (drawn as pictures: Android 9 widgets cannot use an app font)
- CarPlayLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- Android AutoLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- ViPER4AndroidLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- serviceLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- HelperLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- DiscLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- EasySourceLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- AppsLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- BtnRemapLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- LauncherWidget sizes and layout changed from each slot's edit button (width, height, move to the previous / next slot, pages included; setting, off by default); right-hand drive: the home screen mirrored (rail, big widget and rows from the right)
- WidgetsLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- BridgeREADME: iPhone section (sideloading the latest-ios .ipa with AltStore or Sideloadly, 7-day re-signing with a free Apple ID, Wi-Fi only, building)
- FMLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- BridgeiOS app (SwiftUI, Wi-Fi): same protocol with CryptoKit, pairing by QR code, keychain, the five tabs; CI builds an unsigned .ipa for sideloading (latest-ios)
- DialerLibreHU Launcher's font followed apart from its style (font column / extra: segment display font in any style), its retro palette when retro
- LauncherOne retro style drawn from the accent colour (the three before read as it), RGB colour wheel, font chosen apart (normal / segment display, any style) and published to the apps; display animations redone on a finer matrix (256 dots, 8 brightness steps): moonlit dolphins, old-school rally (new), analyser, cassette, night road
- BridgePages: text items, slider values as the head unit writes them, page read again after each change; Android Auto quick settings from the pages that matter while driving
- serviceBridge: every setting of the service for the phone app (audio, vehicle, rear view, video, OBD and battery, Bluetooth, Android Auto with all of Open Headunit's settings, CarPlay, display, lights, system, GPS and clock, tweaks), same labels and same stores as the screens; text items, formatted slider values, pages built when asked
- LauncherBridge provider: the signature permission checked in call() itself (Android does not check a provider's permission for call(): any app could change the launcher's settings)
- CarPlayRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- BtnRemapRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- WidgetsRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- FMRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- Android AutoRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- ViPER4AndroidRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- DialerRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- LauncherRetro style published to every LibreHU app (style and palette in the theme provider and THEME_CHANGED); wallpapers: car stereo display animations of the 90s-2000s on a dot matrix (dolphins, spectrum analyser, cassette, night road, demo mode)
- BridgeNew head unit screen in five tabs: Home (battery, GPS as on the launcher with each satellite's signal, temperatures and system, OBD, media), Settings (every page, by app, searchable), Apps (grid, launch), Files (storage and USB, send / save / rename / delete / new folder, progress), Tools (restart normal / recovery / fastboot, logs to the phone, advanced Android settings, about)
- serviceBridge gps: each satellite's signal (sats: constellation, svid, C/N0, used)
- serviceRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- HelperRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- DiscRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- EasySourceRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- AppsRetro style of LibreHU Launcher followed: its palette (day / night) and its segment display font (LibreHU Seg14, DSEG14, SIL OFL 1.1)
- CarPlayREADME: versionName and commit in release.txt
- Android AutoREADME: versionName and commit in release.txt
- CarPlayrelease.txt: versionName as in the APK (the branch last); the commit stays in its own line
- Android Autorelease.txt: versionName as in the APK (the branch last); the commit stays in its own line
- AppsFixes: changes of a version found again (the installed commit is read before the -<branch> suffix); versionName no longer from the screenshots tag; apps of the catalogue seen on Android 11+ (Disc, Helper, Android Auto, CarPlay were missing); SHA-256 of the Versions list from GitHub's asset digest; catalogue packages / repos and zip / config ids checked before they reach root commands; the daily ch
- LauncherRetro styles: segment display font (DSEG14 of LibreHU-Disc, capitals without accents, renamed LibreHU Seg14); first start: phone app pairing (one-time QR code, Bluetooth requests confirmed here, also in the Bluetooth step)
- servicePhone app pairing from LibreHU Launcher's first start: org.librehu.service.bridgepair (QR code, Bluetooth requests, state), signature permission checked in call()
- serviceBridge level 2: apps (list, launch), reboot (normal, recovery, fastboot), temperatures and system, GPS satellites and fix, files (storage; whole file system as root only when allowed on the head unit), logs, Android settings; Head unit page: screen timeout, stay awake, text size, animations, time, location, airplane mode, adb
- BridgeCommit the public LibreHU keystore (it was ignored by *.jks, so the CI had no key to sign with)
- CarPlayversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- Android AutoversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- ViPER4AndroidversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- BtnRemapversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- WidgetsversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- FMversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- DialerversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- HelperversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- BridgeversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- DiscversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- EasySourceversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- LauncherversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- serviceversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- AppsDownloads checked: an APK against the sha256 of its release.txt (when given), zips and catalogue configs against their SHA-256, refused without one
- AppsversionName ends with -<branch> (the branch the APK was built from); release.txt gives the APK's sha256, checked by LibreHU Apps
- CarPlayNo adb backup (mobile, automotive); VEHICLE defined in mobile too (LibreHU-service takes PHONE_INFO from a holder of it only); automotive optimised by R8 like mobile; cleartext kept and explained (optional http:// remote MFi server)
- ViPER4AndroidPublished APK is a release optimised by R8 (no renaming) signed with the LibreHU key, instead of a 70 MB debug build; REQUEST_ROOT receiver behind the signature permission ROOT_REQUEST
- Android AutoREQUEST_ROOT receiver behind the signature permission ROOT_REQUEST (declared here too, whatever the install order): no other app can make the root prompt appear
- DialerRemove the build outputs and local.properties committed by mistake in the previous commit; .gitignore for them
- Dialerunused
- BtnRemapNo adb backup; HEADUNIT (key claims to LibreHU-service, now a signature permission) declared here too, whatever the install order
- WidgetsNo adb backup (allowBackup false)
- FMREQUEST_ROOT receiver behind the signature permission ROOT_REQUEST (declared here too, whatever the install order): no other app can make the root prompt appear; no adb backup
- DiscREQUEST_ROOT receiver behind the signature permission ROOT_REQUEST (declared here too, whatever the install order): no other app can make the root prompt appear; no adb backup
- AppsREQUEST_ROOT receiver behind the signature permission ROOT_REQUEST (declared here too, whatever the install order): no other app can make the root prompt appear; no adb backup
- serviceSecurity: vehicle broadcasts (VEHICLE_STATE, ACC, REVERSE, OBD) sent under the signature permission VEHICLE and PHONE_INFO taken from a holder of it only; REQUEST_ROOT receiver behind the new signature permission ROOT_REQUEST; HEADUNIT (key claims) now signature; config restore refuses archives with absolute or .. paths, links or devices before root extracts them, the export copies link targets; B
- serviceRootShell: the timeout really holds (output read and input written on their own threads; before, reading the output waited for the command to end, so a hung su blocked its caller forever)
- AppsRoot commands: the timeout really holds (output read and input written on their own threads; before, reading the output waited for the command to end, so a hung su blocked forever)
- LauncherSOS screen behind the signature permission org.librehu.permission.SOS (it calls the emergency number after its countdown: no other app may open it); OBD receivers take broadcasts only from a holder of VEHICLE (no faked speed or values); root answers only from holders of the new ROOT_REQUEST permission; region settings root command timeout really enforced (output read on its own thread); no adb bac
- BridgeSign with the LibreHU key (keystore/librehu.jks, or the CI secret), debug builds too: the CI used a new debug key on every build, so each update was refused until the app was uninstalled
- AppsQuick setup at the first start and from the settings (edition, root, every catalogue app checked, install with progress) and a Compile tab as in LibreHU-service Tweaks (catalogue and added apps with their dexopt filter, compile one or all with speed, per-app switch; automatic a minute after start and on open only without LibreHU-service); README: both, and compile after install is speed
- AppsCatalogue: LibreHU Helper (diagnostic app for porting LibreHU to other head units), built in and in catalog.json
- HelperTabs Compatibility (check by check with troubleshooting), Hardware (I2C scan by reads, Apple MFi coprocessor at 0x10/0x11, UART traffic, MCU and CAN box protocol search including CAN frames relayed by the MCU, steering wheel key capture; native JNI probe run as root through app_process), Maker's APKs (detection by confirmed prefixes and scored clues, zip backup with splits and odex/vdex), Full dum
- HelperReport sections Logs (logcat, dmesg, pstore, tombstones), Kernel and hardware (config, modules, device tree text and dtb, input devices and key layouts, I2C/USB/PCI devices, serial counters, sound, video, GPIO, CPU, display, dumpsys) and Maker's files (/jancar, /oem… small text files, audio policy, codecs, build.prop)
- HelperLibreHU Helper: diagnostic app for porting LibreHU (zip report to a chosen folder, anonymised by default; root from the ROM's own su then the known root managers, with a real command timeout; Android/ROM section; serial frame guesser producing LibreHU-service MCU profile drafts, unit tested on JAC_V1, Hiworld, nested and unknown protocols; launcher theme, FR/EN, R8, LibreHU signing key, rolling CI
- TWRPb12 beta buildbuild bêta
- TWRPRemove HANDOFF.md and CLAUDE.md: the handoff stays a local file of the user, not in the repository
- TWRPHANDOFF.md: full handoff for a new Claude session (user rules, safety constraints, hardware, repository map and branches, CI and publishing, local builds, architecture, known pitfalls, recent work to test, pending work); CLAUDE.md points to it
- ZipsTWRP beta zip (latest CI build, pre-releases included): wheel navigation and Hiworld CAN box keys; prepare.sh takes TWRP_CHANNEL
- TWRPtouchfix: steering wheel keys of a Hiworld CAN box (MCU frames 0x10, message 0x11) on channel 7, LNP002 default map, learnable; wheelkeys learn exact codes on channel 7; CAN frames in the log capped
- TWRPTWRP build: version (build number and commit) shown by TWRP and in ro.librehu.twrp, release tagged on the commit built with its branch; notes on build 10 lacking keynav and on checking a flash
- LauncherStandby clock and lock screen: up to 6 OBD values of choice (standard and ddt4all manufacturer values), ordered, on one line or as tiles, names on or off
- BridgeNew interface (LibreHU theme, welcome and steps, pairing cards, battery gauge, live value tiles, media card, settings pages grouped in cards); Android Auto card: why the app is hidden (Car App Library apps need a trusted installer, Unknown sources does not cover them) and reinstall as Google Play (root) or the adb command
- serviceOBD: one session at a time (a stopped one could keep the adapter and fight the next: USB 'Error writing … rc=-1', Bluetooth drops); ddt4all ecu.zip download from an address (kept, checked before it replaces the database)
Thursday, October 22jeudi 22 octobre
- AppsCompile after install: speed (full native code) instead of speed-profile, which without a profile left the app without native code; also after an install in /system
- serviceWheel keys: short / long press from the frames' timing (WheelHold, tested), long press time setting, last press timeline; standby: airplane mode / GPS marks kept and restored after a reboot; OBD: manufacturer values can no longer drop the session; compilation list (filters, per app, other apps); Zygote preload switch (root module); button LEDs section redone (panel test, colour / white, preview)
- Android AutoLibreHU preset 3: decoder low-latency request on (vdec-lowlatency on MediaTek below Android 11, as Moonlight), switch also in LibreHU-service and the launcher
- serviceRelease APK optimised by R8 (no renaming, root helper kept), R8 reports from the CI; low-latency video switches for CarPlay (vehicle provider) and Android Auto (Open Headunit setting)
- LauncherRelease APK optimised by R8 (no renaming, root helper kept), R8 reports from the CI; Android Auto low-latency video switch (Open Headunit LibreHU)
- CarPlayR8 optimisation of the release APK (no renaming); MediaTek decoder low-latency mode (vdec-lowlatency) below Android 11, switch from LibreHU-service
- DiscRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- BridgeRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- EasySourceRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- BtnRemapRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- WidgetsRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- FMRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- DialerRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
- AppsRelease APK optimised by R8 (code and resources shrunk, no renaming), R8 reports uploaded by the CI
Wednesday, October 21mercredi 21 octobre
- serviceNative (AOT) compilation of the LibreHU apps, once per version, at start and on installs and updates: Android 9 leaves them interpreted on a head unit
- LauncherRetro styles: amber VFD, green LCD, cassette (own light / dark colours, fixed-width font, scan lines at night)
- serviceBridge: read the LibreHU apps' settings pages (signature permission, provider queries)
- LauncherFirst start: QR code of the LibreHU phone app's latest release; Driving page for the phone app (bridge provider)
- BridgeLibreHU phone app: pairing by QR code or Bluetooth, encrypted link to LibreHU-service, settings pages described by the head unit, car values, keys, Android Auto screen
- serviceLibreHU bridge server for the phone app: encrypted channel (ECDH/ECDSA P-256, HKDF, AES-GCM) over Wi-Fi or Bluetooth, QR code or Bluetooth pairing, pages of settings described by the service, values and keys
- servicePhone page: battery of the Android Auto phone (LibreHU Android Auto app)
- Android AutoPhone battery from Android Auto's BatteryStatusNotification, when sent, to LibreHU-service
- CarPlayWired CarPlay: back to waiting for the iPhone after a session ends, so plugging it again restarts CarPlay
- serviceEngine sound made up from the OBD RPM and throttle (Potenza Drive style): firing pulses, exhaust resonances, turbo, pops; off by default
- serviceRear view: USB (UVC) cameras read through V4L2 (MJPEG / YUYV), up to 3 more cameras one at a time, side by side or in a corner
- LauncherDriving: weather at the car's position (Open-Meteo: widget, bar) and the road's speed limit (OpenStreetMap / Overpass: over-speed alert with margins, sounds, repeat; limit widget, speed widget mode, bar)
- serviceOBD broadcast: manufacturer values' text too (cartext:), for the launcher's OBD screen
- LauncherOBD full screen (battery, speed / RPM, standard and car values from LibreHU-service's broadcast); car battery on the standby clock and the lock screen
- serviceOBD battery: charge engine off, charging / not charging / overvoltage engine running, alarms with thresholds and sound; API 8 getObdBattery, getObdCarValues
- serviceOBD: ddt4all's whole ecu.zip imported, car picked from its vehicles, one file per ECU identified on the car (2180 / 22 F1xx, read only) or by hand
- LauncherFirst start: root type detected (SuperSU, Magisk, KernelSU / Next, APatch, plain su, none) with its own steps; LibreHU features step (backup, wheel keys, sound menu, button backlight)
- serviceButton backlight: the MCU's two PWM brightness outputs (0F 02 / 0F 03, white LED panels) follow the headlights, day and night levels, on by default
- BtnRemapMedia, volume and voice actions through LibreHU-service (API 7 runKeyAction): Android Auto, EasySource's picker, sound menu; AIDL brought up to API 7 (librehu-service)
- BtnRemapHeadUnit.keyAction: media, volume and voice actions can be run by the head unit's own key handling
- serviceAdvanced sound menu (option, off by default): volume keys open a list of volumes, the wheel chooses, the volume keys set; API 7 runKeyAction for button apps
- serviceSettings backup and migration: every LibreHU app (and forks) into one archive, restore with uid and SELinux labels fixed
- BtnRemapKey test mode (no action runs, every event shown with what it would do, unknown buttons added from there) and button combinations
- CarPlayLibreHU: car name read before the first session is prepared (waited for up to 1.5 s)
- servicedocs/android-auto.md: day / night sent again after the session starts
- serviceAndroid Auto: day / night and car state sent again at projecting and 1.5 s / 5 s after the session starts (headlights already on were missed)
- LauncherTPMS: USB receiver opened again after a read error and when silent for 90 s; continuous BLE scan restarted every 10 min (Android downgrades scans over 30 min) and retried while Bluetooth is off
- DiscFix CD not played after an eject: drive reopened for the next disc, the CD's tracks leave the queue when it goes (autoplay of the next one); play / focus logs
- EasySourceAndroid Auto / CarPlay sources always brought to the front (and Open Headunit's projection raised); wheel keys from LibreHU-service scroll the picker
- BtnRemapCAN buttons: whole byte 6 as the code (SRC+/SRC- told apart), sent as pulsed keys so a hold is one long press (librehu-service)
- BtnRemapPulsed buttons (CAN box) joined into one hold so long presses work, buttons ignored a few seconds after ignition on, default action shown for unmapped buttons
- serviceWheel keys: whole D2 byte as code (SRC+/SRC- told apart), long press per key, keys ignored a few seconds after ignition on, media keys to EasySource's picker while it shows
- TWRPREADME: build on Ubuntu 22.04 / 24.04 / 26.04 (lz4 instead of liblz4-tool, libxml2 comes with libxml2-utils; 26.04 packages checked)
- KernelNoyauBuild docs: Ubuntu 24.04 and 26.04 (Python 2.7 built with -std=gnu11, libtinfo.so.5 link, python= make variable), checked end to end in clean containers (LibreHU-main, connectivity-builtin)
- Apps/system installs also go to /data (manual, TWRP, bulk; setting on by default); uninstall from /data, /system or both
- DiscSettings, offline disc info, CD rip (FLAC/WAV), anti-skip read-ahead; tray no longer closes after eject; eject action for the launcher
- LauncherMedia card: eject button for LibreHU Disc (its session's EJECT custom action)
- DiscAudio CD album, artist, titles and cover from MusicBrainz; close tray button
- TWRPbootmenu: keep looking for the touch device (mtk-tpd) while the menu is shown
- KernelNoyauBoot menu touch: touch device created ~1.4 s after init, menu keeps looking for it (LibreHU-main, connectivity-builtin)
- AppsLibreHU Apps can put itself in /system: bulk TWRP flash list and automatic /system install
- DiscDisc swap: reopen the drive for each disc, compare the TOC, never take a DVD for an audio CD
- Zipstwrp-ujc201: skip pre-releases (CI test builds of the device repository)
- TWRPb10 beta buildbuild bêta
- ZipsCI: build every hour, publish only when a zip changed
- TWRPTWRP: full navigation with the steering wheel keys (keynav)
- KernelNoyaucdrom: own sense buffer in cdrom_read_cdda_bpc (oops on a failed READ CD) (LibreHU-main, connectivity-builtin)
- Zipstweaks: supersu-remove / supersu-restore (root by KernelSU Next)
- AppsCatalogue : KernelSU Next depuis son dépôt officiel (releases classiques, APK choisi par regex)
- Zipskernel: TWRP zips of the LibreHU kernels (LibreHU-main, connectivity-builtin, with or without boot menu)
- AppsREADME: kernel zips can be written to boot directly
- KernelNoyauCI: release latest-<branch> of each build (boot images, release.txt) for the TWRP zips (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/BUILD: adb reboot recovery / bootloader on kernels with the reboot interception (LibreHU-main, connectivity-builtin)
- AppsCatalogue : ajoute LibreHU Disc (CD / DVD USB)
- KernelNoyauCI: boot menu image recompressed with zopfli, as this branch's kernel (connectivity-builtin)
- KernelNoyautools/ac8257: drop a Python cache file committed by mistake (LibreHU-main, connectivity-builtin)
- KernelNoyauNo timed panic; boot image with the boot menu of the device tree (LibreHU-main, connectivity-builtin)
- DiscAdd files via upload
- DiscRetro faceplate style, spectrum analyser, LibreHU root request
- DiscLibreHU Disc: USB CD / DVD player for the UJC201
- KernelNoyaudefconfig: USB CD / DVD drives (SCSI CD-ROM, sg, UDF) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: turn signal inputs not wired on the test unit (B1 / B2 change nothing) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: ACC OK; reverse through the Hiworld CAN box not usable on the test car (LibreHU-main, connectivity-builtin)
- KernelNoyauREADME: board pins and vehicle signals table (MCU or SoC, test results) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: handbrake and headlight (ILL) OK on the unit (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: AMP CONT (MCU command 44) and reverse gear OK on the unit (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: GPS OK on the unit (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: vehicle signals and board pins, MCU or SoC, with test results (LibreHU-main, connectivity-builtin)
- KernelNoyauREADME: one connectivity-builtin row in the branch table (connectivity-builtin)
- KernelNoyauREADME: full table of what works on the unit, additions with their result (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: Bluetooth OK once the antenna connector is plugged right (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: CVBS rear camera OK on the unit (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: CVBS IN 1 / 2 OK on the unit, CVBS rear camera under test (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: boot partition OK, backcar GPIO conflicts are those of the stock DT (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/VIDEO: other TP decoders (stock TP9951 / TP2855 variants) and VIDEO OUT (LibreHU-main, connectivity-builtin)
Tuesday, October 20mardi 20 octobre
- KernelNoyaudocs/STATUS: unit test results of run 64 (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: touch and adb OK on the unit (run 64) (LibreHU-main, connectivity-builtin)
- KernelNoyautouch: panel id first in /proc/gt9xx_config, as the stock UJC201 kernel (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/STATUS: adb remount message without sw_wp_en (LibreHU-main, connectivity-builtin)
- KernelNoyautouch: Jancar gt9xx_props calibration in the GT928 driver (LibreHU-main, connectivity-builtin)
- KernelNoyaucpufreq: progressive voltages above 2.0 GHz, up to the MT6765 top voltage (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/TUNING: 2.6 GHz not stable at the default voltage (hardware watchdog after 14 min) (LibreHU-main, connectivity-builtin)
- KernelNoyaucamera and eMMC: as the stock UJC201 kernel (LibreHU-main, connectivity-builtin)
- KernelNoyauaudio: no TDA7729 on the Jancar UJC201 (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/CONNECTIVITY: run 56 green, sizes (zopfli, 0.3 MB left in boot) (connectivity-builtin)
- KernelNoyauconnectivity-builtin: fit the 10 MiB boot partition (connectivity-builtin)
- KernelNoyauconnectivity: Wi-Fi, BT, GPS and FM drivers built into the kernel (connectivity-builtin)
- KernelNoyaudocs: CI runs 52 and 53 green (2.3 GHz at boot, rc-jancar) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/PORTING: rc-jancar commit (LibreHU-main, connectivity-builtin)
- KernelNoyaurc: rc-jancar keymap read back from the stock UJC201 kernel (LibreHU-main, connectivity-builtin)
- KernelNoyaucpufreq: 2.3 GHz at boot (stable on the UJC201) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: TOUCH.md, panels of the UJC201 and their drivers (LibreHU-main, connectivity-builtin)
- KernelNoyaufocaltech_touch_v3: empty firmware as fw_sample.h (*.i is in .gitignore) (LibreHU-main, connectivity-builtin)
- KernelNoyautouchscreen: drivers of the other UJC201 panels, from public GPL trees (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: CI run 49 green (tp9963_yuv, GT928) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: TP9963 and video inputs, AC8257 sheet, touch driver, 4 cores (LibreHU-main, connectivity-builtin)
- KernelNoyauGT928: no SPECIAL_TOUCHPAD_ATC on the Jancar UJC201 (LibreHU-main, connectivity-builtin)
- KernelNoyauimgsensor: tp9963_yuv rebuilt from the stock UJC201 kernel (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/TUNING.md: frequency audit, causes and fixes (LibreHU-main, connectivity-builtin)
- KernelNoyauCPU DVFS audit: bounds given to and read back from the SSPM, power table of the OC table (LibreHU-main, connectivity-builtin)
- KernelNoyaulan78xx: no self-assignment in lan78xx_read_otp (clang -Werror) (LibreHU-main, connectivity-builtin)
- KernelNoyaucpufreq: OC voltage table size without NR_FREQ (not visible in mtk_cpufreq_main.c) (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: LibreHU changes ported, TUNING.md (CPU/GPU frequencies and voltages) (LibreHU-main, connectivity-builtin)
- KernelNoyauUSB Ethernet and tethering drivers built in (LibreHU-main, connectivity-builtin)
- KernelNoyauCPU up to 2.6 GHz and GPU 730 MHz OC tables, CPU and VCORE voltages settable (LibreHU-main, connectivity-builtin)
- KernelNoyauTweaks and bring-up aids from reverse-engineering, in drivers/misc/librehu (LibreHU-main, connectivity-builtin)
- KernelNoyauKernelSU Next v3.4.0-legacy, manual hooks (from reverse-engineering 54f36f715) (LibreHU-main, connectivity-builtin)
- KernelNoyauUJC201 stock device tree and Jancar /dev/gpios_ioctl (LibreHU-main, connectivity-builtin)
- KernelNoyauREADME: build from scratch; docs/BUILD.md points to it (LibreHU-main, connectivity-builtin)
- TWRPREADME: branches, build from scratch, kernel repository links
- KernelNoyauREADME.md: branches, changes to port, roadmap, future additions (LibreHU-main, connectivity-builtin)
- KernelNoyauBranch main renamed LibreHU-main: CI trigger and docs (LibreHU-main, connectivity-builtin)
- serviceKernel repo links: master becomes reverse-engineering
- ZipsKernel repo links: master becomes reverse-engineering
Monday, October 19lundi 19 octobre
- KernelNoyaudocs: main builds in CI (run 40) (LibreHU-main, connectivity-builtin)
- KernelNoyauBuild with the stock kenv.mk variables and the stock partition table (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs/BUILD.md: symlinks, executable bits, reserved memory, libtinfo5 (LibreHU-main, connectivity-builtin)
- KernelNoyauReserved memory of the UJC201 and executable bits lost by the AutoChips package (LibreHU-main, connectivity-builtin)
- KernelNoyauRestore the 27 symbolic links the AutoChips package lost (LibreHU-main, connectivity-builtin)
- KernelNoyauCI (main): libtinfo5 for the AOSP clang-4691093 (LibreHU-main, connectivity-builtin)
- KernelNoyauCI (main): build with AOSP clang-4691093, the stock kernel's compiler (LibreHU-main, connectivity-builtin)
- KernelNoyauac8257_ujc201_defconfig: the stock #72 kernel configuration (LibreHU-main, connectivity-builtin)
- KernelNoyaudocs: documentation of the AutoChips-based kernel (main) (LibreHU-main, connectivity-builtin)
- KernelNoyauCI (main): host GCC with -fcommon for the AutoChips dtc (LibreHU-main, connectivity-builtin)
- KernelNoyauCI (main): Python 2 for the AutoChips DTS generator (LibreHU-main, connectivity-builtin)
- KernelNoyaumain: AutoChips kernel as base, CI, UJC201 defconfig, porting plan (LibreHU-main, connectivity-builtin)
- TWRPb9 beta buildbuild bêta
- Zipsusb-net, no-deep-buffer: sources now in the kernel repository (tools/ac8257, docs/ujc201)
- servicedocs/atc.md: hidden settings notes now in the kernel repository (docs/ujc201)
- KernelNoyauREADME_LIBREHU: provenance of the GPL package and what is missing (LibreHU-main, connectivity-builtin)
- KernelNoyauAutoChips AC8257 kernel 4.9.117: GPL package from SIXWIN / Jancar, as received (LibreHU-main, connectivity-builtin)
- TWRPTWRP tree only: device notes and tools moved to the kernel repository
- TWRPdocs: public replacement sources for the missing kernel parts (Samsung MT6765 GPL tree), none for tp9963 and Jancar code
- TWRPdocs: GPL kernel package also lacks Jancar edits of existing files (LCM, lowmemorykiller, IR), full path and export check
- TWRPdocs: the unit's GT928 touch driver is in the GPL package
- TWRPdocs: GPL kernel package, out-of-tree connectivity modules missing, gain for the reconstructed kernel
- TWRPdocs: GPL kernel sources from SIXWIN / Jancar compared with stock #72
- serviceREADME: Phone row, wired / wireless CarPlay details and Bluetooth held during wired CarPlay
- servicePhone: iPhone Bluetooth off during wired CarPlay, wired / wireless link
- CarPlayLibreHU: wired / wireless flag and wireless iPhone name for LibreHU-service
Wednesday, October 14mercredi 14 octobre
- serviceREADME: Phone page and widget
- servicePhone page and widget: iPhone details from the CarPlay app, Bluetooth phone
- CarPlayLibreHU: iPhone details for LibreHU-service (Lockdown, diagnostics, iAP2)
- serviceStart ViPER4Android as soon as the storage unlocks
- Zipsviper4android-re: app and driver must both be 2.1.1
- ViPER4AndroidREADME_LIBREHU: upstream merged to 2.1.1, app and driver versions must match
- TWRPdocs: VIDEO OUT is a USB display chip (decompiled ivi-usbdisplay)
- serviceVIDEO OUT through Jancar's USB display app, app data repair, CarPlay on iPhone plug
- LauncherRing my phone: SEND_SMS for Android's MAP client
- ViPER4AndroidDo not crash at start when the log file cannot be opened
- FMSound back after next / previous, seek and scan
- TWRPdocs: stock CVBS IN 1 / 2, VIDEO OUT and AUDIO OUT analysis
- LauncherThemed icon declared on the launcher activity too
- serviceCVBS IN 1 / 2 screen, CVBS rear camera input and VIDEO OUT settings
- LauncherRoot for every app: no more waiting on an app that cannot answer
- LauncherSOS: the phone's own number, as the phone gave it over Bluetooth
- TWRPdocs: LibreHU apps need SuperSU (root asked once), how updates are seen, forks' change lists, FM band units
- Appstools/check_releases.py: check that every update can be seen
- MCU Toolkitv22 in LibreHU Appsdans LibreHU Apps
- MCU ToolkitRoot receiver: Runnable instead of a lambda
- CarPlayREADME_LIBREHU: every file changed from upstream, with what changed
- Android AutoREADME_LIBREHU: every file changed from upstream, with what changed
- LauncherFirst start: SuperSU warning, root for every LibreHU app at once, phone pairing page
- ViPER4AndroidLibreHU: root asked once for every LibreHU app; README_LIBREHU lists the fork's changes
- Android AutoRoot asked once for every LibreHU app (first start assistant)
- MCU ToolkitRoot asked once for every LibreHU app (first start assistant)
- FMRoot asked once for every LibreHU app (first start assistant)
- AppsRoot asked once for every LibreHU app (first start assistant)
- serviceRoot asked once for every LibreHU app (first start assistant)
- FMFix power-up refused: band of Jancar's libfmcust in 10 kHz units
- serviceAndroid Auto and CarPlay widgets
- CarPlayLibreHU fork: the car's name in the iAP2 identification, last car kept
- FMSettings: export an FM log
- LauncherShortcut bar: a gap between it and the home cards
- LauncherShortcut bar opacity, language and time in the first start assistant
- serviceGPS time on by default; Android Auto night from the fork's headlight mode
- Android AutoLibreHU fork: Car Headlight Signal modes follow LibreHU-service's headlights
Tuesday, October 13mardi 13 octobre
- AppsFix crash at start: ACCESS_NETWORK_STATE declared, network test cannot throw
- TWRPdocs: CarPlay fork follows the launcher theme, night from the headlights via LibreHU-service
- LauncherOnline wallpaper: parenthesise the source key (to binds tighter than ==)
- serviceOBD: manufacturer values from ddt4all ECU files, importable car files
- serviceTweaks page: CPU governors and limits, GPU operating point, I/O, swappiness, TCP
- serviceProjection section: Android Auto and CarPlay pages, CarPlay night from the headlights
- CarPlayLibreHU fork: launcher theme and accent, night from LibreHU-service, session state
- serviceRear view: camera format in plain words, camera ids with their role
- LauncherHome pages swiped sideways, internet wallpaper of the day
- AppsBulk /system flash by TWRP, restart menu, list kept offline
- TWRPdocs: Android Auto fork features (car sensors, keys, launcher theme, live card)
- Android AutoLibreHU fork: Android Auto's picture in a LibreHU Launcher card (experimental)
- LauncherDashboard: Android Auto's live picture in its card (experimental)
- CarPlayLibreHU fork: commit count through providers.exec
- Android AutoLibreHU fork: car sensors and keys from LibreHU-service, Car and keys settings
- serviceAndroid Auto: car data and keys to the LibreHU fork, back after reversing, log export
- Android AutoLibreHU fork: versionCode grows with every commit
- CarPlayLibreHU fork: versionCode grows with every commit
- Android AutoLibreHU fork: follow the launcher theme and accent, LibreHU preset
- Apps/system: the same two remounts as adb remount (bind, then superblock)
- Apps/system: remount in place as adb remount, TWRP as the fallback
- Apps/system install with TWRP when the eMMC refuses writes
- serviceNetwork page: the usb-net zip's vendor properties
- Zipskernel/usb-net v3: properties vendor_init may set
- TWRPdocs/ethernet: stock ROM and kernel compatibility, vendor properties
- Android AutoCI: sign with the shared LibreHU key without a secret
- AppsREADME: the new interface; screenshot plan for its pages
- AppsNew interface, laid out like Aurora Store
- TWRPKernel #72, USB network modules, Ethernet doc
- serviceNetwork page: USB Ethernet adapters, phone tethering, usb-net drivers
- Zipskernel/usb-net v2: Android tethering shows up as eth0
- Zipskernel/usb-net: USB Ethernet and USB tethering drivers for the stock kernel
- TWRPdocs: Ethernet over USB adapters (stock kernel drivers, Android 9 service)
- Android AutoCI: sign with the LibreHU key from a secret, never publish unsigned
- TWRPdocs: shared vehicle info, MFi bus auto-detection, fork names and icons
- AppsCatalog: CarPlay (xcertplay LibreHU), Open Headunit fork moved
- CarPlayLibreHU fork: I2C bus found automatically, car from LibreHU-service
- Android AutoLibreHU fork: shown as Android Auto, LibreHU icon
- LauncherDrawer: own icon and name for any app
- serviceVehicle: root shell output is the returned string
- Android AutoLibreHU fork: vehicle settings from LibreHU-service
- LauncherFirst setup: the vehicle; SOS screen shows it
- serviceVehicle: description shared with the LibreHU apps, Wi-Fi Direct name
- CarPlayREADME_LIBREHU: enable the Actions of the fork
- Android AutoREADME_LIBREHU: install from LibreHU Apps
- AppsREADME: how the /system version is read
- AppsVersion of the /system copy without the hidden SDK constant
- AppsFix the type of the /system copy lookup
- AppsDownloads: speed, time left, pause / resume, notifications; /system and /data versions
- AppsCatalogue: Android Auto (Open Headunit LibreHU)
- TWRPdocs: links of the Open Headunit and xcertplay forks
- TWRPdocs: Android Auto through Open Headunit in LibreHU, forks in preparation
- LauncherDashboard: Android Auto card with the next maneuver
- serviceAndroid Auto: drive Open Headunit from the service
- CarPlayLibreHU fork: own package, LibreHU key, CI
- Android AutoLibreHU fork: own package, LibreHU key, trusted automation, CI
- TWRPdocs: MFi chip access of the stock CarPlay stack, open source receivers
- serviceAudio: microphone gain and ECNR of Jancar's factory settings
- TWRPdocs: stock CarPlay / Android Auto / mirroring apps, microphone gain and ECNR
- LauncherRear view widget shown as a live camera stream
- serviceRear view widget: full rate stream into LibreHU Launcher's view
- serviceRear view widget: live picture of the camera
- LauncherTell LibreHU-service when the dashboard shows
- TWRPREADME: /system rw, wording
- TWRPREADME: writing /system with system-as-root
- ViPER4AndroidCI: publish release.txt next to the APK
- BtnRemapCI: publish release.txt next to the APK
- WidgetsCI: publish release.txt next to the APK
- FMCI: publish release.txt next to the APK
- DialerCI: publish release.txt next to the APK
- LauncherCI: publish release.txt next to the APK
- MCU ToolkitCI: publish release.txt next to the APK
- EasySourceCI: publish release.txt next to the APK
- serviceCI: publish release.txt next to the APK
- AppsSpare the GitHub API; write read-only partitions through a private mount
- TWRPREADME: point to LibreHU-flashablesZips for ready-made zips
- AppsAdd a Zips tab: flashable zips of LibreHU-flashablesZips by category
- ZipsFlashable zips by category, built and published by the CI
- AppsSettings: update automatically in /system
- TWRPdocs: ViPER / routing conclusions of the audio analysis, DL2 data transfer test
- AppsOne install at a time, settings, history, config files and recovery zips
- LauncherFind my phone, Bluetooth player seeking
- BtnRemapHand the mapped CAN buttons over to LibreHU-service's claims
- serviceAUX with Android mixed in, vehicle OSD, rear view widget, USB role, YGPS, BtnRemap claims
- FMLogos: match shortened RDS names, pick a logo by hand
- TWRPdocs: rear camera format values as Jancar writes them
- serviceCamera format presets as Jancar sets them, fps in the rear view
- serviceREADME: rear view done, remaining work to drop ivi-services updated
- TWRPdocs: ATC metazone values (camera modes, source, USB, rear display) and LibreHU's Autochips page
- serviceAutochips page: USB mode, ARM2 fast reverse settings, boot logo, hidden tools
- LauncherDrawer: hide apps from the list (hiding mode and a settings list)
- serviceReverse: built-in rear view (Camera2 overlay, guide lines, sensors, sounds, movement)
- TWRPdocs: hidden settings of the stock ROM (ATC Settings, Engineer Mode, metazone)
- serviceReverse: automatic app follows the ROM camera type (avm_hd2cam)
- TWRPdocs/audio_stock: the stock audio chain from the system/vendor dump
- serviceReverse: Baony AVM 360 first, put in rear view by its reverse broadcast
- TWRPtools/dump: collect the audio, camera, FM and Jancar files of a stock dump
Monday, October 12lundi 12 octobre
- TWRPdocs/audio_deep_buffer: removing deep_buffer is a workaround; root-cause leads and how to check
- TWRPAudio TWRP zips: deep_buffer removal next to the ViPER driver
- TWRPTWRP zips: ViPER4Android RE driver without Magisk
- MCU ToolkitREADME: screenshots
- ViPER4AndroidREADME: screenshots
- AppsREADME: screenshots
- EasySourceREADME: screenshots
- BtnRemapREADME: screenshots
- WidgetsREADME: screenshots
- FMREADME: screenshots
- DialerREADME: screenshots
- LauncherREADME: screenshots
- serviceREADME: screenshots
- AppsScreenshots: drawer, power menu, switcher, more tabs
- AppsScreenshots: Android 11 emulator for ARM-only apps, navigation steps
- AppsScreenshots workflow: every LibreHU app on an Android 9 emulator
- AppsInstall in /system as a root module; diagnose a read-only /system
- ViPER4AndroidCI: keep the last 15 builds as numbered releases
- MCU ToolkitCI: keep the last 15 builds as numbered releases
- WidgetsCI: keep the last 15 builds as numbered releases
- serviceCI: keep the last 15 builds as numbered releases
- LauncherCI: keep the last 15 builds as numbered releases
- FMCI: keep the last 15 builds as numbered releases
- EasySourceCI: keep the last 15 builds as numbered releases
- DialerCI: keep the last 15 builds as numbered releases
- BtnRemapCI: keep the last 15 builds as numbered releases
- AppsVersions (downgrade), per-app logs and install in /system/priv-app
- TWRPv8 stable, in LibreHU Appsstable, dans LibreHU Apps
- AppsCheck: per-app errors stay on their card; edition change clears releases
- FMREADME: installing through LibreHU Apps (OTA), latest features
- LauncherREADME: installing through LibreHU Apps (OTA), latest features
- DialerREADME: installing through LibreHU Apps (OTA), latest features
- BtnRemapREADME: installing through LibreHU Apps (OTA), latest features
- serviceREADME: sections of the settings, car name, reverse camera, LEDs, root
- EasySourcePublish release builds (not debuggable), signed with the LibreHU key
- AppsPublish release builds (not debuggable), signed with the LibreHU key
- BtnRemapPublish release builds (not debuggable), signed with the LibreHU key
- WidgetsPublish release builds (not debuggable), signed with the LibreHU key
- FMPublish release builds (not debuggable), signed with the LibreHU key
- DialerPublish release builds (not debuggable), signed with the LibreHU key
- LauncherPublish release builds (not debuggable), signed with the LibreHU key
- servicePublish release builds (not debuggable), signed with the LibreHU key
- LauncherLighter animated wallpapers: 20 fps, redrawn without recomposition
- ViPER4AndroidRead git through providers.exec (configuration cache)
- BtnRemapNext / previous source actions (LibreHU EasySource)
- EasySourceEasySource: switch sources from the steering wheel
- AppsLibreHU Apps: install and update the LibreHU apps from their GitHub releases
- ViPER4AndroidLibreHU: shared signing key, git versioning, rolling release (LibreHU OTA)
- MCU ToolkitCI: LibreHU signing key and a rolling release per branch (LibreHU OTA)
- BtnRemapCI: shared signing key and a rolling release per branch (LibreHU OTA)
- WidgetsCI: shared signing key and a rolling release per branch (LibreHU OTA)
- FMCI: shared signing key and a rolling release per branch (LibreHU OTA)
- LauncherCI: shared signing key and a rolling release per branch (LibreHU OTA)
- serviceCI: shared signing key and a rolling release per branch (LibreHU OTA)
- DialerCI: shared signing key and a rolling release per branch (LibreHU OTA)
- FMRetry the FM power-up once, closing and reopening /dev/fm
- LauncherPower menu buttons centred; seek bar on the media card
- serviceMenus by section; car name, reverse camera, button LEDs, root managers
- ViPER4AndroidFollow the LibreHU Launcher accent too
- ViPER4AndroidRevert "Follow the LibreHU Launcher theme and accent"
- MCU Toolkitui: follow the LibreHU Launcher theme and accent
- ViPER4AndroidFollow the LibreHU Launcher theme and accent
- BtnRemapTheme: every Material role follows the LibreHU palette and accent
- WidgetsTheme: every Material role follows the LibreHU palette and accent
- serviceTheme: every Material role follows the LibreHU palette and accent
- LauncherTheme: every Material role follows the LibreHU palette and accent
- FMTheme: every Material role follows the LibreHU palette and accent
- DialerTheme: every Material role follows the LibreHU palette and accent
- TWRPb7 beta buildbuild bêta
- TWRPci: retry TWRP build with manifest branch fallback
- TWRPrevert: restore original manual TWRP workflow trigger
- TWRPdocs: record recent UJC201 recovery patches
- TWRPfix: fall back to UJC201 para for recovery BCB
- TWRPci: trigger TWRP build when device patches change
- TWRPv5 stable, in LibreHU Appsstable, dans LibreHU Apps
- TWRPUpdate README.md
- TWRPUpdate build-twrp.yml
- TWRPUpdate BoardConfig.mk
- TWRPrecovery_stock_vbmeta_v1.151r6.bin from 2026 updated recovery.img
- TWRPDelete prebuilt/avb/recovery_stock_vbmeta_v1.151r6.bin
- TWRPnew vbmeta from recovery img (2026 update)
- TWRPfrom update UJC201-V1.151R6-260122_0427-RH-C0-CYA (wrong dtbo pushed, fixed this time)
- TWRPfrom update UJC201-V1.151R6-260122_0427-RH-C0-CYA
- TWRPupdated kernel + want_initramfs patch
- TWRPUpdate recovery.fstab
Friday, October 9vendredi 9 octobre
Wednesday, October 7mercredi 7 octobre
Tuesday, October 6mardi 6 octobre
- WidgetsExternal amplifier follows the service's power flag (kept during the engine-start delay) (librehu-service)
- serviceReport the ignition at once; only the power follows the engine-start delay
- serviceAudio diagnostics tab: level meters, speaker test, Android streams, players, chip registers
- LauncherPhone status: operator / name / both, battery percentage, on the standby clock too
- serviceGPS reset (cold start) and GNSS daemon restart, no-signal hint
- serviceStandby after the ignition, engine-start delay
- FMDocs: README and docs for the latest features
- BtnRemapDocs: README and docs for the latest features
- WidgetsDocs: README and docs for the latest features
- DialerDocs: README and docs for the latest features
- LauncherDocs: README and docs for the latest features
- serviceDocs: README and docs for the latest features
- LauncherControl center slider drives the head unit's master volume (librehu-service)
- LauncherControl center slider drives the head unit's master volume (ivi)
- LauncherSettings backup, quick settings slider/hotspot/long press, TPMS dark picture, standby media centred
- servicePlay/pause that does not need two presses, safe shutdown, boot apps
- serviceAccess to the service like SuperSU: LibreHU apps allowed, others asked
- DialerDial pad widget: fix the * and # keys (broken XML entities)
- serviceTouch keys: learn a key by holding it, not the last touch
- DialerDialer: T9 search, dial pad widget, widgets that load
- EasySourceInitial commit
- FMFollow LibreHU Launcher's accent colour
- BtnRemapFollow LibreHU Launcher's accent colour
- WidgetsFollow LibreHU Launcher's accent colour
- serviceAudio source Android / AUX: switch the BD37534 input
- FMNever send AudioFmPreStop=1: it mutes all media on MediaTek
- serviceSteering wheel keys from the CAN box: Hiworld 0x11 keys to actions
- serviceCAN Clio 3 profile: full Hiworld LNP002 decoding from Hiworld's app
- FMFM audio: 48 kHz capture, audio patch through AudioPort.mActiveConfig
- serviceBT music: tell this ROM's AVRCP controller the player is in the foreground
- LauncherTPMS car picture: read the file once, decode with ImageDecoder, show why it failed
- FMRadio settings: RDS options, audio path, logo server and offline library
- FMAC8257 tuner structure and units, hardware audio patch like Jancar
- LauncherTPMS: import your own car picture (seen from above)
- LauncherTPMS: car drawn from above, wheels in the tyre colours, pressure bars
- LauncherFix missing opt-in import in the TPMS screen
- LauncherSpeed widget (GPS / OBD / both), TPMS alarm sound, refresh rate, Bluetooth LE sensors
- ViPER4AndroidThemed icon for LibreHU Launcher
- BtnRemapThemed icon for LibreHU Launcher
- FMThemed icon for LibreHU Launcher
- WidgetsThemed icon for LibreHU Launcher
- DialerThemed icon for LibreHU Launcher
- LauncherLibreHU apps' icons in the theme colours
- serviceFix brightness card build; themed icon for LibreHU Launcher
- serviceBrightness panel, more settings for the volume panel
- DialerIncoming call card in the launcher colours; README
- LauncherREADME: control center, drawer, phone status
- DialerPhone network in the header, incoming call card over the apps
- LauncherControl center, drawer customisation, phone charging / no service, volume buttons option
- serviceFix duplicate string; Bluetooth play from the phone no longer paused by the sink
- serviceTouch keys factory mapping, launcher actions, inverted inputs, faster start, reboot, dark mode default
- serviceCAN: selectable car profiles for the CAN box decoding
- serviceMCU tools from MCU-tools-app: state, commands, simulation, decoded traffic
- serviceOBD: dashboard widgets, analog dials and digital cluster
- DialerCall bubble: answer an incoming call from the bubble
- serviceVolume panel over the apps, turn signal inputs filtered
- Launcherlibrehu-service: restart through the MCU (API 5 resetSoc), AIDL updated (librehu-service)
- Launcherivi: restart through the MCU with ISystem.reboot() (ivi)
- LauncherPower menu: ask the bridge when the menu opens
- LauncherPhone and GPS status, power menu, lock screen, widget refresh, spectrum status
Monday, October 5lundi 5 octobre
- DialerCross-check the phone link with Android's HFP client
- serviceMCU watchdog, touch calibration without ivi-services, Bluetooth fixes, CAN viewer
- Dialerlibrehu-service branch: LibreHU-service Bluetooth API as the PhoneBackend (librehu-service)
- DialerCall watcher for the non Telecom backends
- DialerReal calls through Android Telecom, French, fixed build
- LauncherStandby clock, SOS, first start assistant, bottom rail, spectrum wallpaper
- serviceGPS & clock tab, touch panel calibration and front panel touch keys
- serviceREADME: point the to-do line to the comparison table
- serviceREADME: LibreHU vs ivi-services comparison table
- serviceSettings app, MCU protocol profiles, ELM327 OBD-II, display control
- serviceBluetooth: fix fields shadowed by the AIDL stubs' synthetic properties
- serviceBluetooth: hands-free, music and phone book like ivi-btservice
Saturday, October 3samedi 3 octobre
- DialerFix internal palette visibility (ivi)
- MCU Toolkitui: restyle MCU Toolkit for Android Auto look
- DialerExpose shared UI theme helpers to settings screen (ivi)
- DialerImport rounded shape for settings UI (ivi)
- DialerFix settings tab permission branch in ivi build (ivi)
- DialerUpdate main documentation for merged UI and widget improvements
- DialerKeep main independent from Jancar ivi protocol
- DialerRequest device permissions when switching dialer tabs
- DialerShare dialer person model with device data repository
- DialerRefresh widgets periodically for automatic theme fallback (ivi)
- DialerRefresh widgets periodically for automatic theme fallback (ivi)
- DialerRefresh widgets from launcher theme broadcast only (ivi)
- DialerRemove unsupported static configuration broadcast receiver (ivi)
- DialerFix widget style enum declaration (ivi)
- DialerRefresh widgets on launcher and Android theme broadcasts (ivi)
- DialerRefresh widgets when launcher or Android theme changes (ivi)
- DialerAdd dialer and widget personalization settings screen (ivi)
- DialerRoute settings navigation tab to settings screen (ivi)
- DialerAdd settings navigation icon (ivi)
- DialerClear full dial number on long press (ivi)
- DialerAdd long-press gesture support for number field (ivi)
- DialerAdd settings tab to dialer navigation (ivi)
- DialerModernize recent calls widget with Android Auto-inspired cards (ivi)
- DialerModernize shortcuts widget with Android Auto-inspired cards (ivi)
- DialerAdd light widget chips (ivi)
- DialerAdd dark widget chips (ivi)
- DialerAdd light widget card (ivi)
- DialerAdd dark widget card (ivi)
- DialerAdd light Android Auto widget background (ivi)
- DialerAdd dark Android Auto widget background (ivi)
- DialerModernize widgets with synchronized theme and Android Auto styling (ivi)
- DialerHonor dialer appearance preference while following launcher theme (ivi)
- DialerAdd persistent dialer and widget customization preferences (ivi)
- DialerEnable DTMF 0-9, star and hash in the movable call keypad (ivi)
- DialerSend DTMF as ASCII codes required by Android HFP (ivi)
- DialerClarify phone speaker route and mute state labels (ivi)
- DialerUse Jancar audio transfer for phone versus car routing (ivi)
- DialerAdd verified Jancar call-audio transfer command (ivi)
- DialerDeclare overlay and foreground call-control service (ivi)
- DialerLaunch movable system call overlay and request overlay permission (ivi)
- DialerAdd movable system-wide call overlay service (ivi)
- DialerRefresh recent-call widget after permission changes (ivi)
- DialerRoute launcher widgets to app tabs and remove demo data (ivi)
- DialerRegister dialer launcher widgets (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerAdd launcher widgets for dialer shortcuts and recent calls (ivi)
- DialerRemove demo contacts and use device data on dashboard (ivi)
- DialerLoad device contacts and call history with runtime permissions (ivi)
- DialerClear stale Jancar state after service disconnect (ivi)
- DialerAdd in-call DTMF keypad to overlay (ivi)
- DialerAdd modal in-call overlay and preserve dialer underneath (ivi)
- DialerFix Jancar callback transaction dispatch order (ivi)
- DialerAlign integration docs with current ivi Binder backend (ivi)
- DialerDocument extracted Jancar Binder contract for ivi backend (ivi)
- DialerFix Binder callback stubs and keypad backspace icon (ivi)
- DialerReset stale call events before sending a new call (ivi)
- DialerReflect live Jancar power and connection events in header (ivi)
- DialerRecord verified Binder transaction IDs and ivi backend boundary (ivi)
- DialerDocument initial Jancar integration on ivi branch (ivi)
- DialerFail safely when Jancar rejects a Binder transaction (ivi)
- DialerShow Binder command results and errors in dialer (ivi)
- DialerRun Android CI on integration branches (ivi)
- DialerDeclare visibility for stock Jancar Bluetooth service (ivi)
- DialerWire dialer call actions to Jancar Binder backend (ivi)
- DialerRead connected phone name and expose microphone mute command (ivi)
- DialerAdd initial Binder client for stock Jancar Bluetooth service (ivi)
- DialerDocument shared LibreHU visual theme contract
- DialerDocument launcher theme synchronization
- DialerAlign dialer launcher icon with LibreHU app identity
- DialerDeclare launcher theme provider visibility
- DialerAdd launcher theme follower for dark mode and accent sync
- DialerSync dialer palette and appearance with LibreHU Launcher
- Dialerci: serialize Android builds to avoid memory pressure
- Dialerfix: configure Gradle memory for CI
- Dialerdocs: map LibreHU integration branches and Bluetooth architecture
- Dialerdocs: document dialer architecture and milestones
- Dialerci: add Android debug build workflow
- Dialerfeat: add Android Auto-inspired dialer interface
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerbuild: initialize Android Compose application
- Dialerdocs: initialize LibreHU dialer project
Friday, October 2vendredi 2 octobre
- TWRPAudio: script to drop the silent deep_buffer output
- LauncherAnimated wallpapers and a TPMS home screen widget
- LauncherTPMS: USB tyre pressure receiver built into the launcher
- BtnRemaplibrehu-service: Hiworld CAN box and resistive buttons through LibreHU-service (librehu-service)
- BtnRemapivi: buttons from ivi-services' key broadcast, IAudio volume, MODE no-op target (ivi)
- BtnRemapSteering wheel button remapper: short / long press actions, app cycle list
- Widgetslibrehu-service: external amplifier state from the service (librehu-service)
- Widgetsivi: external amplifier state from external_amp_switch and ignition (ivi)
- WidgetsExternal amplifier probe; redraw on launcher theme changes
- LauncherTheme: also send THEME_CHANGED to the LibreHU app packages
- FMWidget: light / dark theme like the app
- ViPER4AndroidFollow LibreHU Launcher's light / dark theme (auto with headlights)
- Widgetslibrehu-service: vehicle data from LibreHU-service callbacks (librehu-service)
- Widgetsivi: vehicle data from Jancar ivi-services (ICar, accStatus, IAudio) (ivi)
- WidgetsHead unit widgets: indicators, clock with trip time, info, single lamp
- FMLight / dark theme following LibreHU Launcher (or the system)
- LauncherTheme: explicit types (CarColors.Accent vs the Accent enum)
- LauncherSettings, light/dark theme, wallpaper, app long-press menu
- FMStation logo from Radio Browser, cached per frequency
- FMivi: leave the audio focus to ivi-services (ivi)
- FMReport why the radio did not start; let the head unit own audio focus
- Launcherivi: fix IAudio call arguments (ivi)
- Launcherlibrehu-service: rail volume through LibreHU-service (librehu-service)
- Launcherivi: rail volume through Jancar ivi-services (IAudio param 10 + volume bar) (ivi)
- LauncherCar dashboard launcher: shortcut rail, widgets, now playing card, app grid
- FMlibrehu-service: antenna power through LibreHU-service (API 2) (librehu-service)
- FMivi: open/close the radio through Jancar ivi-services (IRadio) (ivi)
- serviceAPI 2: radio antenna power (GPIO 110 + MCU 0x43)
- FMFM radio app: MediaTek /dev/fm tuner, car-style UI, media session, widget
- ViPER4AndroidVehicle audio: use LibreHU-service instead of Jancar ivi-services
- serviceBuild: put AGP on the root classpath next to the Kotlin plugin
- serviceFirst service base: MCU link, vehicle inputs, ACC, BD37534 driver, AIDL API
- ViPER4AndroidVehicle audio: add external power amplifier switch
- serviceSpec : nom reel de l'app CAN (com.can.activity)
- serviceSpec : app CAN (Renault Clio 3 / Hiworld), FM interne MediaTek, releves appareil
- serviceSpec : analyse complete d'ivi-services et plan de reecriture
- MCU ToolkitDoc audio : classe de plateforme A0_AN, base caisson -5 dB, courbe de volume
- MCU ToolkitDoc : pilote natif BD37534 (libJanCarIVI.so)
- ViPER4AndroidVehicle audio: hide fake EQ bands on ROHM BD37534
- ViPER4AndroidAdd Vehicle audio screen for Jancar head units (LibreHU)
- MCU ToolkitInfos : board id et puce audio deduite
- MCU ToolkitDoc : analyse audio / camera / BT d'ivi-services
- MCU ToolkitUI Material : ripple, cibles 48 dp, elevation + statut a l'appui
- MCU ToolkitAjoute CHANGELOG et pose la version v1.0.0
- MCU ToolkitVersionnement git + support multi-langues (FR/EN)
- MCU ToolkitCI : corrige le setup SDK (paquet obsolete 'tools')
- MCU ToolkitRenomme l'app en MCU Toolkit
- MCU ToolkitCI : build de l'APK via GitHub Actions
- MCU ToolkitApp : onglet Simulation (injection locale) + habillage
- MCU ToolkitAjoute la doc et les outils de reverse engineering du MCU
- TWRPDeplace l'app Android JacMCU vers LibreHU/MCU-tools-app
- MCU ToolkitAdapte JacMCU a son propre depot
- TWRPMCU : config OpenOCD lecture seule HK32C030 via GPIO Raspberry Pi 2/3
- TWRPdoc MCU : voies de secours HK32C030 (ROM bootloader BOOT0/UART1, SWD + FLM, niveaux RDP)
- TWRPApp Android JacMCU (service Jancar / root) + correctifs doc MCU
- MCU ToolkitApp Android JacMCU (service Jancar / root) + correctifs doc MCU
- TWRPMCU: reference complete du firmware et outil jacmcu.py
- TWRPMCU : analyse du firmware Jancar (docs/mcu_firmware.md, tools/mcu/) + requete feux F0 0B 00
- TWRPbuildprop_fix : neutralise la fausse version du framework Jancar (persist.jancar.ver_rel / sdk)
- TWRPZips TWRP : correctif build.prop (version Android / fingerprint) + restauration
- TWRPv4 stable, in LibreHU Appsstable, dans LibreHU Apps
- TWRPCHANGELOG : v1.1
- TWRPCHANGELOG depuis 3.7.1_12 (858a3c4)
Thursday, October 1jeudi 1 octobre
- TWRPb3 beta buildbuild bêta
- TWRPFenetres sans patch du binaire : bandeau du theme sur la barre de navigation
- TWRPTableau de bord et barre d'etat via proprietes systeme ujc201.* (sans patch du binaire TWRP)
- TWRPTWRP : tableau de bord graphique Vehicle / MCU, sortie des scripts Advanced dans la console
- TWRPMCU : version retiree de la barre d'etat, entree Advanced > MCU info
- TWRPMCU : fenetres (feux allumes, touche volant), horloge MCU, touches au volant
- TWRPtouchfix : journal des trames MCU (/tmp/mcu.log) pour le diagnostic
- TWRPTWRP : etat MCU (ACC, frein a main, feux, version) dans la barre d'etat