mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
feat: Add ESP32 Unified OTA update support (#4095)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
parent
6b5dd24249
commit
2a60480bd9
40 changed files with 3410 additions and 717 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2025 Meshtastic LLC
|
||||
* Copyright (c) 2025-2026 Meshtastic LLC
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -14,7 +14,6 @@
|
|||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meshtastic.core.model
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
|
|
@ -31,6 +30,11 @@ data class BootloaderOtaQuirk(
|
|||
* one-time bootloader upgrade (typically via USB) before DFU updates from the app work.
|
||||
*/
|
||||
@SerialName("requiresBootloaderUpgradeForOta") val requiresBootloaderUpgradeForOta: Boolean = false,
|
||||
/**
|
||||
* Indicates that the device supports the ESP32 Unified OTA protocol. When true, the app will use the unified OTA
|
||||
* handler instead of Nordic DFU.
|
||||
*/
|
||||
@SerialName("supportsUnifiedOta") val supportsUnifiedOta: Boolean = false,
|
||||
/** Optional URL pointing to documentation on how to update the bootloader. */
|
||||
@SerialName("infoUrl") val infoUrl: String? = null,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -55,4 +55,8 @@ data class Capabilities(val firmwareVersion: String?, internal val forceEnableAl
|
|||
/** Support for sharing contact information via QR codes. Supported since firmware v2.6.8. */
|
||||
val supportsQrCodeSharing: Boolean
|
||||
get() = isSupported("2.6.8")
|
||||
|
||||
/** Support for ESP32 Unified OTA. Supported since firmware v2.7.18. */
|
||||
val supportsEsp32Ota: Boolean
|
||||
get() = isSupported("2.7.18")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2025 Meshtastic LLC
|
||||
* Copyright (c) 2025-2026 Meshtastic LLC
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -14,7 +14,6 @@
|
|||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.meshtastic.core.model
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
|
@ -39,6 +38,7 @@ data class DeviceHardware(
|
|||
val requiresBootloaderUpgradeForOta: Boolean? = null,
|
||||
/** Optional URL pointing to documentation for upgrading the bootloader. */
|
||||
val bootloaderInfoUrl: String? = null,
|
||||
val supportsUnifiedOta: Boolean = false,
|
||||
val supportLevel: Int? = null,
|
||||
val tags: List<String>? = null,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue