Overview
An AI firmware release is scheduled for deployment tomorrow. This release includes multiple feature additions, stability improvements, memory management enhancements, watchdog and reboot hardening mechanisms, as well as several bug fixes.
Expected data usage per device: ~52MB
New Features
Dual D1 Hardware Revision Support
Hardware revision automatically detected via serial number
Display auto-rotated 180°
Added LM3642 IR driver support
Accelerometer axis defaults corrected
CS Package Queueing
CS packages generated without a session ID are now queued
Up to 20 packages retained until a session ID becomes available
Low-Memory Auto-Reboot Mechanism
RAM and swap monitored every second
Device automatically reboots when memory remains critically low for a sustained period
Thresholds, sustain duration, and reboot delay configurable through
settings.db
Memory Diagnostics Logging
Captures:
/proc/meminfoTop RSS processes
dmesglogcat
Triggered during:
Critical memory events
Configurable periodic intervals
Watchdog Mechanism
AlarmManager-based watchdog running every 60 seconds
Device reboots after 3 consecutive failures of:
Updater service
Firmware application
Includes 3-minute boot grace period
FirmwareChecker Service Hardening
FirmwareChecker now declared
START_STICKYAndroid OS automatically restarts the service if terminated
Reboot Hardening Improvements
All reboot paths now:
Log reboot intent
Flush logs
Sync filesystem
Wait configurable delay before reboot
Fall back from PowerManager reboot to shell reboot command if required
Native Log Flush Support
C++ logger now includes
Flush()Flush drains write queue and performs
fsync()on log files
Fixes
Brightness Control
Fixed issue where zero brightness could not be reached on newer LM3642 chips
GPS Route Stability
Fixed
SIGABRTinGpsRouteDayRaw mutex replaced with
std::lock_guard
Network Listener Stability
Fixed
SIGSEGVuse-after-free inNotifyNetStatusListenersRemoveNetStatusListeneradded to destructors
MP4 Upload Handling
Fixed orphaned MP4 files not uploading correctly
Connectivity
Increased pre-auth connection timeout
ConfigCommonSettings Loading
Incremental loading improved:
Only missing keys fetched from DB
Multiple callers can safely load independent keys
Firmware Recovery Logic
Recovery checks deferred for 3 minutes after boot
Reboot calls now log intent and sync filesystem before execution
Android Build Environment
Gradle upgraded from
4.10.1to7.0.2Android Gradle Plugin upgraded from
3.3.2to7.0.4
Permissions
Added
READ_LOGSpermission required for memory diagnostic log capture
Memory Diagnostic Configuration Defaults
LOW_MEMORY_LOG_DIAGNOSTICSnow correctly defaults tofalseFixed issue where periodic memory logging executed regardless of flag state
Repository Cleanup
Removed
.idea/IDE files from repositoryUpdated
.gitignoreRemoved helper build script
Debug / Diagnostic Features
Low-Memory Monitoring Suite
Added diagnostic suite including:
Background memory pressure monitor
Periodic diagnostic snapshots
Pre-reboot diagnostic snapshots
dmesgcapturelogcatcaptureTop process monitoring
Memory leak simulator
Optional auto-reboot functionality
All debug functionality remains gated behind configuration flags.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article