Understand The Release Set
Mentra publishes coordinated releases. One release identity, such asX.Y.Z or
X.Y.Z-beta.N, identifies all of the components tested together:
Each release has its own GitHub page:
3.1.0-beta.12 is at
https://github.com/Mentra-Community/MentraOS/releases/tag/mentra-v3.1.0-beta.12.
1. Pin The Exact SDK Release
Use the same complete release identity on every platform. Do not use moving tags such asdev, beta, or latest in a controlled deployment.
- React Native / Expo
- Android
- iOS
2. Disable Mentra SDK Analytics
Analytics must be disabled before the native SDK starts.- React Native / Expo
- Android
- iOS
Add the setting to the SDK config plugin, then rebuild the native app:
3. Resolve, Download, And Verify The OTA Bundle
First download the completed release record from the selected release page:- The matching Mentra Live ASG APK.
- Every referenced MTK patch.
- The referenced BES firmware.
version.template.json.configure.mjsand deployment instructions.SHA256SUMSfor the included OTA payloads.
sha256sum provides the equivalent calculation. Keep the release record
with the imported bundle as the deployment audit record.
4. Generate The Internal Manifest
Extract the bundle, then run its dependency-free configurator with the exact URL where the final manifest will be served:version.json. It converts every bundled artifact reference to
an absolute URL under the supplied location. Run the command again if the hosted
directory moves.
Host the entire extracted directory without renaming or removing its artifacts/
files. Both the phone and Mentra Live must be able to resolve and reach the manifest
and artifact URLs. The endpoints must support ordinary unauthenticated HTTP GET
requests; the OTA protocol does not attach a customer login session or custom
authorization headers. Restrict access at the internal network boundary instead.
For HTTPS, use a certificate chain trusted by both the phone and Mentra Live. Test
internal DNS and certificate trust from both devices before beginning an update.
5. Configure The Customer App
Set the internal manifest URL before the app checks for or starts an update:- React Native / Expo
- Android
- iOS
ota_status progress, and
avoid unrelated glasses commands until the update reaches complete or failed.
6. Connect Mentra Live To The Internal Network
The standalone Bluetooth SDK OTA flow expects Mentra Live to reach the internal update server over Wi-Fi. Your app can provision that network withsendWifiCredentials(...).
The phone-hosted hotspot OTA orchestration used by the Mentra App is not currently
part of the standalone public Bluetooth SDK flow. If the glasses are not allowed on
an internal Wi-Fi network, update them during factory provisioning instead.
7. Validate Without Internet Access
Before deployment, test the complete customer app and update flow with public internet access blocked:- Confirm SDK analytics are disabled in the compiled app.
- Pair and connect Mentra Live over Bluetooth.
- Connect Mentra Live to the internal Wi-Fi network.
- Confirm
getOtaVersionUrl()returns the internal, versioned manifest URL. - Run the OTA check and install every available ASG, MTK, and BES step.
- Reconnect after restarts and repeat the check until no update remains.
- Confirm firewall and DNS logs contain only customer-approved destinations.
- Exercise the Bluetooth SDK features used by the customer app.
Updating To A New Release
Treat each release identity as immutable:- Select another completed coordinated release.
- Update the app to that exact Bluetooth SDK version.
- Import and verify the OTA bundle selected by that release’s completed record.
- Host it under a new versioned directory.
- Point the new app build at the new internal
version.json. - Keep older directories available while older app versions remain deployed.

