Repository navigation
Firmware
This page covers the glasses' firmware as the protocol shows it: the build string, the Android base, the firmware versions seen and the update query. Installing firmware is not covered.
The glasses report their build as one string on svc100 field 1. The string follows Android's fingerprint format.
Meta/hammerhead/greathammerhead:14/UKQ1.250303.001/70523680060800100:user/release-keys
| Part | Value | Meaning |
|---|---|---|
| 1, brand | Meta |
The maker of the build |
| 2, product | hammerhead |
The product codename. On Ray-Ban Meta Gen 2 it differs from the device codename |
| 3, device and release |
greathammerhead and 14, split by a colon |
greathammerhead is the device codename. It selects the product id. 14 is the Android release |
| 4, build id | UKQ1.250303.001 |
An Android-style build identifier. Its meaning is unknown |
| 5, incremental and type |
70523680060800100 and user
|
The firmware version, then the build type |
| 6, tags | release-keys |
The build is signed with release keys |
The device codename is the one the product table in Glasses-hardware maps to a product id.
Part 3 ends in 14. In Android's fingerprint format this is the Android release, so the firmware is built on Android 14. Unconfirmed: nothing asks the glasses for their Android version directly.
| Version | Where it appears | What is known |
|---|---|---|
70523680060800100 |
The build string on svc100 on Ray-Ban Meta Gen 2 | An earlier build. The update query still offers it as a full image |
72387580077200100 |
The build string on Ray-Ban Meta Gen 2 after an update | Installed by an automatic update that started from 70523680060800100. |
12.14.7 |
The case state on svc28 field 2 | The case's firmware, not the glasses' |
128.0.0.0.0 |
svc100 field 9 | Unknown |
Ray-Ban Meta Gen 2 reported 70523680060800100 before it updated to 72387580077200100. The newer build is the one it now runs.
The phone can ask Meta whether a newer image exists for a pair. This is the protocol level only.
- The phone sends a form-encoded GraphQL request to Meta's AR endpoint,
ar-genai.graph.meta.com. The request carries the AR token from the Meta login in an OAuth authorization header. See Meta-login-and-ownership. - The operation is
FetchConstellationUpdates. Its variables hold one request per device. - Each device request carries the glasses' serial, a device type, a firmware version and a flag that asks for the full image only. The device type has the form
ota.<codename>.user. For Ray-Ban Meta Gen 2 it isota.greathammerhead.user. - A firmware version of
0asks for the full image. The reply then carries a signed download URL and a checksum for the image. - When the glasses already run the newest image, the reply holds
firmware_update_infoas null.
On Ray-Ban Meta Gen 2, the query offered only 70523680060800100, as a full image. It offered nothing for 72387580077200100, in full or as a delta, for either device type. The newer build is not reachable by this query.
The language packs use a sibling query, FetchConstellationFeatureUpdates, from the same endpoint. See Assistant-voice-and-languages.
Service 29 is the firmware update service. Its messages are not described on this page.
Feature flags that the firmware holds are covered in MobileConfig. The svc100 fields that carry the build string and the serial are in Device-state-and-build-info.
Reference code: Constants.kt, SettingSpec.kt
- Whether a build newer than
72387580077200100exists, and how to reach it. The update query does not show it. - Whether the glasses take delta updates at all. The query showed none for Ray-Ban Meta Gen 2.
- What the build id
UKQ1.250303.001means. - Whether the release field
14is the real Android version. - What
128.0.0.0.0in svc100 field 9 means. - What the messages on service 29 do.
The glasses
The link
Identity
Media
Settings
Assistant