diff --git a/CHANGELOG.en.md b/CHANGELOG.en.md
index debb7487..5a7cf331 100644
--- a/CHANGELOG.en.md
+++ b/CHANGELOG.en.md
@@ -2,576 +2,903 @@
[Français](CHANGELOG.md)
-Desktop, Android (APK) and Tundra/Sargo. Status indicates development sources, a built APK or a published release. Source changes require an update to the installed package.
+Updates by date and platform. Within each group: Add, Change, Fix, Note, Test. Entries describe the state at their date; a fix in development requires an updated installed version.
+
+
+
+## 14/10/2026 : 2.7-preview.21
+
+
+
+### 
+
+-   : Unavailable-feature messages are easier to read in light and dark themes.
+-   : Contact names now appear when the call history first loads.
+-   : Additional dictionaries available offline; improved Gaia keyboard activation and recovery. Verification on affected devices is still needed.
+-   : Storage panels restored. A loading error no longer locks the other menus.
+
+### 
+
+-   : Read Android contacts, SMS and call history in Gaia after granting access. Existing local Vulpes data is preserved.
+-   : Return to Vulpes without a persistent white overlay; a closed catalogue can be reopened.
+-   : The reported blank keyboard still needs reproduction on the affected devices.
+-   : First, read-only integration, excluding MMS. Sending and editing Android records use Android apps; new Gaia contacts stay local. SMS and call log access depend on ROM and installer permissions. Tested on Android 9; other versions need verification.
+
+### 
+
+-   : Shared Gaia fixes are included in full installation images and boot updates.
+-   : New installation image built; Pixel boot and flashing must be tested before publication.
-## 2.7-preview.20 — APK built · 13 October 2026
+## 13/10/2026 : 2.7-preview.20
--  Preview 20 brings together shared fixes since APK Preview 17: Gaia settings, appearance, selectors, keyboard, contacts, Marketplace and media.
--  Camera: WebM recording with posters and Gallery/Video playback. Microphone permission requested; controls follow hardware capabilities.
--  Camera: more reliable sensor switching, stopping and resuming. Desktop and Android use their camera APIs; Sargo retains its HAL adapter.
--  Sargo: Wi-Fi, Bluetooth, calls, SMS/MMS and network settings updates included in the sources. Unimplemented functions remain identified in their panels.
--  Changelog: simplified French/English text and badges retained; desktop/APK/Sargo filters independent of headings. Markdown, website and release notes generated from one JSON.
--  APK signed with the previous Preview key; alignment and consistency of 53 shared files verified. Android runtime validation in progress.
--  Desktop/Sargo Gecko 156.0.1; Android GeckoView 156.0. Gaia 2.7.0. The APK delegates calls/SMS to Android; it does not replace Android telephony.
--  Experimental Preview: Mozilla account/Sync, remote location, Firefox OS add-ons and USB file transfer remain incomplete. Sargo: preview around 16 fps; recorded sound and call audio require separate qualification.
--  Pixel 3a: Preview 20 r62 RAM-booted, then flashed to boot_a. Matching readback hash; installed startup, eleven Gaia checks and ten native checks passed. Data retained, Wi-Fi connected and LTE registration observed. No new two-way audio call tested.
+
+
+### 
+
+-   : Video mode, with thumbnails and playback in Gallery and Video.
+-   : Improvements to settings, appearance, pickers, keyboard, contacts and media.
+-   : More reliable camera switching, shutdown and resume.
+-   : Mozilla Account, Sync, remote location, extensions and USB transfer remain incomplete.
+
+### 
+
+-   : Preview 20 APK available.
+-   : Calls and SMS use Android. This Preview has not yet been validated in use on Android.
+
+### 
+
+-   : Preview runs at around 16 frames per second.
+-   : Updates to Wi-Fi, Bluetooth, calls, SMS/MMS and network settings.
+-   : Video sound and two-way call audio still need separate testing.
+-   : Preview 20 installed on Pixel 3a with data preserved. Wi-Fi connected and 4G registration observed.
+
+### 
+
+-   : Simpler French and English history, with badges and platform filters. Shared content for the website and releases.
+
+[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.20)
-## In development — 12 October 2026 — Video and clock settings
+## 12/10/2026 : Video and time
--  Camera: WebM VP8/Opus recording with microphone permission, poster and storage. Buffer limited to 32 MiB; recording stops before releasing the sensor.
--  Camera, Gallery and Video: handle WebM files and their posters.
--  Settings: original Gaia date/time pickers, Back from built-in keyboard settings and unclipped select labels.
--  Improve Vulpes: link to project issues. Unavailable services explained in their panels.
--  Desktop: simulated 1920 × 1080 video decoded; photo, gallery, camera resume and navigation checked.
--  Sargo r61 in RAM: 480 × 640 video decoded, eight front/rear switches passed. Test media deleted; recorded audio not listened to.
--  Sargo: preview measured around 16 fps versus 12 in the previous test. 30 fps is not reached yet.
--  Sargo: automatic NITZ time, persistent setting and guarded manual writes. Sync depends on carrier time; no NTP fallback, timezone selected manually.
--  Android: assets staged and Java compiled, without a new APK or Android video test at this stage. Mozilla account/Sync, remote location, Firefox OS add-ons and USB file transfer remain unimplemented. No flashing or publication.
+
+
+### 
+
+-   : Video recording with sound, thumbnails and playback in Gallery and Video.
+-   : “Improve Vulpes” opens the project’s issues.
+-   : Date and time pickers restored; Keyboard back navigation and list text fixed.
+
+### 
+
+-   : Recording checked with a simulated camera.
+
+### 
+
+-   : Changes prepared for a future APK; video not yet tested on Android.
+
+### 
+
+-   : Improved preview, at around 16 frames per second.
+-   : Automatic time depends on network information; time zone remains manual.
+-   : Video recording and camera switching checked. Video sound still needs listening tests.
-## In development — 12 October 2026 — Calls and Wi-Fi sharing
+## 12/10/2026 : Calls and hotspot
--  Gaia dialogs: close after opening, complete interrupted transitions and allow retry after rejected validation.
--  Sargo: longer carrier-service timeout; slow settings separated from voice/SMS commands.
--  Sargo: call waiting, caller ID and four forwarding rules connected to oFono, with validation and readback.
--  Sargo: WPA2 or open Wi-Fi hotspot, NetworkManager configuration and compatible firewall. Private password, accessible only to Settings.
--  r59 in RAM: 69 panels, dialogs and APNs checked on desktop/Pixel. Hotspot saved, started and stopped through Gaia; previous Wi-Fi restored. 44 Python tests and dialog regressions passed.
--  Internet forwarding to another device untested. Voicemail, call barring, PIN/PUK, Wi-Fi certificates and USB tethering remain open. Android assets synchronized; no new APK, flashing or publication.
+
+
+### 
+
+-   : Dialog closing and retry after an error fixed.
+
+### 
+
+-   : Settings for call waiting, caller ID and call forwarding.
+-   : Hotspot with or without a password.
+-   : Slow settings no longer block calls and SMS.
+-   : Hotspot activation checked; Internet access from another device still needs testing.
-## In development — 12 October 2026 — Network settings
+## 12/10/2026 : Network settings
--  Wi-Fi: actual IPv4 address and link speed; no “undefined” label when a measurement is missing.
--  Sargo: GSM/UMTS/LTE selection and editing of existing Internet/MMS APNs, with validation and readback.
--  APNs: reject changes to active profiles, protect IMS and passwords, attempt rollback after failure and report its result.
--  Sargo: bounded queue for slow settings. Call status read in 20 ms during a five-second settings wait.
--  38 Python tests, 69 desktop panels and APN/network workflows on RAM-booted Pixel checked. Android assets synchronized.
--  APN creation, deletion and reset unavailable. Manual carrier selection and certificates still open. No new APK, flashing or publication.
+
+
+### 
+
+-   : IP address and connection speed displayed correctly.
+
+### 
+
+-   : Network type selection and mobile access point editing.
+-   : More reliable network settings when the modem responds slowly.
+-   : Adding, deleting and resetting access points remain incomplete.
-## In development — 12 October 2026 — Settings audit
+## 12/10/2026 : Settings review
--  Settings: recover navigation after a controller or dialog fails; consistent module generation.
--  Accessibility filters and Vulpes support. Original panels retained with explanations for unavailable features.
--  Desktop: profile statistics and Gecko downloads. Android: private storage statistics.
--  Sargo: mobile data, roaming, clock and hidden Wi-Fi connected. Legacy network errors in Sound settings fixed.
--  97 views inventoried; 69 desktop/Pixel panels opened and seven native dialogs checked. Storage, data and timezone read back after writes on r51 in RAM.
--  Contextual views and unavailable services are not all qualified. Android Java compiled, without a new APK. No flashing, ticket closure or publication.
+
+
+### 
+
+-   : Navigation, accessibility and help fixed. Incomplete panels remain visible.
+-   : Menus reviewed; some actions still depend on hardware or the carrier.
+
+### 
+
+-   : Storage information and downloads connected.
+
+### 
+
+-   : Display of storage used by Vulpes.
+
+### 
+
+-   : Mobile data, roaming, time, hidden Wi-Fi networks and Sound panel fixed.
-## In development — 12 October 2026 — Settings navigation
+## 12/10/2026 : Settings navigation
--  Dropdowns: Gaia selector with confirm/cancel; Light/Dark choice accessible. SIM manager adapted to one slot.
--  Unavailable panels: explanations and disabled controls instead of unresponsive links.
--  Sargo: saved Wi-Fi networks separated from slow scans; cache preserved during status reads.
--  Sargo: SIM information, SMS centre and delivery reports connected to the modem.
--  r45 in RAM: eight appearance checks, five panels and actual SMS report setting changes passed, then setting restored. Desktop selector checked; APK assets staged.
--  Enterprise certificates and other carrier options still unavailable. No SMS sent, new APK, flashing or publication.
+
+
+### 
+
+-   : Light/Dark selection and picker confirmation or cancellation restored.
+-   : Manager adapted to single-SIM phones.
+
+### 
+
+-   : SIM information, message centre and delivery reports.
+-   : Faster loading of saved networks.
+-   : Wi-Fi certificates, SIM security and USB storage remain incomplete.
-## In development — 12 October 2026 — Shared fixes on Pixel 3a
+## 12/10/2026 : Appearance on Pixel 3a
--  Sargo: r39 RAM boot with shared fixes and initial dark mode. r35 kernel and hardware configuration preserved.
--  Boot, viewport size, persistent settings, battery, call UI and Fira checked. Modem, audio, Wi-Fi and Bluetooth services active.
--  Seven Gaia appearance checks passed: propagated theme, readable headers, aligned labels and return to light mode. Pixel screenshot inspected.
--  Tool to update Gaia in a private boot image, with hashes, retained sources and checks for unchanged hardware components.
--  No new call, SMS or pairing tested. Full theme and Android behavior still need qualification. No new APK, flashing or publication.
+
+
+### 
+
+-   : Shared light and dark modes available on Pixel 3a.
+-   : Settings fixes and Firefox OS fonts included.
+-   : No new call, SMS or Bluetooth test at this stage.
+-   : Themes and display checked on the phone.
-## In development — 11 October 2026 — Appearance and shared keyboard
+## 11/10/2026 : Appearance and keyboard
--  Appearance: Light, Dark or Follow system, shared between apps and retained across restarts. Wallpapers, photos and external websites preserved.
--  Keyboard: shared editing operations, selection and deletion, protection against late replies.
--  Desktop: nine appearance checks and Messages input gestures passed, without sending SMS. Visual review of Settings, Messages, Phone and Contacts.
--  Android: experimental Gaia keyboard option; Android keyboard remains the default, input mode restored on close.
--  Android: briefly retry the same busy sensor, without retrying after permission denial or closing Camera.
--  Preview 19 built locally: signature, alignment, parity and bridge/camera tests passed.
--  Gaia keyboard, Android front camera and full theme still need qualification. Sources ready for Sargo, which remained on r35 at this stage. No upload, flashing or ticket closure.
+
+
+### 
+
+-   : Light, Dark and System modes, preserved after restart.
+-   : Text selection and deletion fixed.
+
+### 
+
+-   : Themes and SMS typing checked.
+
+### 
+
+-   : Experimental Gaia keyboard; Android keyboard remains the default.
+-   : Retry available when the camera is busy.
+-   : Preview 19 built; themes, keyboard and front camera still need testing on Android.
-## In development — 11 October 2026 — Settings and homescreens
+## 11/10/2026 : Settings and home screen
--  Settings: ringtone management, PIN entry/deletion, lock disabling and third-party app permission list.
--  Home: first initialization of the second launcher and wallpaper previews.
--  Languages: refresh Vulpes labels after language changes; English fallback outside French. Dismiss camera failure panels and installation banners.
--  Android: open the Gaia tray by tapping the status bar. Preview 18 built, signed and compared with sources.
--  Desktop: nine Gaia workflows, five banner checks and twelve activity/camera tests passed. Sargo r35 Bluetooth confirmed by the user.
--  Compositor hot restart still unstable: files restored and return to r35. Fixes not yet qualified on Sargo at this stage; Android keyboard/theme open. No APK publication or flashing.
+
+
+### 
+
+-   : Second home screen, wallpaper previews and installation banner fixed.
+-   : Error message dismissal restored.
+-   : Ringtones, lock code, permissions and French/English labels fixed.
+
+### 
+
+-   : Open the notification tray by tapping the status bar.
+-   : Preview 18 built locally.
+
+### 
+
+-   : Returned to the previous version after an unstable interface restart.
+-   : Operation confirmed by the user.
-## In development — 9 October 2026 — MMS and Bluetooth
+## 09/10/2026 : MMS and Bluetooth
--  Bluetooth: shared Gaia adapter, separate hardware commands and access restricted to authorized apps.
--  Sargo: power, discovery, explicit pairing, connection and removal from Gaia Bluetooth settings. Bluetooth audio modules included.
--  Sargo: Qualcomm network services and MMS transport connected. D-Bus disconnect no longer terminates the MMS daemon. Persistent state, retry without duplicates or uncertain automatic resends.
--  r35 in RAM: image MMS visible and accepted by Orange MMSC; recipient delivery still unconfirmed. Five Bluetooth devices discovered, A2DP to desktop verified.
--  191 Tundra Python tests and 18 JavaScript tests passed. Smaller ramdisk and synchronized Android assets.
--  Headset call audio unqualified. No new APK, flashing or push at this stage.
+
+
+### 
+
+-   : Gaia panels connected to each platform’s capabilities.
+
+### 
+
+-   : Discovery, pairing, connection, forgetting devices and audio output.
+-   : Sending preserved and resumed after interruption.
+-   : MMS accepted by the carrier, delivery not confirmed. Headset call audio still needs testing.
+-   : Bluetooth audio playback to a PC checked.
-## In development — 8 October 2026 — Camera and MMS transport
+## 08/10/2026 : Camera and MMS
--  Camera: stop the stream before detaching video; await sensor closure, reset the viewfinder and recalculate size after rotation.
--  MMS: preserve Blob attachments and keep messages pending until transport confirmation.
--  Sargo: reused WebGL viewfinder without intermediate video capture; screen stays awake during preview.
--  Desktop and Sargo: Camera/Gallery workflows and eight native switches checked. JPEG, focus and zoom working; rear ~16 fps, front ~25–27 fps in this test.
--  Sargo: persistent MMS queue, Nuntium codec and oFono transport. Text/photo UI tested with simulated transport.
--  Mobile data blocked carrier MMS at this stage. Android assets synchronized; no new APK, flashing or push.
+
+
+### 
+
+-   : Camera switching, shutdown and display after rotation fixed.
+
+### 
+
+-   : Attachments preserved and sending shown as pending until confirmation.
+
+### 
+
+-   : Preview measured at around 16 fps on the rear camera and 25–27 on the front.
+-   : Real sending still blocked by the mobile data connection.
+-   : Focus, zoom and photo capture checked.
-## 8 October 2026 — Call-log redial and error dialogs
+## 08/10/2026 : Call history and dialogs
--  Gaia dialogs: visible text instead of a grey screen with a lone button.
--  Call log: redial through the same service as the keypad, without legacy Gecko APIs. Shared desktop/Android/Sargo file.
--  MMS: clearly report unavailable sending, retain text and attachments, no false airplane-mode message.
--  Desktop: FR/EN dialogs and preserved composer. RAM-booted Sargo: 11 Gaia checks passed, redial tested with a simulated modem.
--  No real call or audio validation at this stage. Android assets synchronized, no new APK published.
+### 
+
+-   : Readable error messages with usable buttons.
+
+### 
+
+-   : Clear message when sending is unavailable, without losing the draft.
+-   : Calling back from call history restored.
+
+### 
+
+-   : Flow checked with simulated calls; real audio not tested.
-## In development — 8 October 2026 — SMS and audio
+## 08/10/2026 : SMS and audio
--  SMS: send in one tap while keeping the keyboard. Paperclip connected to the Gaia image, audio, video or contact menu.
--  UI: visible volume indicator, lockscreen gestures and notification swiping fixed.
--  Desktop: keyboard, attachments, Gallery, call UI and volume checked; notification swiped without moving the page. No new APK published.
--  Sargo: PulseAudio access, Qualcomm relay, D-Bus protocol and calibration devices restored. Conflicting Android audio service removed.
--  Sargo: 11 Gaia checks, calibration and rear/front/rear previews passed.
--  Calls failed before ringing with a network error in this test. Two-way audio, Pixel gesture and MMS still unverified. No flashing or publication.
+
+
+### 
+
+-   : Volume display, lock screen and notification swiping fixed.
+-   : Send with one tap without first closing the keyboard. Attachment menu restored.
+
+### 
+
+-   : Call audio routing fixes.
+-   : Network issues prevented testing a real conversation; two-way audio not confirmed.
-## In development — 8 October 2026 — Telephony reliability
+## 08/10/2026 : Network reliability
--  Sargo: radio service survives client closure. No automatic new call or SMS after a lost response. Errors exclude phone numbers and message text.
--  Network/audio diagnostics without personal identifiers, and pinned carrier settings in the native image.
--  SMS: wait for the actual Gaia manager and accept uppercase oFono IDs. Conversation checks restored without resending.
--  Sargo: LTE restored after reboot, SMS confirmed sent by the modem, non-silent microphone and audio playback accepted.
--  Recipient delivery, two-way call audio and modem stability remain unqualified. Compositor hot restart unstable. No new APK, flashing or push.
+
+
+### 
+
+-   : Messages linked to the correct conversation.
+
+### 
+
+-   : Improved modem recovery; retries avoid duplicate calls and SMS.
+-   : Network stability and two-way audio still need confirmation.
+-   : Return to the 4G network after modem restart checked.
-## 8 October 2026 — Public source update
+## 08/10/2026 : Public source code
--  Published Camera, Contacts, SMS and Marketplace fixes, plus Sargo build and recovery tools.
--  Updated French and English READMEs with verified features and limitations.
--  Create the report directory when checking Android asset parity in a fresh checkout.
--  Checked native Wi-Fi configuration: no bundled connection profiles.
--  Internal documents, personal data and keys excluded from the repository.
--  Public APK unchanged (Preview17); October 8 fixes not included. No new native image published.
--  Sargo: modem still searching for a network; call audio, Bluetooth pairing and profiles await validation.
+### 
+
+-   : Camera, contacts, SMS and Marketplace fixes published, with updated French/English project overviews.
+
+### 
+
+-   : Building from a fresh repository copy fixed.
+-   : The public APK remains Preview 17; these fixes are in the source code.
+
+### 
+
+-   : Network search still unstable at this stage; no new image published.
-## 8 October 2026 — Camera and Contacts workflows · in development
+## 08/10/2026 : Camera and contacts
--  Camera: corrected sequential opening, sensor cleanup and front/rear identification.
--  Contacts: corrected photo and date transport on desktop, Android and Tundra.
--  Contacts: restored refresh after editing, SMS handoff, number picking and dialer prefilling.
--  Gallery: open the contact photo picker even when the app is already running.
--  Sargo: include corrected Contacts files in the boot image.
--  Android: pass recipients and text to the SMS app, including replies and unconfirmed typed numbers.
--  Tests for camera lifecycle, contact storage, permissions, binary transport and activities.
--  Desktop: verified JPEG capture, Gallery, contact photos, creation, editing, search, favourites and deletion. No calls or SMS sent.
--  Sargo in RAM: verified autofocus, zoom, four camera switches, capture and Gallery; tested Contacts with touch input.
--  Sargo: checked stored conversations, keyboard and notifications; detected four Wi-Fi networks. New SMS and call audio await validation.
--  Sargo: BlueZ and dependencies pinned by SHA256. Power-on and discovery tested; pairing and profiles await validation.
--  Sargo: native certificate store. Tested HTTPS, corrupted archives, file collisions and repeated builds.
--  Published Preview17 with download and SHA256 checks. These fixes remain in source; Android SMS needs a real-device test. No Sargo flash.
+
+
+### 
+
+-   : More reliable opening and camera switching.
+-   : Photos, dates, edits and number selection from Messages or Phone fixed.
+-   : Media selection fixed.
+-   : Fixes in source code; public APK unchanged at this stage.
+
+### 
+
+-   : Number and text passed correctly to the Android app.
+
+### 
+
+-   : Discovery available; pairing and audio use still need testing.
+-   : Photo capture, focus, zoom and camera switching checked.
-## 6 October 2026 — Embedded Marketplace theme · in development
+## 06/10/2026 : Marketplace theme
--  Marketplace: embedded theme with local Fira fonts, compact navigation, touch controls, collapsible filters and scrolling screenshots.
--  Preserve `mode=app` across navigation, search, filters and language changes.
--  Hide website headers in embedded mode. Gaia handles confirmations; the catalogue receives no extra privileges.
--  Checked 16 French/English pages, 2 standard pages and mobile layouts at 320 and 360 pixels.
--  Theme ready locally, not deployed. Desktop and Sargo launchers updated; Android integration pending the next APK.
+
+
+### 
+
+-   : Integration planned for a future APK.
+
+### 
+
+-   : Embedded theme: Fira font, compact navigation, touch buttons and scrollable screenshots.
+-   : Embedded display preserved during search, filtering and language changes.
+-   : Theme prepared locally, not yet deployed to the website.
+-   : French and English pages checked on small screens.
-## 6 October 2026 — Gaia banners · in development
+## 06/10/2026 : Notification banners
--  Automatically dismiss the “Application installed” banner even without an animation-end event.
--  Cancel old timers when a new banner replaces the previous one.
--  Desktop: checked display, expiry, replacement and click dismissal. Sargo: verified dismissal after five seconds in RAM.
--  Fix available in shared sources for the next APK. No flash or release.
+
+
+### 
+
+-   : The “Application installed” banner disappears automatically and is replaced correctly.
+
+### 
+
+-   : Banner display and dismissal checked.
+
+### 
+
+-   : Fix prepared for the next APK.
+
+### 
+
+-   : Banner disappearance after five seconds checked.
-## 6 October 2026 — Wi-Fi and Settings panels · in development
+## 06/10/2026 : Wi-Fi and settings
--  Settings: open panels even without an animation-end event, without duplicate initialization.
--  Sargo: corrected Wi-Fi events to restore network results and report disconnection properly.
--  Sargo: detected four access points grouped into two networks. Connection confirmed and HTTPS request passed with certificate verification.
--  Shared sources, desktop server and Sargo RAM trial updated. Fixes not included in the public APK.
+
+
+### 
+
+-   : Panels open even when an animation does not finish normally.
+
+### 
+
+-   : Fixes not yet included in the public APK.
+
+### 
+
+-   : Detected networks and disconnections displayed correctly.
+-   : Search, connection and Internet access checked.
-## 6 October 2026 — Marketplace · in development
+## 06/10/2026 : Marketplace navigation
--  Desktop/Sargo: keep Marketplace below the status bar, hide it on Home and remove it when closed.
--  Cancelled navigation or an old error page no longer hides a retry.
--  Local error message with a Retry button when the catalogue is unavailable.
--  Desktop: verified navigation, network errors, retry, Home and closing.
--  Sargo in RAM: seven checks passed with a local page and forced unlock. Remote catalogue not validated without Internet access.
--  Rebuilt local Preview17 APK; checked signature, alignment and assets. No new Android device test or release.
+
+
+### 
+
+-   : Local message with a Retry button when the catalogue is unavailable.
+-   : The catalogue stays below the status bar and hides when returning home or closing it.
+-   : An earlier error no longer hides a new attempt.
+
+### 
+
+-   : Navigation, errors, returning home and closing checked.
+
+### 
+
+-   : Preview 17 rebuilt locally, without a new Android test.
+
+### 
+
+-   : Interface tested with a local page; remote catalogue not checked without Internet.
-## 2.7-preview.17 — APK built · 5 October 2026
+## 05/10/2026 : 2.7-preview.17
--  Marketplace on Home with its original icon and the Vulpes catalogue in French or English.
--  Confirmed ZIP app installation, launch from Home and removal.
--  Installed apps isolated from Gaia sources and system privileges.
--  Desktop: full 2048 workflow plus archive, path, limit, cancellation and single-use confirmation checks.
--  Preview17 APK built and signed with Marketplace, GeckoView and private package storage.
--  Android 16/API 36 emulator: 2048 installation, launch, isolation, persistence after app restart and removal.
--  Sargo in RAM on October 6: Home and Marketplace assets verified, 9 of 10 system checks passed. Viewport changes on unlock; package installation awaits validation.
--  Initial support for packaged web apps. Legacy privileged APIs and hosted apps not restored. No release at this stage.
+
+
+### 
+
+-   : Install, launch and uninstall packaged web apps.
+-   : Vulpes catalogue on the home screen, in French and English, with its original icon.
+-   : Installed apps kept separate from system apps.
+-   : Some old Firefox OS apps and APIs are not yet supported.
+
+### 
+
+-   : Installation and use of 2048 checked.
+
+### 
+
+-   : 2048 installed, preserved after restart and uninstalled on an Android emulator.
+
+### 
+
+-   : Home screen checked; app installation still needs validation on Pixel.
-## 2.7-preview.16 — APK built · 5 October 2026
+## 05/10/2026 : 2.7-preview.16
--  Restored Gaia wallpaper and sound pickers, return to Settings and cancellation through Home.
--  Apply language changes to Home and preserve them after restart.
--  Restore horizontal page snapping; hide development apps on Home.
--  Vulpes startup logo and sound list adapted to the current engine. Media transport shared by desktop and Android.
--  Android: Gaia locking after sleep and Back from the lockscreen camera. HOME launcher mode validated.
--  Android: hide system bars in immersive mode, with swipe access. Preview16 APK built and signed.
--  Desktop and Android 16/API 36 emulator: checked wallpapers, sounds and panels; tested language, locking and wallpaper persistence on Android.
--  Sargo: updated the boot image to stop restoring outdated files.
--  Sargo in RAM: 6 UI and 10 system checks passed. Installed build remains Preview15, without flashing.
--  APK not published. FFAA installation and call audio await validation; Gaia sound selection does not change the Android ringtone.
+
+
+### 
+
+-   : Vulpes startup logo.
+-   : Unwanted horizontal scrolling removed; test apps hidden.
+-   : Wallpaper and sound selection restored. Home screen language applied and preserved after restart.
+-   : APK built, not published; Pixel image tried without permanent installation.
+
+### 
+
+-   : Android bars hidden and accessible by swiping; launcher mode checked.
+-   : Return from sleep and the lock screen camera fixed.
+
+### 
+
+-   : Old files no longer overwrite updates at startup.
-## In development — 4 October 2026 — Standalone Sargo installation
+## 04/10/2026 : Standalone installation
--  Sargo: standalone ext4 userdata volume with system, data and vendor/modem components. Installation independent of Droidian and ADB.
--  Fastboot installer with model, unlock, size and checksum checks. Replaces userdata, dtbo_a, vbmeta_a and boot_a; retains calibration.
--  Full userdata backup and recovery archive verified before flashing. Actual restoration not tested.
--  Two installed boots passed: 11 Gaia and 10 native checks per boot, retained settings and matching boot readback.
--  Variant without SSH or maintenance keys booted after flashing. Development variant reinstalled; camera, keyboard and notifications checked.
--  Local Fastboot package assembled; 44 targeted tests passed.
--  Package unpublished: hardware component provenance and redistribution pending. Tested on one Pixel 3a; 8 GiB volume with 1 GiB writable, without automatic expansion.
+
+
+### 
+
+-   : Installer with device and file checks before writing.
+-   : Standalone Vulpes installation without going through Droidian.
+-   : Package not published; tested on one Pixel only. Installation replaces phone data.
+-   : Backups checked; full restoration still needs testing.
+-   : Installed boots, saved settings, camera, keyboard and notifications checked.
-## In development — 3 October 2026 — Per-device Sargo installation
+## 03/10/2026 : Per-device installation
--  Sargo: portable device workspace for builds, installation and recovery, independent of the development Pixel inventory.
--  Read-only collection of six boot partitions and storage, bound to the phone identity. Private backups.
--  SSH transfer with identity, storage and checksum checks, without overwriting, formatting or flashing.
--  Two RAM boots: 11 Gaia and 10 native checks passed each; setting retained. Autofocus timed out on the first trial; camera worked on the second.
--  Return to the installed build verified; boot unchanged and data overwrite rejected.
--  Autofocus timeout not considered fixed. Exact HAL provenance still pending; qualified kernel and compatible ext4/LVM storage required, without direct installation from stock Android.
+
+
+### 
+
+-   : Preparation adapted to each Pixel, with device-specific backups.
+-   : Focus sometimes times out; issue still open.
+-   : Direct installation from stock Android not yet available.
+-   : Temporary boots, saved settings and return to the previous installation checked.
-## In development — 3 October 2026 — Sargo preparation and recovery tools
+## 03/10/2026 : Installation and recovery
--  Sargo: local package preparation with checksum checks, bounded extraction, ext4 validation and fresh data creation without overwriting.
--  Private recovery kit with boot_a backup and model, serial, slot and checksum checks. User data not included.
--  Restoration works without the diagnostic image.
--  System builds require a complete ARM64 hardware reference.
--  System archive prepared and recovery kit checked locally. Installation on another Sargo pending; no flash or ROM release.
--  JSON changelog included in future source releases; working documents excluded.
+
+
+### 
+
+-   : Package preparation and recovery kit with a boot backup.
+-   : Restoration possible without booting the diagnostic tool.
+-   : Preparation checked locally; installation on another Pixel still needs completion.
+
+### 
+
+-   : Shared history included in upcoming source releases.
-## In development — 3 October 2026 — Sargo modem recovery and fresh installation
+## 03/10/2026 : Modem and first startup
--  Sargo: corrected font cache and first-boot creation of oFono’s private directory in the system image.
--  Modem recovery without rebooting the phone. Network registration took about 22 seconds in a controlled trial.
--  Fresh profile: checked Gaia, hardware rendering, Fira, both cameras, focus, zoom, keyboard and notifications. Wi-Fi scan worked after modem restart.
--  Two boots retained settings in a separate data image. Existing installation preserved.
--  IMS watchdog root cause unresolved. Public installation and recovery package still incomplete; no image released.
+
+
+### 
+
+-   : Recover the modem without restarting the whole phone.
+-   : Fonts and modem initialization fixed on a fresh installation.
+-   : Intermittent modem restarts still need fixing; public package incomplete.
+-   : Cameras, focus, zoom, keyboard, notifications and Wi-Fi search checked.
-## October 1, 2026 — Sargo distribution preparation — in development
+## 01/10/2026 : Preparing distribution
--  Sargo: rebuilt Preview15 image with empty profiles, licenses and an inventory of 493 packages. Working documents excluded.
--  Mount table generated from the storage inventory. Support limited to a single ext4 extent on userdata.
--  First-boot font cache permissions: run fc-cache as the session user.
--  Filesystem, content and transfer checks passed. RAM trials left boot_a unchanged; return to v59 verified.
--  SIM, LTE, Wi-Fi scan, Gaia, hardware rendering, Fira, cameras, keyboard and notifications checked in RAM.
--  Targeted recovery after tracing intermittent reboots to IMS firmware. Second boot passed; recovery from another IMS crash not tested.
--  Image qualification incomplete; end-to-end calls, SMS and mobile data unvalidated. Image unpublished and non-flashable.
+
+
+### 
+
+-   : Preparation of an image with clean user data.
+-   : Font display on first boot fixed.
+-   : Image not published. Calls, SMS and mobile data still need end-to-end testing.
+-   : Intermittent modem restart identified.
+-   : SIM, 4G, Wi-Fi search, cameras, keyboard and notifications checked in a temporary boot.
-## 2.7-preview.15 — 30 September 2026 — published
+## 30/09/2026 : 2.7-preview.15
--  First publication of desktop, Android and Tundra sources, with French/English READMEs, licenses and setup scripts. Private files excluded.
--  SMS: corrected bubble dates and sent/failed states. Improved camera stream cleanup and replacement.
--  Desktop: stabilized navigation checks, adjusted cold-start timeout and clean shutdown after Gaia times out.
--  Desktop with Gecko 156.0.1: 42 service tests, startup, navigation, settings, gestures, history, isolation and persistence checked.
--  Preview15 APK signed with the previous key and GeckoView 156.0; asset parity verified.
--  Android 16 emulator: validated update, Camera/Gallery, camera resume, ten background returns and renderer recovery.
--  Sargo: sources included, private v59 retained. No generic ROM; boot depends on storage layout and preinstalled images.
--  Sargo: preview around 16 fps; flash, video, rotation and deep suspend incomplete. Call audio and the dialog after SMS sending need investigation.
+
+
+### 
+
+-   : First publication of Desktop, Android and Tundra source code, with French/English project overviews.
+-   : More reliable camera stream shutdown and replacement.
+-   : Dates and sending statuses fixed in conversations.
+
+### 
+
+-   : Navigation, settings, gestures and saved data checked.
+
+### 
+
+-   : Update, Camera, Gallery and returns from the background checked on an Android emulator.
+
+### 
+
+-   : Source code included; universal installation still unavailable at this stage.
+-   : Flash, video, rotation, sleep and call audio still incomplete or awaiting tests.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.15)
-## In development — SMS and camera feedback · 30 September 2026
+## 30/09/2026 : SMS and camera follow-up
--  SMS: convert dates to fix empty conversations.
--  Camera: corrected stream and sensor cleanup; an old session can no longer close its replacement.
--  Sargo: physical vibration shutdown through DRV2624, with a safeguard at service startup and exit.
--  Desktop: SMS composition and display checked with a simulated modem. Sargo: camera switching and shutdown tested over two RAM boots.
--  Sargo v54: user confirmed focus, zoom and two-way SMS. Five conversations displayed; vibration shutdown confirmed.
--  Sargo v59 installed on boot_a after two RAM boots; startup, readback and slot A verified.
--  Post-SMS dialog and camera smoothness still pending. Shared sources updated, without a new APK.
+
+
+### 
+
+-   : Camera release and switching fixed.
+-   : Empty conversations fixed.
+
+### 
+
+-   : Shared sources updated, without a new APK.
+
+### 
+
+-   : Vibration now stops correctly.
+-   : Dialog after sending SMS and camera smoothness still need fixing.
+-   : Focus and zoom confirmed by the user.
+-   : Sending and receiving confirmed by the user; conversations displayed.
-## In development — Messages and Camera · 30 September 2026
+## 30/09/2026 : SMS and photos
--  Desktop/Tundra: retain SMS after modem rejection and pass sending, failed and sent states to Gaia.
--  Sargo: persist SMS states after the oFono object disappears; reject sending when the modem is unregistered.
--  Sargo: touch focus, digital zoom and sensor JPEG capture in Gaia Camera.
--  Measured photos: 4032 × 3024 rear, 3264 × 2448 front. Preview 640 × 480; fixed front focus.
--  Native camera: separate binary data from HAL logs, bound responses and resume preview after capture or focus errors.
--  Desktop: checked visible send failures and Camera/Gallery workflows. Sargo v54: validated two RAM boots, installation, persistence and camera.
--  Unstable network; no end-to-end SMS delivery confirmed in this pass. Modem confirmation is not a delivery receipt. Public APK unchanged (Preview14).
+
+
+### 
+
+-   : Failed messages preserved and sending statuses updated.
+
+### 
+
+-   : Preview 14 APK unchanged at this stage.
+
+### 
+
+-   : Tap to focus and digital zoom. Photos up to 12 MP at the rear and 8 MP at the front.
+-   : Preview return after taking a photo fixed.
+-   : Delivery to the recipient not yet confirmed.
-## 2.7-preview.14 — APK published · 30 September 2026
+## 30/09/2026 : 2.7-preview.14
--  System information: version alignment and Fira fonts in Shadow DOM components.
--  Desktop/Tundra: portrait key sizing, cursor placement in the active field and stale input replies.
--  Desktop/Tundra: Gaia keyboard bridge and numeric keypad for SMS recipients. Android keeps its system keyboard.
--  Lockscreen: resize without a keyboard window. Honour silent notifications, including after restoration.
--  Sargo: persistent tray and lockscreen notifications, opening the owning application.
--  Sargo: cancellable vibrations capped at ten seconds; private persistent Wi-Fi profiles, automatic reconnection and network removal.
--  Sargo: store incoming SMS before acknowledgement, remove duplicates and create the state directory.
--  Sargo: earpiece/speaker, microphone mute and call-volume controls. Routing, mute and volume tested outside a call.
--  Installer: reject flashing diagnostic images with a debugger. Sargo v48 installed after two RAM boots; persistence, readback and slot A verified.
--  Desktop: Calendar and keyboard checked. Sargo: keyboard, notifications and Wi-Fi reconnection checked; notification sound and real telephony await validation.
--  Preview14 APK signed and published. Startup, versions and fonts checked on an Android 16 emulator. No Sargo image released.
+
+
+### 
+
+-   : Fonts, version information, lock screen and notifications aligned.
+
+### 
+
+-   : Larger keyboard, improved text editing and recipient number entry.
+
+### 
+
+-   : Startup and fonts checked on an Android emulator.
+
+### 
+
+-   : Vibration stopping fixed.
+-   : Notifications preserved, conversation opening and duplicate messages fixed.
+-   : Saved networks, reconnection and forgetting a network fixed.
+-   : Audio controls tested outside calls; conversation audio and notification sounds still need testing.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.14)
-## 2.7-preview.13 — application workflows · 27 September 2026
+## 27/09/2026 : 2.7-preview.13
--  Calendar: save events with alarms, report scheduling errors and skip reminders for deleted events.
--  Notifications: accept empty text; do not mark rejected notifications as delivered. Native Tundra support still incomplete.
--  Gallery: thumbnail sizing at hidden startup and cancellation of updates after closing the editor.
--  SMS: apply correspondent, read-state, date and delivery filters.
--  Desktop: checked WebM playback, photo editing and copying, calendar, conversation reading and deletion.
--  Isolated checkout: startup, desktop tests, persistence and Android packaging passed.
--  Preview13 APK built and signed. Camera/Gallery, Calendar, ten background returns and renderer recovery validated on emulated Android 16.
--  Sargo v40 installed after two RAM boots; Gaia, camera, Wi-Fi, brightness, controls and boot_a readback verified.
+
+
+### 
+
+-   : Event reminders fixed, including after deletion.
+-   : Initial display and closing the editor fixed.
+-   : Conversation filters fixed.
+
+### 
+
+-   : Photo, video, calendar and conversations checked.
+
+### 
+
+-   : Camera, Gallery, Calendar and background resume checked.
+
+### 
+
+-   : Camera, Wi-Fi and brightness checked on the installed version.
-## 2.7-preview.12 — application review · 27 September 2026
+## 27/09/2026 : 2.7-preview.12
--  Gaia icons: restored 1× to 2.25× variants across 1,047 CSS references.
--  Camera: enable switching after sensor detection and prevent pinch zoom on the UI. Unavailable flash disabled.
--  Home: restore long press and gesture forwarding without additional privileges for websites.
--  Browser: local bilingual welcome page following Gaia’s language without restarting.
--  SMS: corrected identifiers, migration, dates, sending events, multi-recipient requests and concurrent writes.
--  Calendar: restored the current-day accessibility label in 37 languages.
--  Reviewed 14 apps; 26 Gallery/Music/Clock/UI checks, Contacts/SMS tests and web isolation checks.
--  Preview12 APK rebuilt with shared assets; parity verified. Hardware features handled separately on Android and Tundra.
--  Sargo: shader-based NV21 preview and binary transport, about 23 fps measured versus 8 in the intermediate trial.
--  Sargo: wait for camera worker shutdown before switching sensors; manual brightness reaches its target in about 200 ms.
--  Sargo: Wi-Fi power control from Gaia and WPA-PSK connections to mixed WPA2/WPA3 networks.
--  Sargo: scan, connection and HTTPS validated in RAM. v38 installed after two RAM boots, with readback and slot A checks.
--  Sargo: temporary Wi-Fi profiles; flash, video, sensors, Bluetooth, data counters and advanced call controls incomplete.
+
+
+### 
+
+-   : Local start page, in French or English according to language.
+-   : SMS conversations and Calendar translations fixed.
+-   : Camera switching and interface zoom fixed; flash disabled when unavailable.
+-   : Sharper icons, long press on Home and gestures fixed.
+
+### 
+
+-   : Smoother preview, at around 23 frames per second in testing.
+-   : More responsive brightness and Wi-Fi connection fixed.
+-   : Video, flash, Bluetooth and advanced call settings remain incomplete.
-## In development — Sargo feedback and interface · 27 September 2026
+## 27/09/2026 : Interface and hardware
--  Gaia shutdown animation recoloured blue.
--  Phone: keep headers fixed when changing tabs and use call-log icons up to 2.25× density.
--  Clipped dropdown text and overflowing Video welcome text.
--  Brightness: numeric values and coalesced stale commands, preserving sleep/wake order.
--  Home: wallpaper under the gradient and right-side button in landscape, without covering apps.
--  Browser: editable local welcome page, retaining private mode.
--  Wi-Fi: error message and Retry button instead of endless retries.
--  Preview11 APK built and signed; rotation and Home button placement checked on emulated Android 16.
--  Sargo: preview, JPEG and camera switching validated in RAM. Capture limited to 640 × 480; flash and video unavailable.
--  Sargo v33 installed after two RAM boots; startup, data, readback and slot A verified. Brightness and Wi-Fi results checked in Gaia.
--  Sargo: PulseAudio 14 compatibility and duplicate audio module loading. Call/media profiles and earpiece tested.
--  Sargo: call audio, full-resolution capture, video and automatic rotation await validation.
+
+
+### 
+
+-   : First local start page.
+-   : Original shutdown animation retained, with blue circles.
+-   : List and Video text fixed; transparent Home bar adapted to landscape.
+-   : Call history headers and icons fixed.
+
+### 
+
+-   : Brightness adjustment connected.
+-   : Call audio, video, full-resolution photos and rotation still need testing.
-## In development — native Wi-Fi stability · 27 September 2026
+## 27/09/2026 : Wi-Fi stability
--  Wi-Fi: restore the 20-second scan interval and coalesce concurrent scans.
--  Sargo: one hardware scan at a time, with a short cache cleared on connect/disconnect. Fixes memory exhaustion in v21/v22.
--  Wi-Fi burst, failure and timer tests.
--  Shared Preview9 version, Gaia 2.7.0; new APK with the same sources. Android still manages its own Wi-Fi.
--  Sargo v25: two RAM boots then installation, 11 Gaia and 10 system checks passed, without low-memory process kills.
--  Checked locking, fonts, battery, date and Wi-Fi; tested sleep/wake and volume with injected events. Data, readback and slot A verified.
--  Native camera and full call validation still pending.
+
+
+### 
+
+-   : Preview 9 built with shared fixes; Wi-Fi handled by Android.
+
+### 
+
+-   : Network discovery stabilized to avoid phone freezes.
+-   : Camera and calls remain incomplete.
+-   : Lock screen, fonts, date, battery and Wi-Fi checked.
-## In development — Gaia restoration · 27 September 2026
+## 27/09/2026 : Restoring Gaia components
--  Restored Gaia Settings, Usage, FM and import panels. Temporary interfaces removed; unavailable features disabled.
--  Corrected legacy component styles, lockscreen icons and Phone glyphs.
--  Reserve 44 pixels for Home; restore date and battery without `{{ level }}` placeholders.
--  Gaia lockscreen re-enabled, splash stabilized, Browser name localized and credits added.
--  Desktop: 26 app checks passed, plus panels, imports, battery, navigation and simulated calls.
--  Preview8 APK installed on emulated Android 16: Android battery, settings access and optional HOME mode. Android app catalogue still incomplete.
--  Emulated Android: ten background returns, renderer recovery and asset parity checked. Gaia locking remains separate from Android security.
--  Sargo v21/v22: Wi-Fi scan and association connected to Gaia through NetworkManager.
--  Sargo: RAM trials interrupted by display-service failure (code 139). Return to installed v20 verified, without a new flash.
--  Candidate Wi-Fi, camera, SIM/Bluetooth APIs and CPU suspend unvalidated.
+
+
+### 
+
+-   : Credits, startup screen and browser name updated.
+-   : Original Gaia panels and styles restored in Settings, Data Usage, FM Radio and imports.
+-   : Home button no longer overlaps controls; date, battery and lock screen restored.
+
+### 
+
+-   : Launcher mode, access to Android settings and background resume.
+
+### 
+
+-   : Initial integration unstable; returned to the previous version.
-## In development — 27 September 2026
+## 27/09/2026 : Calls and hardware buttons
--  Gaia Callscreen for incoming/outgoing calls, answer and hangup. Replaces the temporary v13 screen.
--  Persistent call log with acknowledgement and duplicate detection.
--  Distinguish unknown battery state from empty battery; tolerate missing or malformed Contacts indexes.
--  Render system text with Fira Sans while preserving icon fonts.
--  Desktop with simulated modem: calls, failed hangup and retry, history, sleep/wake, Power menu, volume and battery.
--  Sargo: Power/Volume buttons connected to Gaia, with native screen, volume, shutdown and reboot controls.
--  Sargo: serialize brightness and power changes to prevent a black screen on wake; fix PulseAudio access for volume.
--  Sargo: successful hangup with an empty D-Bus reply no longer produces a false error.
--  Sargo v13 then v20 installed after RAM trials; startup, readback, settings and slot validation checked.
--  Real outgoing call reached ringing and was hung up. Incoming calls and conversation audio unvalidated.
--  Camera diagnostics: a timeout no longer counts as successful initialization. Two sensors detected, without received frames.
--  Native camera unavailable, CPU suspend and advanced audio controls incomplete. No new APK.
+
+
+### 
+
+-   : Gaia incoming and outgoing call interfaces, with call history.
+-   : Fira fonts, contacts and battery display fixed.
+
+### 
+
+-   : Support for Power and Volume keys, shutdown menu and waking the screen.
+-   : Native camera still unavailable.
+-   : Ringing and hanging up checked; conversation audio still needs testing.
-## In development — 26 September 2026
+## 26/09/2026 : Startup and fonts
--  Use historical Fira Sans fonts in Gaia and Tundra; correct sans-serif fallback and Fontconfig checks.
--  Removed diagnostic buttons from Settings.
--  Hardware panel: pass platform capabilities correctly to display the battery.
--  Sargo: distinguish modem and transport errors; correct the unavailable-camera message.
--  Sargo: persistent data on a 2 GiB ext4 image and A/B success validation after installation.
--  Sargo v8: two boots with persistence, 9 Gaia and 9 system checks per boot. Installation and recovery tools tested locally.
--  Sargo v9 installed on boot_a: two boots with 10 Gaia and 9 system checks each. Matching readback, five other partitions preserved; actual restoration untested.
--  Normal startup without automatic diagnostic gestures; fullscreen before Gaia, stable 360 × 740 CSS-pixel layout.
--  Separate `--diagnostics` mode; diagnostic images excluded from normal launch.
--  Sargo: v13 tested in RAM (8 startup, 9 system checks), v14 diagnostics (13 interactive checks), including Wi-Fi.
--  UMTS registration, audio playback and microphone signal checked. Call audio, camera and suspend unvalidated.
--  Ramdisk builds independent of the desktop language by running readelf in the C locale.
--  Private trials, without a public ROM. Desktop sources synchronized; shared Android fix available, without a new APK.
+
+
+### 
+
+-   : Fira fonts and battery information fixed; test buttons removed from settings.
+
+### 
+
+-   : Data preserved in the installed boot.
+-   : Stable fullscreen, without automatic gestures or app launches.
+-   : Sound and microphone tested separately; call audio, camera and sleep not validated.
-## In development — 25 September 2026
+## 25/09/2026 : Home screen and first native trials
--  Round Home button, transparent wallpaper gradient and blue bar inside apps.
--  Hide the gradient at the bottom and restore it when scrolling; remove the blue rectangle when pressing Home.
--  Bundled Fira Sans weights and italics; separate product, Gaia, engine and platform versions.
--  Resume icon loading after an initial zero-size measurement on all three platforms.
--  Desktop: icons, navigation, permissions and French/English information panel checked with Gecko 156.0.1.
--  Android: retain navigation state after activity recreation. Java compilation passed; visuals need retesting, no new APK delivered.
--  Tundra: ext4 image with ARM64 runtime, HAL, Phoc, Gecko and Gaia; small fixes bundled in the ramdisk.
--  Sargo: dedicated backend, Pixel 3a information and hardware battery readings. Build sources archived with checksums.
--  Sargo: hardware WebRender, icons and fonts checked on a physical display capture. v5: 10 Gaia and 8 system checks passed.
--  Sargo: add pd-mapper, disable uninitialized IPA and premature camera probing. Copy modem NV data to RAM for trials.
--  Sargo v6: Wi-Fi scan, connection, IPv4, DNS and HTTPS verified; 13 Gaia and 9 system checks passed. Gaia network selection still pending.
--  RAM trials without flashing, automatic return after ten minutes and changes lost at shutdown. Cold boot passed; warm compositor restart failed.
--  No public ROM; modem, audio, camera and suspend still need integration or validation.
+
+
+### 
+
+-   : Round button, transparent background on Home and blue background in apps.
+-   : Pressed button state, gradient, fonts and system information fixed.
+
+### 
+
+-   : App resume changed in source code, not yet tested on Android.
+
+### 
+
+-   : First native image trials with accelerated display and battery support.
+-   : Temporary trials; many hardware features still need connecting.
-## 2.7-preview.7 — APK built, local reference
+## 2.7-preview.7
--  Desktop camera permission and recovery after the first Android permission prompt.
--  Separate messages for denied permission, missing sensors and opening failures.
--  Separate product and engine versions: Vulpes Preview7, Gaia 2.7.0, desktop Gecko 156.0.1 and Android GeckoView 156.0.
+
+
+### 
+
+-   : Vulpes, Gaia and Gecko versions shown separately.
+
+### 
+
+-   : Improved permission handling and clearer error messages.
+
+### 
+
+-   : Resume after the first permission request fixed.
-## 2.7-preview.6 — APK built
+## 2.7-preview.6
--  Gaia Camera on desktop and Android: preview and JPEG capture through webcam or GeckoView.
--  Save photos in Gallery and import through the system picker.
--  Flash and video disabled; camera switching depends on available sensors.
+
+
+### 
+
+-   : Gaia Camera app connected to the webcam.
+-   : File import and photos available in Gallery.
+-   : Camera switching depends on hardware; flash and video unavailable.
+
+### 
+
+-   : Gaia Camera app connected to Android cameras.
+-   : File import and photos available in Gallery.
+-   : Camera switching depends on hardware; flash and video unavailable.
-## 2.7-preview.5 — APK built
+## 2.7-preview.5
--  Versions centralized in `release.json`; product, Gaia and engine separated.
--  Shared desktop/Android native interface and APK asset parity checks.
--  Desktop: Linux settings, media/vCard imports, notifications and test webcam capture.
--  Android: foreground return and recovery after renderer termination.
+
+
+### 
+
+-   : System settings, media and contact imports, notifications and webcam test.
+-   : Interface and version numbering aligned with Android.
+
+### 
+
+-   : Interface and version numbering aligned with Desktop.
+-   : Improved background resume and display recovery.
-## 2.7-156.0.2 — Historical APK built (revision 4)
+## 2.7-156.0.2
--  Android: activity and session recovery to reduce blank screens.
--  Access to Android settings, volume and window brightness.
--  Media and contact imports; native notifications with permissions.
--  Handoff to Android Phone, SMS, Clock and Camera. No silent sending or replacement of default apps.
--  Historical numbering: Android engine Gecko 156.0, despite the 2.7-156.0.2 name.
+
+
+### 
+
+-   : Android settings, sound, brightness, imports and notifications.
+-   : Calls, SMS, clock and camera handled by Android apps.
+-   : White screens and background resume fixed.
+-   : Historical numbering: this number does not represent a Gecko update.
-## 2.7-156.0.1 — APK published (revision 3)
+## 2.7-156.0.1
--  “Vulpes OS - Preview” name and project icon.
--  Wallpaper flickering corrected.
--  Historical numbering, separate from the Android engine version.
+
+
+### 
+
+-   : “Vulpes OS – Preview” name and project icon.
+-   : Wallpaper flickering fixed.
+-   : Historical numbering retained to identify this release.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-156.0.1)
-## 2.7-preview.2 — APK published
+## 2.7-preview.2
--  Wallpaper flickering in the Android Preview.
+
+
+### 
+
+-   : Wallpaper flickering fixed.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.2)
-## 2.7-preview.1 — APK published
+## 2.7-preview.1
--  First Android Preview with Gaia and GeckoView.
--  Archived version; known wallpaper flickering issue.
+
+
+### 
+
+-   : First Android Preview to try Vulpes without flashing the phone.
+-   : Known wallpaper flickering in this first version.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.1)
-## Earlier milestones — technical retrospective
+## Early milestones
--  Historical Gaia base with Vulpes branding, wallpaper, translations and system information.
--  Experimental Gecko 45 to 52 port, followed by separation of Gaia, services and engine.
--  APIs for settings, apps, contacts, messages, alarms, storage and inter-app communication.
--  Adapt Gaia components, touch gestures, browser and apps to recent engines.
--  Gecko updates with checks and rollback; Gaia updates without rebuilding the engine.
--  Archived Firefox OS apps, QEMU, then ARM64 Gecko inside Droidian and under a dedicated compositor.
--  Sargo: inventory, boot backups, separate root, HAL services and Tundra PID 1.
--  Temporary graphical Fastboot trials with SSH recovery and automatic return.
--  Kernel 4.9-124-google-sargo, Android 9/API 28 adaptation. Historical milestones, without newly dated releases.
+### 
+
+-   : Adaptation of contacts, messages, settings, alarms and storage.
+-   : Creation of Vulpes: visual identity, translations and system information.
+-   : Move from old Firefox OS engines to a modern Gecko.
+
+### 
+
+-   : First native boots and hardware trials on Pixel 3a.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ac32180c..f047bd5f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,576 +2,903 @@
[English](CHANGELOG.en.md)
-PC, Android (APK) et Tundra/Sargo. Les statuts indiquent des sources en développement, un APK construit ou une version publiée. Les changements des sources nécessitent une mise à jour du paquet installé.
+Les nouveautés, par date et par plateforme. Dans chaque groupe : Add, Change, Fix, Note, Test. Les entrées décrivent la situation à leur date ; une correction en développement nécessite une nouvelle version installée.
+
+
+
+## 14/10/2026 : 2.7-preview.21
+
+
+
+### 
+
+-   : Messages des fonctions indisponibles plus lisibles en thèmes clair et sombre.
+-   : Dictionnaires supplémentaires disponibles hors ligne ; activation et reprise du clavier Gaia fiabilisées. La vérification sur les appareils concernés reste nécessaire.
+-   : Affichage du nom des contacts rétabli au premier chargement du journal.
+-   : Panneaux Stockage rétablis. Une erreur de chargement ne bloque plus les autres menus.
+
+### 
+
+-   : Lecture des contacts, SMS et journaux Android dans Gaia, après autorisation. Les données locales de Vulpes sont conservées.
+-   : Retour vers Vulpes sans écran blanc persistant ; un catalogue fermé peut être rouvert.
+-   : Le rectangle blanc signalé reste à reproduire sur les appareils concernés.
+-   : Première étape en lecture seule, hors MMS. Envoi et édition des données Android dans les applications Android ; les nouveaux contacts Gaia restent locaux. Accès SMS et journal selon les autorisations de la ROM et de l’installateur. Essais sur Android 9 ; autres versions à confirmer.
+
+### 
+
+-   : Les corrections communes de Gaia sont incluses dans les images complètes et les mises à jour de démarrage.
+-   : Nouvelle image d’installation construite ; démarrage et flash sur Pixel à vérifier avant publication.
-## 2.7-preview.20 — APK construit · 13 octobre 2026
+## 13/10/2026 : 2.7-preview.20
--  Preview 20 réunit les corrections communes depuis l’APK Preview 17 : paramètres Gaia, apparence, sélecteurs, clavier, contacts, Marketplace et médias.
--  Photo : enregistrement WebM avec miniature et lecture dans Galerie/Vidéo. Autorisation micro demandée ; commandes adaptées aux capacités du matériel.
--  Caméra : changement de capteur, arrêt et reprise fiabilisés. PC et Android utilisent leurs API caméra ; Sargo conserve son adaptateur HAL.
--  Sargo : mises à jour Wi-Fi, Bluetooth, appels, SMS/MMS et réglages réseau incluses dans les sources. Les fonctions non raccordées restent indiquées dans les panneaux.
--  Changelog : reprise des textes simplifiés FR/EN, badges conservés, filtres PC/APK/Sargo indépendants des titres. Markdown, site et notes de release issus du même JSON.
--  APK signé avec la clé des Preview précédentes ; alignement et cohérence des 53 fichiers partagés vérifiés. Validation d’exécution Android en cours.
--  Gecko PC/Sargo 156.0.1 ; GeckoView Android 156.0. Gaia 2.7.0. L’APK délègue appels/SMS à Android : il ne remplace pas le système téléphonique Android.
--  Preview expérimentale : Compte Mozilla/Sync, localisation distante, extensions Firefox OS et transfert USB restent incomplets. Sargo : aperçu autour de 16 FPS ; son des vidéos et audio téléphonique à qualifier séparément.
--  Pixel 3a : Preview 20 r62 démarrée en RAM puis flashée sur boot_a. Empreinte relue identique ; démarrage installé, onze contrôles Gaia et dix contrôles natifs réussis. Données conservées, Wi-Fi connecté et enregistrement LTE observé. Pas de nouvelle conversation audio testée.
+
+
+### 
+
+-   : Mode vidéo, avec miniature et lecture dans Galerie et Vidéo.
+-   : Améliorations des paramètres, de l’apparence, des sélecteurs, du clavier, des contacts et des médias.
+-   : Changement de capteur, arrêt et reprise fiabilisés.
+-   : Compte Mozilla, Sync, localisation distante, extensions et transfert USB restent incomplets.
+
+### 
+
+-   : APK Preview 20 disponible.
+-   : Appels et SMS utilisent Android. Cette Preview n’a pas encore été validée en utilisation sur Android.
+
+### 
+
+-   : Aperçu autour de 16 images par seconde.
+-   : Mise à jour du Wi-Fi, du Bluetooth, des appels, des SMS/MMS et des réglages réseau.
+-   : Son des vidéos et conversation téléphonique à vérifier séparément.
+-   : Preview 20 installée sur le Pixel 3a, données conservées. Wi-Fi connecté et réseau 4G détecté.
+
+### 
+
+-   : Historique FR/EN simplifié, badges et filtres par plateforme. Même contenu pour le site et les releases.
+
+[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.20)
-## En développement — 12 octobre 2026 — Vidéo et réglages de l’heure
+## 12/10/2026 : Vidéo et heure
--  Photo : enregistrement WebM VP8/Opus avec autorisation micro, miniature et stockage. Tampon limité à 32 Mio, arrêt avant libération du capteur.
--  Photo, Galerie et Vidéo : prise en charge des fichiers WebM et de leurs miniatures.
--  Paramètres : véritables sélecteurs Date/Heure Gaia, retour du clavier intégré et lettres non tronquées dans les listes.
--  Améliorer Vulpes : lien vers les tickets du projet. Services non raccordés expliqués dans leurs panneaux.
--  PC : vidéo simulée 1920 × 1080 relue ; photo, galerie, reprise caméra et navigation vérifiées.
--  Sargo r61 en RAM : vidéo 480 × 640 relue, huit bascules avant/arrière réussies. Médias de test supprimés ; son enregistré non écouté.
--  Sargo : aperçu mesuré autour de 16 FPS contre 12 dans le test précédent. 30 FPS restent à atteindre.
--  Sargo : heure automatique par NITZ, réglage persistant et protection des écritures manuelles. Synchronisation dépendante du réseau ; pas de NTP de secours, fuseau choisi manuellement.
--  Android : ressources préparées et Java compilé, sans nouvel APK ni test vidéo Android à cette étape. Compte Mozilla/Sync, localisation distante, extensions Firefox OS et transfert USB restent à implémenter. Aucun flash ni publication.
+
+
+### 
+
+-   : Enregistrement vidéo avec son, miniature et lecture dans Galerie et Vidéo.
+-   : « Améliorer Vulpes » mène aux tickets du projet.
+-   : Sélecteurs de date et d’heure rétablis ; retour du menu Clavier et texte des listes corrigés.
+
+### 
+
+-   : Enregistrement vérifié avec une caméra simulée.
+
+### 
+
+-   : Changements préparés pour un prochain APK ; vidéo non encore testée sur Android.
+
+### 
+
+-   : Aperçu amélioré, autour de 16 images par seconde.
+-   : Heure automatique selon les informations du réseau ; fuseau horaire encore manuel.
+-   : Vidéo et changement de capteur vérifiés. Son des vidéos encore à écouter.
-## En développement — 12 octobre 2026 — Appels et partage Wi-Fi
+## 12/10/2026 : Appels et partage Wi-Fi
--  Dialogues Gaia : fermeture après ouverture, transitions interrompues et nouvelle saisie après validation refusée.
--  Sargo : délai des services opérateur augmenté ; réglages lents séparés des commandes voix/SMS.
--  Sargo : double appel, présentation du numéro et quatre règles de renvoi raccordés à oFono, avec validation et relecture.
--  Sargo : point d’accès Wi-Fi WPA2 ou ouvert, configuration NetworkManager et pare-feu adapté. Mot de passe privé, accessible uniquement à Paramètres.
--  r59 en RAM : 69 panneaux, dialogues et APN vérifiés sur PC/Pixel. Point d’accès enregistré, activé puis arrêté depuis Gaia ; Wi-Fi précédent restauré. 44 tests Python et régressions des dialogues réussis.
--  Transit Internet vers un autre appareil non testé. Messagerie vocale, blocage d’appels, PIN/PUK, certificats Wi-Fi et partage USB restent ouverts. Ressources Android synchronisées ; aucun nouvel APK, flash ou publication.
+
+
+### 
+
+-   : Fermeture des dialogues et nouvelle tentative après une erreur corrigées.
+
+### 
+
+-   : Réglages du double appel, de l’affichage du numéro et du renvoi d’appel.
+-   : Partage de connexion avec ou sans mot de passe.
+-   : Les réglages lents ne bloquent plus les appels et les SMS.
+-   : Activation du point d’accès vérifiée ; accès Internet d’un autre appareil encore à tester.
-## En développement — 12 octobre 2026 — Paramètres réseau
+## 12/10/2026 : Paramètres réseau
--  Wi-Fi : adresse IPv4 et débit réels ; ne plus afficher « undefined » lorsqu’une mesure manque.
--  Sargo : choix GSM/UMTS/LTE et modification des APN Internet/MMS existants, avec validation et relecture.
--  APN : refuser les changements d’un profil actif, protéger IMS et les mots de passe, tenter la restauration après échec et signaler son résultat.
--  Sargo : file bornée pour les réglages lents. Lecture des appels en 20 ms pendant une attente de réglages de 5 secondes.
--  38 tests Python, 69 panneaux PC et parcours APN/réseau sur Pixel en RAM vérifiés. Ressources Android synchronisées.
--  Ajout, suppression et réinitialisation des APN indisponibles. Sélection manuelle d’opérateur et certificats encore ouverts. Aucun nouvel APK, flash ou publication.
+
+
+### 
+
+-   : Adresse IP et vitesse de connexion affichées correctement.
+
+### 
+
+-   : Choix du type de réseau et modification des points d’accès mobiles.
+-   : Réglages réseau plus fiables lorsque le modem répond lentement.
+-   : Ajout, suppression et réinitialisation des points d’accès encore incomplets.
-## En développement — 12 octobre 2026 — Audit des paramètres
+## 12/10/2026 : Revue des paramètres
--  Paramètres : navigation récupérable après échec d’un contrôleur ou d’un dialogue ; génération cohérente des modules.
--  Filtres d’accessibilité et assistance Vulpes. Panneaux d’origine conservés avec explication des fonctions indisponibles.
--  PC : statistiques du profil et téléchargements Gecko. Android : statistiques du stockage privé.
--  Sargo : données mobiles, itinérance, horloge et Wi-Fi masqué raccordés. Erreurs des anciennes interfaces réseau du panneau Son corrigées.
--  97 vues inventoriées ; 69 panneaux PC/Pixel ouverts et sept dialogues natifs vérifiés. Stockage, données et fuseau relus après écriture sur r51 en RAM.
--  Les vues contextuelles et services indisponibles ne sont pas tous qualifiés. Java Android compilé, sans nouvel APK. Aucun flash, ticket fermé ni publication.
+
+
+### 
+
+-   : Navigation, accessibilité et aide corrigées. Les panneaux incomplets restent visibles.
+-   : Menus parcourus ; certaines actions dépendent encore du matériel ou de l’opérateur.
+
+### 
+
+-   : Informations de stockage et téléchargements raccordés.
+
+### 
+
+-   : Affichage de l’espace utilisé par Vulpes.
+
+### 
+
+-   : Données mobiles, itinérance, heure, réseaux Wi-Fi masqués et panneau Son corrigés.
-## En développement — 12 octobre 2026 — Navigation des paramètres
+## 12/10/2026 : Navigation des paramètres
--  Listes déroulantes : sélecteur Gaia avec confirmation/annulation ; choix Clair/Sombre accessible. Gestionnaire SIM adapté à un emplacement.
--  Panneaux indisponibles : explication et commandes désactivées au lieu de liens sans effet.
--  Sargo : réseaux Wi-Fi mémorisés séparés des scans lents ; cache conservé lors des lectures d’état.
--  Sargo : informations SIM, centre SMS et accusés de réception reliés au modem.
--  r45 en RAM : huit contrôles d’apparence, cinq panneaux et changement réel des accusés SMS validés, puis réglage restauré. Sélecteur PC vérifié ; ressources APK préparées.
--  Certificats Enterprise et autres options opérateur encore indisponibles. Aucun SMS émis, nouvel APK, flash ou publication.
+
+
+### 
+
+-   : Choix Clair/Sombre et validation ou annulation des sélecteurs rétablis.
+-   : Gestionnaire adapté aux téléphones à une seule SIM.
+
+### 
+
+-   : Informations SIM, centre de messagerie et accusés de réception.
+-   : Chargement plus rapide des réseaux enregistrés.
+-   : Certificats Wi-Fi, sécurité SIM et stockage USB encore incomplets.
-## En développement — 12 octobre 2026 — Correctifs communs sur Pixel 3a
+## 12/10/2026 : Apparence sur Pixel 3a
--  Sargo : boot r39 en RAM avec correctifs partagés et premier mode sombre. Noyau et configuration matérielle du r35 conservés.
--  Démarrage, taille d’écran, réglages persistants, batterie, interface d’appel et Fira vérifiés. Services modem, audio, Wi-Fi et Bluetooth actifs.
--  Sept contrôles d’apparence réussis dans Gaia : thème propagé, en-têtes lisibles, libellés placés et retour au clair. Capture Pixel inspectée.
--  Outil de mise à jour Gaia dans un boot privé, avec empreintes, sources conservées et vérification des composants matériels inchangés.
--  Aucun nouvel appel, SMS ou appairage testé. Thème complet et comportement Android encore à qualifier. Aucun nouvel APK, flash ou publication.
+
+
+### 
+
+-   : Modes clair et sombre communs disponibles sur le Pixel 3a.
+-   : Correctifs des paramètres et polices Firefox OS intégrés.
+-   : Pas de nouvel essai des appels, SMS ou Bluetooth à cette étape.
+-   : Thèmes et affichage vérifiés sur le téléphone.
-## En développement — 11 octobre 2026 — Apparence et clavier partagé
+## 11/10/2026 : Apparence et clavier
--  Apparence : Clair, Sombre ou Selon le système, partagé entre les applications et conservé au redémarrage. Fonds d’écran, photos et sites externes préservés.
--  Clavier : opérations d’édition mutualisées, sélection et effacement, protection contre les réponses tardives.
--  PC : neuf contrôles d’apparence et gestes de saisie dans Messages réussis, sans envoi de SMS. Revue visuelle de Paramètres, Messages, Téléphone et Contacts.
--  Android : option expérimentale de clavier Gaia ; clavier Android conservé par défaut et mode de saisie restauré à la fermeture.
--  Android : réessayer brièvement le même capteur encore occupé, sans réessayer après refus de permission ou fermeture de Photo.
--  Preview 19 construit localement : signature, alignement, parité et tests du pont/caméra réussis.
--  Clavier Gaia, caméra avant Android et thème complet encore à qualifier. Sources prêtes pour Sargo, resté sur r35 à cette étape. Aucun upload, flash ni ticket fermé.
+
+
+### 
+
+-   : Modes Clair, Sombre et Système, conservés au redémarrage.
+-   : Sélection et suppression de texte corrigées.
+
+### 
+
+-   : Thèmes et saisie de SMS vérifiés.
+
+### 
+
+-   : Clavier Gaia expérimental ; le clavier Android reste proposé par défaut.
+-   : Nouvelle tentative possible quand la caméra est occupée.
+-   : Preview 19 construite ; thèmes, clavier et caméra avant encore à vérifier sur Android.
-## En développement — 11 octobre 2026 — Paramètres et accueil
+## 11/10/2026 : Paramètres et accueil
--  Paramètres : gestion des sonneries, saisie/effacement du code PIN, désactivation du verrouillage et liste des permissions des applications tierces.
--  Accueil : première initialisation du second lanceur et aperçus des fonds d’écran.
--  Langues : actualiser les libellés Vulpes au changement de langue ; anglais de secours hors français. Fermer le panneau d’échec caméra et les bandeaux d’installation.
--  Android : ouvrir le volet Gaia en touchant la barre de statut. Preview 18 construit, signé et comparé aux sources.
--  PC : neuf parcours Gaia, cinq contrôles de bandeaux et douze tests activités/caméra réussis. Bluetooth Sargo r35 confirmé par l’utilisateur.
--  Redémarrage à chaud du compositeur encore instable : fichiers restaurés et retour à r35. Corrections non qualifiées sur Sargo à cette étape ; clavier/thème Android ouverts. Aucun APK publié ni flash.
+
+
+### 
+
+-   : Second écran d’accueil, aperçus de fonds d’écran et bandeau d’installation corrigés.
+-   : Fermeture du message d’erreur rétablie.
+-   : Sonneries, code de verrouillage, permissions et libellés FR/EN corrigés.
+
+### 
+
+-   : Ouverture du volet en touchant la barre de statut.
+-   : Preview 18 construite localement.
+
+### 
+
+-   : Retour à la version précédente après un redémarrage instable de l’interface.
+-   : Fonctionnement confirmé par l’utilisateur.
-## En développement — 9 octobre 2026 — MMS et Bluetooth
+## 09/10/2026 : MMS et Bluetooth
--  Bluetooth : adaptateur Gaia partagé, commandes matérielles séparées et accès limité aux applications autorisées.
--  Sargo : activation, découverte, appairage explicite, connexion et suppression depuis le panneau Bluetooth Gaia. Modules audio Bluetooth intégrés.
--  Sargo : services réseau Qualcomm et transport MMS raccordés. Une déconnexion D-Bus ne termine plus le daemon MMS. État persistant, reprise sans doublon ni renvoi automatique incertain.
--  r35 en RAM : MMS avec image visible et accepté par le MMSC Orange ; réception destinataire à confirmer. Cinq appareils Bluetooth détectés, A2DP vers PC validé.
--  191 tests Python Tundra et 18 tests JavaScript réussis. Ramdisk allégé et ressources Android synchronisées.
--  Audio d’appel via casque non qualifié. Aucun nouvel APK, flash ni push à cette étape.
+
+
+### 
+
+-   : Panneaux Gaia reliés aux capacités de chaque plateforme.
+
+### 
+
+-   : Recherche, association, connexion, oubli d’appareils et sortie audio.
+-   : Envoi conservé et repris après une interruption.
+-   : MMS accepté par l’opérateur, réception non confirmée. Audio d’appel sur casque à tester.
+-   : Lecture audio Bluetooth vers un PC vérifiée.
-## En développement — 8 octobre 2026 — Caméra et transport MMS
+## 08/10/2026 : Caméra et MMS
--  Caméra : arrêter le flux avant de détacher la vidéo ; attendre la fermeture du capteur, réinitialiser le viseur et recalculer sa taille après rotation.
--  MMS : préserver les pièces jointes Blob et garder les messages en attente jusqu’à confirmation du transport.
--  Sargo : viseur WebGL réutilisé sans recapture vidéo intermédiaire ; écran maintenu éveillé pendant l’aperçu.
--  PC et Sargo : parcours Photo/Galerie et huit bascules natives vérifiés. JPEG, focus et zoom fonctionnels ; arrière ~16 FPS, avant ~25–27 FPS dans cet essai.
--  Sargo : file MMS persistante, codec Nuntium et transport oFono. Interface texte/photo testée avec transport simulé.
--  Données mobiles bloquantes pour les MMS opérateur à cette étape. Ressources Android synchronisées ; aucun nouvel APK, flash ou push.
+
+
+### 
+
+-   : Changement de capteur, arrêt et affichage après rotation corrigés.
+
+### 
+
+-   : Pièces jointes conservées et envoi affiché en attente jusqu’à confirmation.
+
+### 
+
+-   : Aperçu mesuré autour de 16 images/s à l’arrière et 25 à 27 à l’avant.
+-   : Envoi réel encore bloqué par la connexion aux données mobiles.
+-   : Mise au point, zoom et prise de photo vérifiés.
-## 8 octobre 2026 — Rappel et messages d’erreur
+## 08/10/2026 : Journal d’appel et dialogues
--  Dialogues Gaia : texte visible au lieu d’un écran gris avec un bouton seul.
--  Journal d’appel : rappel via le même service que le pavé numérique, sans anciennes API Gecko. Fichier partagé PC/Android/Sargo.
--  MMS : signaler clairement l’envoi indisponible, garder texte et pièces jointes, ne plus annoncer un faux mode avion.
--  PC : dialogues FR/EN et composeur préservé. Sargo en RAM : 11 contrôles Gaia réussis, rappel testé avec modem simulé.
--  Aucun appel réel ni validation audio dans cette étape. Ressources Android synchronisées, aucun nouvel APK publié.
+### 
+
+-   : Messages d’erreur lisibles, avec des boutons utilisables.
+
+### 
+
+-   : Message clair si l’envoi est indisponible, sans perdre le brouillon.
+-   : Rappel depuis le journal d’appel rétabli.
+
+### 
+
+-   : Parcours vérifié avec des appels simulés ; audio réel non testé.
-## En développement — 8 octobre 2026 — SMS et audio
+## 08/10/2026 : SMS et audio
--  SMS : envoyer en un appui en conservant le clavier. Trombone raccordé au menu Gaia : image, audio, vidéo ou contact.
--  Interface : indicateur de volume visible, gestes du verrouillage et balayage des notifications corrigés.
--  PC : clavier, pièces jointes, Galerie, interface d’appel et volume vérifiés ; notification balayée sans déplacer la page. Aucun nouvel APK publié.
--  Sargo : accès à PulseAudio, relais Qualcomm, protocole D-Bus et périphériques de calibration rétablis. Service audio Android concurrent retiré.
--  Sargo : 11 contrôles Gaia, calibration et prévisualisations arrière/avant/arrière réussis.
--  Appels échouant avant sonnerie avec une erreur réseau dans cet essai. Audio bidirectionnel, geste Pixel et MMS encore non validés. Aucun flash ni publication.
+
+
+### 
+
+-   : Affichage du volume, verrouillage et balayage des notifications corrigés.
+-   : Envoi en un appui, sans fermer d’abord le clavier. Menu des pièces jointes rétabli.
+
+### 
+
+-   : Corrections du routage du son des appels.
+-   : Le réseau a empêché de vérifier une conversation réelle ; son dans les deux sens non confirmé.
-## En développement — 8 octobre 2026 — Fiabilité téléphonie
+## 08/10/2026 : Fiabilité du réseau
--  Sargo : service radio maintenu après fermeture d’un client. Jamais de nouvel appel ou SMS automatique après une réponse perdue. Erreurs sans numéro ni texte du message.
--  Diagnostic réseau/audio sans identifiants personnels et paramètres opérateur épinglés dans l’image native.
--  SMS : attendre le vrai gestionnaire Gaia et accepter les identifiants oFono avec majuscules. Contrôle des conversations rétabli sans réémission.
--  Sargo : LTE retrouvé après redémarrage, SMS confirmé envoyé par le modem, microphone non silencieux et lecture audio acceptée.
--  Réception destinataire, audio d’appel bidirectionnel et stabilité modem restent à qualifier. Compositeur instable au redémarrage à chaud. Aucun nouvel APK, flash ou push.
+
+
+### 
+
+-   : Messages associés à la bonne conversation.
+
+### 
+
+-   : Récupération du modem améliorée ; les nouvelles tentatives évitent de doubler appels et SMS.
+-   : Stabilité du réseau et audio dans les deux sens encore à confirmer.
+-   : Retour sur le réseau 4G après redémarrage du modem vérifié.
-## 8 octobre 2026 — Mise à jour des sources publiques
+## 08/10/2026 : Sources publiques
--  Publication des correctifs Caméra, Contacts, SMS et Marketplace, et des outils Sargo de construction et de restauration.
--  README français et anglais actualisés avec les fonctions et limites vérifiées.
--  Création du dossier de rapports lors du contrôle de parité Android sur un dépôt neuf.
--  Configuration Wi-Fi native vérifiée : aucun profil de connexion embarqué.
--  Documents internes, données personnelles et clés exclus du dépôt.
--  APK public inchangé (Preview17) ; correctifs du 8 octobre non inclus. Aucune nouvelle image native publiée.
--  Sargo : modem encore en recherche réseau ; audio des appels, appairage et profils Bluetooth à valider.
+### 
+
+-   : Publication des corrections caméra, contacts, SMS et Marketplace, avec présentations FR/EN à jour.
+
+### 
+
+-   : Construction depuis une copie neuve du dépôt corrigée.
+-   : L’APK public reste en Preview 17 ; ces corrections sont dans les sources.
+
+### 
+
+-   : Recherche de réseau encore instable à cette étape ; pas de nouvelle image publiée.
-## 8 octobre 2026 — Caméra et parcours Contacts · en développement
+## 08/10/2026 : Caméra et contacts
--  Caméra : ouvertures successives, libération du capteur et identification avant/arrière corrigées.
--  Contacts : transport des photos et des dates corrigé sur PC, Android et Tundra.
--  Contacts : actualisation après modification, ouverture de SMS, sélection d’un numéro et préremplissage du pavé numérique rétablis.
--  Galerie : ouverture en mode sélection pour la photo d’un contact, même si l’application est déjà ouverte.
--  Sargo : fichiers Contacts corrigés inclus dans l’image de démarrage.
--  Android : transmission du destinataire et du texte à l’application SMS, y compris les réponses et les numéros non encore validés.
--  Tests de caméra, stockage des contacts, permissions, transport binaire et activités.
--  PC : capture JPEG, Galerie, photo de contact, création, édition, recherche, favoris et suppression vérifiés. Aucun appel ni SMS émis.
--  Sargo en RAM : autofocus, zoom, quatre bascules de caméra, capture et Galerie vérifiés ; parcours Contacts testés au toucher.
--  Sargo : conversations stockées, clavier et notifications vérifiés ; quatre réseaux Wi-Fi détectés. Nouveaux SMS et audio d’appel à valider.
--  Sargo : BlueZ et ses dépendances avec empreintes SHA256. Activation et recherche Bluetooth testées ; appairage et profils à valider.
--  Sargo : magasin de certificats natif. HTTPS, archives altérées, collisions de fichiers et reconstructions testés.
--  Preview17 publié avec téléchargement et SHA256 vérifiés. Les correctifs ci-dessus restent dans les sources ; essai SMS Android réel nécessaire. Aucun flash Sargo.
+
+
+### 
+
+-   : Ouverture et changement de capteur fiabilisés.
+-   : Photos, dates, modifications et choix d’un numéro depuis SMS ou Téléphone corrigés.
+-   : Sélection des médias corrigée.
+-   : Correctifs dans les sources ; APK public inchangé à cette étape.
+
+### 
+
+-   : Numéro et texte transmis correctement à l’application Android.
+
+### 
+
+-   : Recherche disponible ; association et usages audio encore à vérifier.
+-   : Photo, mise au point, zoom et changements de capteur vérifiés.
-## 6 octobre 2026 — Thème Marketplace intégré · en développement
+## 06/10/2026 : Thème Marketplace
--  Marketplace : thème intégré avec Fira locale, navigation compacte, boutons tactiles, filtres repliables et captures défilantes.
--  Conservation de `mode=app` dans la navigation, la recherche, les filtres et le changement de langue.
--  En-têtes du site masqués en mode intégré. Confirmations gérées par Gaia, sans privilèges supplémentaires pour le catalogue.
--  16 pages FR/EN, 2 pages classiques et affichages mobiles à 320 et 360 pixels vérifiés.
--  Thème prêt localement, non déployé. Lanceurs PC et Sargo mis à jour ; intégration Android au prochain APK.
+
+
+### 
+
+-   : Intégration prévue dans un prochain APK.
+
+### 
+
+-   : Thème intégré : police Fira, navigation compacte, boutons tactiles et captures défilantes.
+-   : Affichage intégré conservé pendant la recherche, les filtres et les changements de langue.
+-   : Thème préparé localement, pas encore déployé sur le site.
+-   : Pages françaises et anglaises vérifiées sur petits écrans.
-## 6 octobre 2026 — Bandeaux Gaia · en développement
+## 06/10/2026 : Bandeaux de notification
--  Fermeture automatique du bandeau « Application installée », même sans événement de fin d’animation.
--  Annulation des anciens délais lorsqu’un nouveau bandeau remplace le précédent.
--  PC : affichage, expiration, remplacement et fermeture au clic vérifiés. Sargo : disparition après cinq secondes vérifiée en RAM.
--  Correctif disponible dans les sources communes pour le prochain APK. Aucun flash ni publication.
+
+
+### 
+
+-   : Le bandeau « Application installée » disparaît automatiquement et se remplace correctement.
+
+### 
+
+-   : Affichage et fermeture des bandeaux vérifiés.
+
+### 
+
+-   : Correctif préparé pour le prochain APK.
+
+### 
+
+-   : Disparition du bandeau après cinq secondes vérifiée.
-## 6 octobre 2026 — Wi-Fi et panneaux Paramètres · en développement
+## 06/10/2026 : Wi-Fi et paramètres
--  Paramètres : ouverture des panneaux même sans événement de fin d’animation, sans double initialisation.
--  Sargo : événements Wi-Fi corrigés pour rétablir l’affichage des réseaux et signaler correctement la déconnexion.
--  Sargo : quatre points d’accès détectés, regroupés en deux réseaux. Connexion confirmée et requête HTTPS réussie avec certificats vérifiés.
--  Sources communes, serveur PC et essai Sargo en RAM mis à jour. Correctifs non inclus dans l’APK public.
+
+
+### 
+
+-   : Ouverture des panneaux rétablie quand une animation ne se termine pas normalement.
+
+### 
+
+-   : Correctifs encore absents de l’APK public.
+
+### 
+
+-   : Réseaux détectés et déconnexions affichés correctement.
+-   : Recherche, connexion et accès Internet vérifiés.
-## 6 octobre 2026 — Marketplace · en développement
+## 06/10/2026 : Navigation Marketplace
--  PC/Sargo : catalogue Marketplace contenu sous la barre de statut, masqué à l’accueil et retiré à la fermeture.
--  Une navigation annulée ou une ancienne page d’erreur ne masque plus la nouvelle tentative.
--  Message d’erreur local avec bouton Réessayer lorsque le catalogue est inaccessible.
--  PC : navigation, erreur réseau, nouvelle tentative, accueil et fermeture vérifiés.
--  Sargo en RAM : sept contrôles réussis avec une page locale et déverrouillage forcé. Catalogue distant non validé sans connexion Internet.
--  APK Preview17 local reconstruit ; signature, alignement et ressources vérifiés. Aucun nouveau test sur appareil Android ni publication.
+
+
+### 
+
+-   : Message local avec bouton Réessayer si le catalogue est inaccessible.
+-   : Le catalogue reste sous la barre de statut et se masque en revenant à l’accueil ou en le fermant.
+-   : Une ancienne erreur ne masque plus une nouvelle tentative.
+
+### 
+
+-   : Navigation, erreurs, retour à l’accueil et fermeture vérifiés.
+
+### 
+
+-   : Preview 17 reconstruite localement, sans nouveau test Android.
+
+### 
+
+-   : Interface testée avec une page locale ; catalogue distant non vérifié sans Internet.
-## 2.7-preview.17 — APK construit · 5 octobre 2026
+## 05/10/2026 : 2.7-preview.17
--  Marketplace sur l’accueil, avec son icône originale et le catalogue Vulpes en français ou en anglais.
--  Installation confirmée des applications ZIP, lancement depuis l’accueil et désinstallation.
--  Applications installées isolées des sources Gaia et des privilèges système.
--  PC : parcours complet avec 2048 et contrôles des archives, chemins, limites, annulations et confirmations à usage unique.
--  APK Preview17 construit et signé avec Marketplace, GeckoView et stockage privé des paquets.
--  Émulateur Android 16/API 36 : installation, lancement, isolation, conservation après redémarrage de l’application et désinstallation de 2048.
--  Sargo en RAM le 6 octobre : accueil et ressources Marketplace vérifiés, 9 contrôles système sur 10 réussis. Variation du viewport au déverrouillage ; installation de paquets à valider.
--  Prise en charge initiale des applications web empaquetées. Anciennes API privilégiées et applications hébergées non restaurées. Aucune publication à cette étape.
+
+
+### 
+
+-   : Installation, lancement et désinstallation d’applications web empaquetées.
+-   : Catalogue Vulpes sur l’accueil, en français et en anglais, avec son icône originale.
+-   : Applications installées séparées des applications système.
+-   : Certaines anciennes applications et API Firefox OS ne sont pas encore prises en charge.
+
+### 
+
+-   : Installation et utilisation de 2048 vérifiées.
+
+### 
+
+-   : 2048 installé, conservé après redémarrage et désinstallé sur un émulateur Android.
+
+### 
+
+-   : Accueil vérifié ; installation d’applications encore à valider sur le Pixel.
-## 2.7-preview.16 — APK construit · 5 octobre 2026
+## 05/10/2026 : 2.7-preview.16
--  Sélecteurs Gaia de fond d’écran et de sons rétablis, avec retour vers Paramètres et annulation par Accueil.
--  Changement de langue appliqué à l’accueil et conservé après redémarrage.
--  Arrêt du balayage horizontal sur chaque page ; applications de développement masquées sur l’accueil.
--  Logo Vulpes au démarrage et liste des sons adaptée au moteur actuel. Transport des médias partagé entre PC et Android.
--  Android : verrouillage Gaia après veille et retour depuis la caméra du verrouillage. Mode lanceur HOME validé.
--  Android : barres système masquées en mode immersif, accessibles par balayage. APK Preview16 construit et signé.
--  PC et émulateur Android 16/API 36 : fonds d’écran, sons et panneaux vérifiés ; langue, verrouillage et persistance du fond testés sur Android.
--  Sargo : image de démarrage mise à jour pour ne plus restaurer d’anciens fichiers.
--  Sargo en RAM : 6 contrôles d’interface et 10 contrôles système réussis. Installation conservée en Preview15, sans flash.
--  APK non publié. Installation FFAA et audio d’appel à valider ; le choix d’un son Gaia ne change pas la sonnerie Android.
+
+
+### 
+
+-   : Logo Vulpes au démarrage.
+-   : Défilement horizontal involontaire supprimé ; applications de test masquées.
+-   : Choix des fonds d’écran et des sons rétabli. Langue appliquée à l’accueil et conservée au redémarrage.
+-   : APK construit, non publié ; image Pixel essayée sans installation permanente.
+
+### 
+
+-   : Barres Android masquées, accessibles par balayage ; mode lanceur vérifié.
+-   : Retour après veille et depuis la caméra du verrouillage corrigé.
+
+### 
+
+-   : Les anciens fichiers ne remplacent plus les mises à jour au démarrage.
-## En développement — 4 octobre 2026 — Installation autonome Sargo
+## 04/10/2026 : Installation autonome
--  Sargo : volume ext4 autonome pour userdata, avec système, données et composants vendor/modem. Installation indépendante de Droidian et d’ADB.
--  Installateur Fastboot avec contrôles du modèle, du déverrouillage, des tailles et des empreintes. Remplacement de userdata, dtbo_a, vbmeta_a et boot_a ; calibrations conservées.
--  Sauvegarde complète de userdata et archive de restauration vérifiées avant le flash. Restauration réelle non testée.
--  Deux démarrages installés réussis : 11 contrôles Gaia et 10 contrôles natifs par démarrage, réglages conservés et boot relu conforme.
--  Variante sans SSH ni clés de maintenance démarrée après flash. Variante de développement réinstallée ; caméra, clavier et notifications vérifiés.
--  Paquet Fastboot local assemblé ; 44 tests ciblés réussis.
--  Paquet non publié : provenance et redistribution de composants matériels à finaliser. Essais sur un seul Pixel 3a ; volume de 8 Gio dont 1 Gio modifiable, sans extension automatique.
+
+
+### 
+
+-   : Installateur avec vérification du modèle et des fichiers avant écriture.
+-   : Installation autonome de Vulpes, sans passer par Droidian.
+-   : Paquet non publié ; un seul Pixel testé. L’installation remplace les données du téléphone.
+-   : Sauvegardes vérifiées ; restauration complète encore à essayer.
+-   : Démarrages installés, conservation des réglages, caméra, clavier et notifications vérifiés.
-## En développement — 3 octobre 2026 — Installation Sargo par appareil
+## 03/10/2026 : Installation par appareil
--  Sargo : dossier appareil portable pour les builds, l’installation et le secours, indépendant de l’inventaire du Pixel de développement.
--  Collecte en lecture seule des six partitions de démarrage et du stockage, liée à l’identité du téléphone. Sauvegardes privées.
--  Transfert SSH avec contrôle d’identité, du stockage et des empreintes, sans écrasement, formatage ni flash.
--  Deux boots RAM : 11 contrôles Gaia et 10 contrôles natifs réussis chacun ; réglage conservé. Timeout autofocus au premier essai, caméra fonctionnelle au second.
--  Retour au build installé vérifié ; boot inchangé et écrasement des données refusé.
--  Timeout autofocus non déclaré corrigé. Provenance exacte du HAL encore à établir ; noyau et stockage ext4/LVM compatibles requis, sans installation directe depuis Android d’origine.
+
+
+### 
+
+-   : Préparation adaptée à chaque Pixel, avec sauvegardes propres à l’appareil.
+-   : Mise au point parfois trop lente ; problème encore ouvert.
+-   : Installation directe depuis Android d’origine pas encore disponible.
+-   : Démarrages temporaires, conservation des réglages et retour à l’installation précédente vérifiés.
-## En développement — 3 octobre 2026 — Préparation et secours Sargo
+## 03/10/2026 : Installation et secours
--  Sargo : préparation locale des paquets avec contrôles d’empreintes, décompression bornée, vérification ext4 et création de données vierges sans écrasement.
--  Kit de secours privé avec sauvegarde de boot_a et contrôles du modèle, du numéro de série, du slot et des empreintes. Données utilisateur non incluses.
--  Restauration possible sans l’image de diagnostic.
--  Construction système : référence matérielle ARM64 complète exigée.
--  Archive système préparée et kit de secours vérifié localement. Installation sur un autre Sargo à finaliser ; aucun flash ni ROM publiée.
--  Journal JSON inclus dans les prochaines publications de sources ; documents de travail exclus.
+
+
+### 
+
+-   : Préparation des paquets et kit de secours avec sauvegarde du démarrage.
+-   : Restauration possible sans démarrer l’outil de diagnostic.
+-   : Préparation vérifiée localement ; installation sur un autre Pixel encore à finaliser.
+
+### 
+
+-   : Historique commun inclus dans les prochaines publications de sources.
-## En développement — 3 octobre 2026 — Sargo : récupération modem et installation vierge
+## 03/10/2026 : Modem et premier démarrage
--  Sargo : cache des polices et création du dossier privé oFono au premier démarrage corrigés dans l’image système.
--  Récupération du modem sans redémarrer le téléphone. Réenregistrement réseau mesuré à environ 22 secondes lors d’un essai contrôlé.
--  Profil neuf : Gaia, rendu matériel, Fira, deux caméras, focus, zoom, clavier et notifications vérifiés. Scan Wi-Fi fonctionnel après redémarrage du modem.
--  Deux démarrages avec conservation des réglages dans un espace de données séparé. Installation existante préservée.
--  Cause du watchdog IMS non corrigée. Paquet public d’installation et de restauration encore incomplet ; aucune image publiée.
+
+
+### 
+
+-   : Récupération du modem sans redémarrer tout le téléphone.
+-   : Polices et initialisation du modem corrigées sur une installation neuve.
+-   : Redémarrages intermittents du modem encore à résoudre ; paquet public incomplet.
+-   : Caméras, focus, zoom, clavier, notifications et recherche Wi-Fi vérifiés.
-## 1er octobre 2026 — Sargo : préparation de la distribution — en développement
+## 01/10/2026 : Préparation de la distribution
--  Sargo : image Preview15 reconstruite avec profils vierges, licences et inventaire des 493 paquets. Documents de travail exclus.
--  Table de montage générée depuis l’inventaire du stockage. Prise en charge limitée à une seule étendue ext4 sur userdata.
--  Droits du cache des polices au premier démarrage : fc-cache exécuté avec le compte de session.
--  Contrôles ext4, contenu et transfert réussis. Essais RAM sans écriture de boot_a ; retour au build v59 vérifié.
--  SIM, LTE, scan Wi-Fi, Gaia, rendu matériel, Fira, caméras, clavier et notifications vérifiés en RAM.
--  Récupération ciblée après identification d’un redémarrage intermittent du firmware IMS. Second démarrage réussi ; nouveau crash IMS non testé.
--  Qualification de l’image incomplète, sans validation des appels, SMS ou données mobiles de bout en bout. Image non publiée et non flashable.
+
+
+### 
+
+-   : Préparation d’une image avec des données vierges.
+-   : Affichage des polices au premier démarrage corrigé.
+-   : Image non publiée. Appels, SMS et données mobiles encore à vérifier de bout en bout.
+-   : Redémarrage intermittent du modem identifié.
+-   : SIM, 4G, recherche Wi-Fi, caméras, clavier et notifications vérifiés en démarrage temporaire.
-## 2.7-preview.15 — 30 septembre 2026 — publiée
+## 30/09/2026 : 2.7-preview.15
--  Première publication des sources PC, Android et Tundra, avec README FR/EN, licences et scripts de préparation. Fichiers privés exclus.
--  SMS : dates des bulles et états d’envoi/échec corrigés. Libération et remplacement des flux caméra fiabilisés.
--  PC : tests de navigation stabilisés, délai de démarrage à froid ajusté et fermeture propre après dépassement du délai Gaia.
--  PC avec Gecko 156.0.1 : 42 tests de services, démarrage, navigation, réglages, gestes, historique, isolation et persistance vérifiés.
--  APK Preview15 signé avec la clé précédente et GeckoView 156.0 ; parité des ressources vérifiée.
--  Émulateur Android 16 : mise à jour, Photo/Galerie, reprise caméra, dix retours d’arrière-plan et récupération du rendu validés.
--  Sargo : sources incluses, build privé v59 conservé. Aucune ROM générique ; démarrage lié au stockage et aux images préinstallées.
--  Sargo : aperçu proche de 16 i/s ; flash, vidéo, rotation et veille profonde incomplets. Audio d’appel et dialogue après envoi SMS à examiner.
+
+
+### 
+
+-   : Première publication des sources PC, Android et Tundra, avec présentation FR/EN.
+-   : Arrêt et remplacement du flux caméra fiabilisés.
+-   : Dates et états d’envoi corrigés dans les conversations.
+
+### 
+
+-   : Navigation, réglages, gestes et conservation des données vérifiés.
+
+### 
+
+-   : Mise à jour, Photo, Galerie et retours d’arrière-plan vérifiés sur un émulateur Android.
+
+### 
+
+-   : Sources incluses ; installation universelle encore indisponible à cette étape.
+-   : Flash, vidéo, rotation, veille et audio d’appel encore incomplets ou à vérifier.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/v2.7-preview.15)
-## En développement — retours SMS et caméra · 30 septembre 2026
+## 30/09/2026 : Retours SMS et caméra
--  SMS : conversion des dates pour corriger les conversations vides.
--  Caméra : fermeture des flux et libération du capteur corrigées ; une ancienne session ne peut plus fermer la suivante.
--  Sargo : arrêt physique du vibreur via DRV2624, avec coupure de secours au démarrage et à l’arrêt du service.
--  PC : composition et affichage des SMS vérifiés avec modem simulé. Sargo : bascules caméra et arrêt du capteur testés sur deux boots RAM.
--  Sargo v54 : focus, zoom et SMS dans les deux sens confirmés par l’utilisateur. Cinq conversations affichées ; arrêt du vibreur confirmé.
--  Sargo v59 installé sur boot_a après deux boots RAM ; démarrage, relecture et slot A vérifiés.
--  Dialogue après envoi SMS et fluidité caméra encore à traiter. Sources communes mises à jour, sans nouvel APK.
+
+
+### 
+
+-   : Libération du capteur et changement de caméra corrigés.
+-   : Conversations vides corrigées.
+
+### 
+
+-   : Sources communes mises à jour, sans nouvel APK.
+
+### 
+
+-   : Arrêt du vibreur rétabli.
+-   : Dialogue après envoi SMS et fluidité caméra encore à corriger.
+-   : Focus et zoom confirmés par l’utilisateur.
+-   : Envoi et réception confirmés par l’utilisateur ; conversations affichées.
-## En développement — SMS et Photo · 30 septembre 2026
+## 30/09/2026 : SMS et photo
--  PC/Tundra : conservation des SMS après refus du modem et transmission des états envoi, échec et envoyé à Gaia.
--  Sargo : états SMS persistants après disparition de l’objet oFono ; envoi refusé si le modem n’est pas enregistré.
--  Sargo : focus tactile, zoom numérique et capture JPEG du capteur dans Photo Gaia.
--  Photos mesurées : 4032 × 3024 à l’arrière, 3264 × 2448 à l’avant. Aperçu 640 × 480 ; focus avant fixe.
--  Caméra native : données binaires séparées des traces HAL, réponses bornées et reprise de l’aperçu après capture ou erreur de focus.
--  PC : échec d’envoi visible et parcours Photo/Galerie vérifiés. Sargo v54 : deux boots RAM puis installation, persistance et caméra validées.
--  Réseau instable ; aucune livraison SMS de bout en bout confirmée dans cette passe. Confirmation modem distincte de l’accusé de réception. APK public inchangé (Preview14).
+
+
+### 
+
+-   : Messages en échec conservés et états d’envoi mis à jour.
+
+### 
+
+-   : APK Preview 14 inchangé à cette étape.
+
+### 
+
+-   : Mise au point au toucher et zoom numérique. Photos jusqu’à 12 Mpx à l’arrière et 8 Mpx à l’avant.
+-   : Retour de l’aperçu après une photo corrigé.
+-   : Réception par le destinataire non encore confirmée.
-## 2.7-preview.14 — APK publié · 30 septembre 2026
+## 30/09/2026 : 2.7-preview.14
--  Informations système : alignement des versions et polices Fira dans les composants Shadow DOM.
--  PC/Tundra : taille des touches en portrait, curseur dans le champ actif et réponses de saisie obsolètes.
--  PC/Tundra : pont clavier Gaia et pavé numérique pour les destinataires SMS. Clavier Android inchangé.
--  Verrouillage : redimensionnement sans fenêtre clavier. Notifications silencieuses respectées, y compris après restauration.
--  Sargo : notifications persistantes dans le volet et sur le verrouillage, avec ouverture de l’application concernée.
--  Sargo : vibrations annulables, limitées à dix secondes ; profils Wi-Fi privés persistants, reconnexion automatique et oubli du réseau.
--  Sargo : stockage des SMS entrants avant acquittement, dédoublonnage et création du dossier d’état.
--  Sargo : commandes écouteur/haut-parleur, micro muet et volume d’appel. Bascule, sourdine et volume testés hors appel.
--  Installation : flash des images de diagnostic avec débogueur refusé. Sargo v48 installé après deux boots RAM ; persistance, relecture et slot A vérifiés.
--  PC : Calendrier et clavier vérifiés. Sargo : clavier, notifications et reconnexion Wi-Fi vérifiés ; son des notifications et téléphonie réelle à valider.
--  APK Preview14 signé et publié. Démarrage, versions et polices vérifiés sur émulateur Android 16. Aucune image Sargo publiée.
+
+
+### 
+
+-   : Polices, informations de version, verrouillage et notifications harmonisés.
+
+### 
+
+-   : Clavier agrandi, édition de texte et saisie du numéro de destinataire améliorées.
+
+### 
+
+-   : Démarrage et polices vérifiés sur un émulateur Android.
+
+### 
+
+-   : Arrêt de la vibration corrigé.
+-   : Notifications conservées, ouverture de la conversation et doublons corrigés.
+-   : Réseaux enregistrés, reconnexion et oubli d’un réseau corrigés.
+-   : Contrôles audio testés hors appel ; conversation et son des notifications encore à vérifier.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.14)
-## 2.7-preview.13 — parcours dans les applications · 27 septembre 2026
+## 27/09/2026 : 2.7-preview.13
--  Calendrier : sauvegarde des événements avec alarme, remontée des erreurs et exclusion des rappels d’événements supprimés.
--  Notifications : texte vide accepté ; notification refusée non marquée comme livrée. Support natif Tundra encore incomplet.
--  Galerie : taille des vignettes au démarrage masqué et arrêt des mises à jour après fermeture de l’éditeur.
--  SMS : filtres par correspondant, lecture, période et livraison appliqués.
--  PC : vidéo WebM, édition et copie de photo, calendrier, lecture et suppression des conversations vérifiés.
--  Copie isolée : démarrage, tests PC, persistance et empaquetage Android réussis.
--  APK Preview13 construit et signé. Photo/Galerie, Calendrier, dix reprises d’arrière-plan et récupération du rendu validés sur Android 16 émulé.
--  Sargo v40 installé après deux boots RAM ; Gaia, caméra, Wi-Fi, luminosité, commandes et relecture de boot_a vérifiés.
+
+
+### 
+
+-   : Rappels des événements corrigés, y compris après suppression.
+-   : Premier affichage et fermeture de l’éditeur corrigés.
+-   : Filtres des conversations corrigés.
+
+### 
+
+-   : Photo, vidéo, calendrier et conversations vérifiés.
+
+### 
+
+-   : Caméra, Galerie, Calendrier et reprise après arrière-plan vérifiés.
+
+### 
+
+-   : Caméra, Wi-Fi et luminosité vérifiés sur la version installée.
-## 2.7-preview.12 — revue des applications · 27 septembre 2026
+## 27/09/2026 : 2.7-preview.12
--  Icônes Gaia : variantes de 1× à 2,25× restaurées dans 1 047 références CSS.
--  Photo : changement de capteur après détection et désactivation du zoom de l’interface au pincement. Flash indisponible grisé.
--  Accueil : appui long et transmission des gestes rétablis, sans privilèges supplémentaires pour les sites web.
--  Navigateur : page d’accueil locale bilingue, suivant la langue Gaia sans redémarrage.
--  SMS : identifiants, migration, dates, événements d’envoi, requêtes multi-destinataires et écritures concurrentes corrigés.
--  Calendrier : libellé d’accessibilité du jour courant rétabli dans 37 langues.
--  Revue de 14 applications ; 26 contrôles Galerie/Musique/Horloge/UI, tests Contacts/SMS et isolation web.
--  APK Preview12 reconstruit avec les mêmes ressources ; parité vérifiée. Fonctions matérielles adaptées séparément sur Android et Tundra.
--  Sargo : aperçu caméra NV21 par shader et transport binaire, environ 23 i/s mesurées contre 8 dans l’essai intermédiaire.
--  Sargo : fermeture du worker caméra attendue avant changement de capteur ; luminosité manuelle réglée en environ 200 ms.
--  Sargo : activation Wi-Fi depuis Gaia et connexion WPA-PSK aux réseaux mixtes WPA2/WPA3.
--  Sargo : scan, connexion et HTTPS validés en RAM. v38 installé après deux boots RAM, relecture et slot A vérifiés.
--  Sargo : profils Wi-Fi temporaires ; flash, vidéo, capteurs, Bluetooth, comptage de données et appels avancés incomplets.
+
+
+### 
+
+-   : Page d’accueil locale, en français ou en anglais selon la langue.
+-   : Conversations SMS et traductions du Calendrier corrigées.
+-   : Changement de capteur et zoom de l’interface corrigés ; flash grisé s’il est indisponible.
+-   : Icônes plus nettes, appui long sur Accueil et gestes corrigés.
+
+### 
+
+-   : Aperçu plus fluide, autour de 23 images par seconde lors des essais.
+-   : Luminosité plus réactive et connexion Wi-Fi corrigée.
+-   : Vidéo, flash, Bluetooth et réglages d’appel avancés encore incomplets.
-## En développement — retours Sargo et interface · 27 septembre 2026
+## 27/09/2026 : Interface et matériel
--  Animation d’arrêt Gaia recolorée en bleu.
--  Téléphone : en-têtes fixes au changement d’onglet et icônes du journal adaptées aux densités jusqu’à 2,25×.
--  Texte coupé dans les menus déroulants et débordement du texte d’accueil Vidéo.
--  Luminosité : valeurs numériques et regroupement des commandes obsolètes, avec ordre veille/réveil préservé.
--  Accueil : fond sous le dégradé et bouton à droite en paysage, sans recouvrir les applications.
--  Navigateur : page d’accueil locale modifiable, avec mode privé conservé.
--  Wi-Fi : message d’erreur et bouton Réessayer à la place des relances sans fin.
--  APK Preview11 construit et signé ; rotation et position du bouton Accueil vérifiées sur Android 16 émulé.
--  Sargo : aperçu, JPEG et bascules caméra validés en RAM. Capture limitée à 640 × 480 ; flash et vidéo indisponibles.
--  Sargo v33 installé après deux boots RAM ; démarrage, données, relecture et slot A vérifiés. Luminosité et résultats Wi-Fi contrôlés dans Gaia.
--  Sargo : compatibilité PulseAudio 14 et suppression du double chargement des modules audio. Profils appel/média et écouteur testés.
--  Sargo : conversation audio, capture pleine résolution, vidéo et rotation automatique à valider.
+
+
+### 
+
+-   : Première page d’accueil locale.
+-   : Animation d’extinction conservée, avec des ronds bleus.
+-   : Textes des listes et de Vidéo corrigés ; barre Accueil transparente et adaptée au paysage.
+-   : En-têtes et icônes du journal d’appel corrigés.
+
+### 
+
+-   : Réglage de la luminosité raccordé.
+-   : Appels audio, vidéo, pleine résolution photo et rotation encore à vérifier.
-## En développement — stabilité Wi-Fi native · 27 septembre 2026
+## 27/09/2026 : Stabilité Wi-Fi
--  Wi-Fi : intervalle de recherche rétabli à 20 secondes et regroupement des scans simultanés.
--  Sargo : un seul scan matériel à la fois, avec cache court et invalidation à la connexion/déconnexion. Corrige l’épuisement mémoire des builds v21/v22.
--  Tests de rafales, erreurs et temporisation Wi-Fi.
--  Version commune Preview9, Gaia 2.7.0 ; nouvel APK avec les mêmes sources. Wi-Fi Android toujours géré par Android.
--  Sargo v25 : deux boots RAM puis installation, 11 contrôles Gaia et 10 système réussis, sans arrêt de processus par manque de mémoire.
--  Verrouillage, polices, batterie, date et Wi-Fi vérifiés ; veille/réveil et volume testés par événements injectés. Données, relecture et slot A contrôlés.
--  Caméra native et validation complète des appels encore à terminer.
+
+
+### 
+
+-   : Preview 9 construite avec les corrections communes ; Wi-Fi géré par Android.
+
+### 
+
+-   : Recherche des réseaux stabilisée pour éviter les blocages du téléphone.
+-   : Caméra et appels encore incomplets.
+-   : Verrouillage, polices, date, batterie et Wi-Fi vérifiés.
-## En développement — restauration Gaia · 27 septembre 2026
+## 27/09/2026 : Retour aux composants Gaia
--  Panneaux Gaia restaurés : Paramètres, Suivi conso, FM et imports. Interfaces provisoires retirées ; fonctions indisponibles désactivées.
--  Styles des anciens composants, icônes du verrouillage et glyphes Téléphone corrigés.
--  Espace de 44 pixels réservé au bouton Accueil ; date et batterie rétablies, sans texte `{{ level }}`.
--  Verrouillage Gaia réactivé, splash stabilisé, nom Navigateur/Browser localisé et crédits ajoutés.
--  PC : 26 contrôles applicatifs réussis, plus panneaux, imports, batterie, navigation et appels simulés.
--  APK Preview8 installé sur Android 16 émulé : batterie Android, accès aux paramètres et mode HOME optionnel. Catalogue Android encore incomplet.
--  Android émulé : dix reprises d’arrière-plan, récupération du rendu et parité des ressources vérifiées. Verrouillage Gaia distinct de la sécurité Android.
--  Sargo v21/v22 : scan et association Wi-Fi raccordés à Gaia via NetworkManager.
--  Sargo : essais RAM interrompus par l’arrêt du service graphique (code 139). Retour au v20 installé vérifié, sans nouveau flash.
--  Wi-Fi du candidat, caméra, API SIM/Bluetooth et suspension CPU non validés.
+
+
+### 
+
+-   : Remerciements, écran de démarrage et nom du navigateur mis à jour.
+-   : Panneaux et styles Gaia d’origine rétablis dans Paramètres, Suivi conso, Radio FM et les imports.
+-   : Bouton Accueil dégagé des commandes ; date, batterie et écran de verrouillage rétablis.
+
+### 
+
+-   : Mode lanceur, accès aux paramètres Android et reprise après arrière-plan.
+
+### 
+
+-   : Première intégration instable ; retour à la version précédente.
-## En développement — 27 septembre 2026
+## 27/09/2026 : Appels et boutons physiques
--  Callscreen Gaia pour les appels entrants/sortants, avec réponse et raccrochage. Remplace l’écran provisoire v13.
--  Journal d’appels persistant avec acquittement et dédoublonnage.
--  Batterie inconnue distincte d’une batterie vide ; index Contacts absent ou mal formé toléré.
--  Textes système affichés avec Fira Sans, sans modifier les polices d’icônes.
--  PC avec modem simulé : appels, raccrochage en échec puis nouvel essai, journal, veille/réveil, menu Power, volume et batterie.
--  Sargo : boutons Power/Volume raccordés à Gaia et commandes natives d’écran, volume, arrêt et redémarrage.
--  Sargo : luminosité et alimentation sérialisées pour éviter l’écran noir au réveil ; accès PulseAudio corrigé pour le volume.
--  Sargo : un raccrochage réussi avec réponse D-Bus vide ne produit plus de fausse erreur.
--  Sargo v13 puis v20 installés après essais RAM ; démarrage, relecture, réglages et validation du slot contrôlés.
--  Appel sortant réel arrivé à la sonnerie puis raccroché. Appels entrants et audio de conversation non validés.
--  Diagnostic caméra : un timeout n’est plus présenté comme une initialisation réussie. Deux capteurs détectés, sans trames reçues.
--  Caméra native indisponible, suspension CPU et commandes audio avancées incomplètes. Aucun nouvel APK.
+
+
+### 
+
+-   : Interfaces Gaia d’appel entrant et sortant, avec journal d’appel.
+-   : Polices Fira, contacts et affichage de la batterie corrigés.
+
+### 
+
+-   : Prise en charge des touches Marche/Arrêt et Volume, du menu d’extinction et du réveil de l’écran.
+-   : Caméra native encore indisponible.
+-   : Sonnerie et raccrochage vérifiés ; conversation audio encore à tester.
-## En développement — 26 septembre 2026
+## 26/09/2026 : Démarrage et polices
--  Polices Fira Sans historiques utilisées dans Gaia et Tundra ; repli sans-serif et contrôle Fontconfig corrigés.
--  Boutons de diagnostic retirés des Paramètres.
--  Panneau matériel : capacités de la plateforme transmises correctement pour afficher la batterie.
--  Sargo : erreurs modem et transport distinguées ; message caméra indisponible corrigé.
--  Sargo : données persistantes sur ext4 2 Gio et validation du succès A/B après installation.
--  Sargo v8 : deux boots avec persistance, 9 contrôles Gaia et 9 système par boot. Outils d’installation et de secours testés localement.
--  Sargo v9 installé sur boot_a : deux démarrages avec 10 contrôles Gaia et 9 système chacun. Relecture conforme, cinq autres partitions préservées ; restauration réelle non testée.
--  Démarrage normal sans gestes de diagnostic automatiques ; plein écran établi avant Gaia, dimensions stables à 360 × 740 pixels CSS.
--  Mode `--diagnostics` séparé ; images de diagnostic exclues du lancement normal.
--  Sargo : v13 testé en RAM (8 contrôles de démarrage, 9 système), v14 en diagnostic (13 contrôles interactifs), Wi-Fi inclus.
--  Enregistrement UMTS, lecture audio et signal du micro vérifiés. Audio d’appel, caméra et veille non validés.
--  Construction du ramdisk indépendante de la langue du PC grâce à readelf en locale C.
--  Essais privés, sans ROM publique. Sources PC synchronisées ; correctif commun disponible pour Android, sans nouvel APK.
+
+
+### 
+
+-   : Polices Fira et informations de batterie corrigées ; boutons de test retirés des paramètres.
+
+### 
+
+-   : Conservation des données lors du démarrage installé.
+-   : Plein écran stable, sans gestes ni ouverture automatique d’applications.
+-   : Son et micro testés séparément ; audio d’appel, caméra et veille non validés.
-## En développement — 25 septembre 2026
+## 25/09/2026 : Accueil et premiers essais natifs
--  Bouton Accueil rond, dégradé transparent sur le fond d’écran et barre bleue dans les applications.
--  Dégradé masqué en bas de page et rétabli au défilement ; plus de rectangle bleu à l’appui sur Accueil.
--  Fira Sans embarquée avec graisses et italiques ; versions produit, Gaia, moteur et plateforme affichées séparément.
--  Reprise du chargement des icônes après une première mesure de taille nulle sur les trois plateformes.
--  PC : icônes, navigation, permissions et panneau Informations FR/EN vérifiés avec Gecko 156.0.1.
--  Android : état de navigation conservé après recréation de l’activité. Compilation Java réussie ; rendu à retester, aucun nouvel APK livré.
--  Tundra : image ext4 avec runtime ARM64, HAL, Phoc, Gecko et Gaia ; petits correctifs embarqués dans le ramdisk.
--  Sargo : backend dédié, informations Pixel 3a et lecture matérielle de la batterie. Sources de construction archivées avec empreintes.
--  Sargo : WebRender matériel, icônes et polices contrôlés sur capture physique. v5 : 10 contrôles Gaia et 8 système réussis.
--  Sargo : ajout de pd-mapper, désactivation d’IPA non initialisé et du sondage caméra prématuré. Données NV du modem copiées en RAM pour les essais.
--  Sargo v6 : scan Wi-Fi, connexion, IPv4, DNS et HTTPS vérifiés ; 13 contrôles Gaia et 9 système réussis. Sélection du réseau dans Gaia encore à raccorder.
--  Essais RAM sans flash, retour automatique après dix minutes et modifications perdues à l’arrêt. Démarrage à froid réussi ; redémarrage à chaud du compositeur en échec.
--  Pas de ROM publique ; modem, audio, caméra et veille encore à intégrer ou valider.
+
+
+### 
+
+-   : Bouton rond, fond transparent sur l’accueil et bleu dans les applications.
+-   : État appuyé du bouton, dégradé, polices et informations système corrigés.
+
+### 
+
+-   : Reprise de l’application modifiée dans les sources, pas encore testée sur Android.
+
+### 
+
+-   : Premiers essais d’une image native avec affichage accéléré et batterie.
+-   : Essais temporaires ; de nombreuses fonctions matérielles restent à raccorder.
-## 2.7-preview.7 — APK construit, référence locale
+## 2.7-preview.7
--  Permission caméra sur PC et reprise après la première autorisation Android.
--  Messages distincts pour une permission refusée, un capteur absent et un échec d’ouverture.
--  Versions produit et moteur séparées : Vulpes Preview7, Gaia 2.7.0, Gecko PC 156.0.1 et GeckoView Android 156.0.
+
+
+### 
+
+-   : Versions de Vulpes, Gaia et Gecko distinguées.
+
+### 
+
+-   : Gestion des autorisations et messages d’erreur plus précis.
+
+### 
+
+-   : Reprise après la première demande d’autorisation corrigée.
-## 2.7-preview.6 — APK construit
+## 2.7-preview.6
--  Photo Gaia sur PC et Android : aperçu et capture JPEG via webcam ou GeckoView.
--  Enregistrement dans Galerie et import par le sélecteur du système.
--  Flash et vidéo désactivés ; changement de caméra selon les capteurs disponibles.
+
+
+### 
+
+-   : Application Photo Gaia reliée à la webcam.
+-   : Import de fichiers et photos disponibles dans Galerie.
+-   : Changement de capteur selon le matériel ; flash et vidéo indisponibles.
+
+### 
+
+-   : Application Photo Gaia reliée aux caméras Android.
+-   : Import de fichiers et photos disponibles dans Galerie.
+-   : Changement de capteur selon le matériel ; flash et vidéo indisponibles.
-## 2.7-preview.5 — APK construit
+## 2.7-preview.5
--  Versions centralisées dans `release.json` ; produit, Gaia et moteur séparés.
--  Interface native commune PC/Android et contrôle de parité des ressources de l’APK.
--  PC : réglages Linux, imports médias/vCard, notifications et capture webcam de test.
--  Android : retour au premier plan et récupération après arrêt du processus de rendu.
+
+
+### 
+
+-   : Réglages système, imports de médias et de contacts, notifications et essai webcam.
+-   : Interface et numérotation des versions alignées avec Android.
+
+### 
+
+-   : Interface et numérotation des versions alignées avec le PC.
+-   : Reprise après arrière-plan et récupération de l’affichage améliorées.
-## 2.7-156.0.2 — APK historique construit (révision 4)
+## 2.7-156.0.2
--  Android : reprise de l’activité et des sessions pour réduire les écrans blancs.
--  Accès aux réglages Android, volume et luminosité de la fenêtre.
--  Import de médias et contacts ; notifications natives avec permissions.
--  Transfert vers Téléphone, SMS, Horloge et Appareil photo Android. Aucun envoi silencieux ni remplacement des applications par défaut.
--  Numérotation historique : moteur Android Gecko 156.0, malgré le nom 2.7-156.0.2.
+
+
+### 
+
+-   : Réglages Android, son, luminosité, imports et notifications.
+-   : Appels, SMS, horloge et caméra confiés aux applications Android.
+-   : Écrans blancs et reprise après arrière-plan corrigés.
+-   : Ancienne numérotation : ce numéro ne correspond pas à une mise à jour de Gecko.
-## 2.7-156.0.1 — APK publié (révision 3)
+## 2.7-156.0.1
--  Nom « Vulpes OS - Preview » et icône du projet.
--  Clignotement du fond d’écran corrigé.
--  Numérotation historique, distincte de la version du moteur Android.
+
+
+### 
+
+-   : Nom « Vulpes OS – Preview » et icône du projet.
+-   : Clignotement du fond d’écran corrigé.
+-   : Ancienne numérotation, conservée pour retrouver cette publication.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-156.0.1)
-## 2.7-preview.2 — APK publié
+## 2.7-preview.2
--  Clignotement du fond d’écran dans la Preview Android.
+
+
+### 
+
+-   : Clignotement du fond d’écran corrigé.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.2)
-## 2.7-preview.1 — APK publié
+## 2.7-preview.1
--  Première Preview Android avec Gaia et GeckoView.
--  Version archivée ; clignotement du fond d’écran connu.
+
+
+### 
+
+-   : Première Preview Android pour découvrir Vulpes sans flasher le téléphone.
+-   : Fond d’écran clignotant connu dans cette première version.
[Release](https://nnsprod.com/git/oversu/VulpesOS/releases/tag/android-2.7-preview.1)
-## Étapes antérieures — rétrospective technique
+## Premières étapes
--  Base Gaia historique avec identité Vulpes, fond d’écran, traductions et informations système.
--  Portage expérimental Gecko 45 vers 52, puis séparation de Gaia, des services et du moteur.
--  API de réglages, applications, contacts, messages, alarmes, stockage et communications entre applications.
--  Adaptation des composants Gaia, gestes tactiles, navigateur et applications aux moteurs récents.
--  Mise à jour Gecko avec contrôles et retour arrière ; mise à jour Gaia sans recompilation du moteur.
--  Applications Firefox OS archivées, QEMU, puis Gecko ARM64 dans Droidian et sous compositeur dédié.
--  Sargo : inventaire, sauvegardes de boot, racine distincte, services HAL et PID 1 Tundra.
--  Essais graphiques Fastboot temporaires avec secours SSH et retour automatique.
--  Noyau 4.9-124-google-sargo, adaptation Android 9/API 28. Étapes historiques, sans nouvelles releases datées.
+### 
+
+-   : Adaptation des contacts, messages, paramètres, alarmes et du stockage.
+-   : Création de Vulpes : identité visuelle, traductions et informations système.
+-   : Passage des anciens moteurs Firefox OS à un Gecko moderne.
+
+### 
+
+-   : Premiers démarrages natifs et essais matériels sur le Pixel 3a.
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index fae6411a..4eb33b18 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -1,5 +1,9 @@
+
+
+
+
diff --git a/android/app/src/main/java/org/vulpes_os/preview/AndroidPersonalData.java b/android/app/src/main/java/org/vulpes_os/preview/AndroidPersonalData.java
new file mode 100644
index 00000000..ad17c798
--- /dev/null
+++ b/android/app/src/main/java/org/vulpes_os/preview/AndroidPersonalData.java
@@ -0,0 +1,172 @@
+package org.vulpes_os.preview;
+
+import android.Manifest;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
+import java.util.HashMap;
+import java.util.Map;
+import android.net.Uri;
+import android.provider.CallLog;
+import android.provider.ContactsContract;
+import android.provider.Telephony;
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+/** Read-through access. Android remains the owner of contacts and telephony records. */
+final class AndroidPersonalData {
+ private final Context context;
+ private final Handler main = new Handler(Looper.getMainLooper());
+ private final Map observers = new HashMap<>();
+ private final Map pending = new HashMap<>();
+ void changed(String kind) {
+ Runnable previous = pending.remove(kind);
+ if (previous != null) main.removeCallbacks(previous);
+ Runnable next = () -> {
+ pending.remove(kind);
+ VulpesApplication app = (VulpesApplication) context;
+ if (app.port == null) return;
+ try { app.port.postMessage(new JSONObject().put("type", "android-data-changed").put("kind", kind)); }
+ catch (Exception ignored) { /* The resume event refreshes detached sessions. */ }
+ };
+ pending.put(kind, next);
+ main.postDelayed(next, 250);
+ }
+ void observe() {
+ for (String kind : new String[]{"contacts", "sms", "calls"}) {
+ if (granted(kind) && !observers.containsKey(kind)) {
+ ContentObserver observer = new ContentObserver(main) {
+ @Override public void onChange(boolean selfChange) { changed(kind); }
+ };
+ Uri uri = kind.equals("contacts") ? ContactsContract.Contacts.CONTENT_URI :
+ kind.equals("sms") ? Telephony.Sms.CONTENT_URI : CallLog.Calls.CONTENT_URI;
+ try {
+ context.getContentResolver().registerContentObserver(uri, true, observer);
+ observers.put(kind, observer);
+ } catch (SecurityException ignored) { /* Permission can be revoked during registration. */ }
+ } else if (!granted(kind) && observers.containsKey(kind)) {
+ context.getContentResolver().unregisterContentObserver(observers.remove(kind));
+ }
+ }
+ }
+
+ AndroidPersonalData(Context context) { this.context = context; }
+
+ static String permission(String kind) {
+ switch (kind) {
+ case "contacts": return Manifest.permission.READ_CONTACTS;
+ case "sms": return Manifest.permission.READ_SMS;
+ case "calls": return Manifest.permission.READ_CALL_LOG;
+ default: throw new IllegalArgumentException("INVALID_DATA_KIND");
+ }
+ }
+
+ boolean granted(String kind) {
+ return context.getSharedPreferences("personal-data", 0).getBoolean(kind, false) &&
+ context.checkSelfPermission(permission(kind)) == PackageManager.PERMISSION_GRANTED;
+ }
+
+ void enable(String kind, boolean value) {
+ permission(kind);
+ context.getSharedPreferences("personal-data", 0).edit().putBoolean(kind, value).apply();
+ observe();
+ changed(kind);
+ }
+
+ JSONObject status() throws Exception {
+ JSONObject result = new JSONObject();
+ for (String kind : new String[]{"contacts", "sms", "calls"}) result.put(kind, granted(kind));
+ return result;
+ }
+
+ JSONObject page(JSONObject params) throws Exception {
+ String kind = params.getString("kind");
+ if (!granted(kind)) throw new SecurityException("ANDROID_DATA_PERMISSION_DENIED");
+ long after = params.optLong("after", 0);
+ if (after < 0) throw new IllegalArgumentException("INVALID_CURSOR");
+ Uri uri;
+ String[] columns;
+ switch (kind) {
+ case "contacts":
+ uri = ContactsContract.Contacts.CONTENT_URI;
+ columns = new String[]{"_id", "display_name", "starred", "contact_last_updated_timestamp"};
+ break;
+ case "sms":
+ uri = Telephony.Sms.CONTENT_URI;
+ columns = new String[]{"_id", "thread_id", "address", "body", "date", "type", "read", "status"};
+ break;
+ default:
+ uri = CallLog.Calls.CONTENT_URI;
+ columns = new String[]{"_id", "number", "date", "duration", "type"};
+ }
+ JSONArray rows = new JSONArray();
+ long last = after;
+ boolean more = false;
+ ContentResolver resolver = context.getContentResolver();
+ // A key cursor avoids SQL LIMIT syntax differences between Android providers.
+ try (Cursor cursor = resolver.query(uri, columns, "_id > ?", new String[]{Long.toString(after)}, "_id ASC")) {
+ if (cursor == null) throw new IllegalStateException("ANDROID_PROVIDER_UNAVAILABLE");
+ int bytes = 0;
+ while (cursor.moveToNext()) {
+ if (rows.length() >= 100 || bytes > 512 * 1024) { more = true; break; }
+ JSONObject row = new JSONObject();
+ for (int i = 0; i < columns.length; i++) {
+ row.put(columns[i], cursor.isNull(i) ? JSONObject.NULL :
+ cursor.getType(i) == Cursor.FIELD_TYPE_INTEGER ? cursor.getLong(i) : cursor.getString(i));
+ }
+ last = cursor.getLong(0);
+ if (kind.equals("contacts")) contactDetails(last, row);
+ rows.put(row);
+ bytes += row.toString().length() * 2;
+ }
+ }
+ return new JSONObject().put("rows", rows).put("next", more ? last : JSONObject.NULL);
+ }
+
+ private void contactDetails(long id, JSONObject contact) throws Exception {
+ JSONArray phones = new JSONArray(), emails = new JSONArray();
+ contact.put("tel", phones).put("email", emails);
+ try (Cursor c = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI,
+ new String[]{"mimetype", "data1", "data2", "data3", "is_primary"},
+ "contact_id = ? AND mimetype IN (?, ?, ?)", new String[]{Long.toString(id),
+ ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE,
+ ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
+ ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE}, "_id ASC")) {
+ if (c == null) throw new IllegalStateException("ANDROID_PROVIDER_UNAVAILABLE");
+ while (c.moveToNext()) {
+ String mime = c.getString(0);
+ if (mime.equals(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)) {
+ if (!contact.has("givenName")) contact.put("givenName", new JSONArray().put(c.getString(2)))
+ .put("familyName", new JSONArray().put(c.getString(3)));
+ } else {
+ boolean phone = mime.equals(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
+ int type = c.getInt(2);
+ String label = type == 0 ? c.getString(3) : phone ?
+ (type == 2 ? "mobile" : type == 1 ? "home" : type == 3 ? "work" : "other") :
+ (type == 1 ? "home" : type == 2 ? "work" : "other");
+ (phone ? phones : emails).put(new JSONObject().put("value", c.getString(1))
+ .put("type", new JSONArray().put(label == null ? "other" : label)).put("pref", c.getInt(4) != 0));
+ }
+ }
+ }
+ }
+
+ Intent open(JSONObject params) {
+ String kind = params.optString("kind");
+ if (kind.equals("contacts")) {
+ String id = params.optString("id");
+ if (!id.matches("[1-9][0-9]{0,15}")) throw new IllegalArgumentException("INVALID_CONTACT");
+ if (!granted(kind)) throw new SecurityException("ANDROID_DATA_PERMISSION_DENIED");
+ return new Intent(Intent.ACTION_VIEW, ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(id)));
+ }
+ if (kind.equals("sms")) return new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_MESSAGING);
+ if (kind.equals("calls")) return new Intent(Intent.ACTION_VIEW, CallLog.Calls.CONTENT_URI);
+ throw new IllegalArgumentException("INVALID_DATA_KIND");
+ }
+}
diff --git a/android/app/src/main/java/org/vulpes_os/preview/AndroidServices.java b/android/app/src/main/java/org/vulpes_os/preview/AndroidServices.java
index 64020f99..8aded31a 100644
--- a/android/app/src/main/java/org/vulpes_os/preview/AndroidServices.java
+++ b/android/app/src/main/java/org/vulpes_os/preview/AndroidServices.java
@@ -24,6 +24,7 @@ final class AndroidServices {
CONTACT = 412;
static final long MAX_MEDIA = 32L * 1024 * 1024;
final VulpesApplication app;
+ final AndroidPersonalData personal;
final ExecutorService io = Executors.newSingleThreadExecutor();
final Handler main = new Handler(Looper.getMainLooper());
GeckoResult