Meta Ray-Ban Display
Meta Ray-Ban Display speaks the same link as the other glasses: the same radios, AirShield, DataX, svc36 trust and change of owner. What differs is how much the phone has to serve. The Display's apps ask the phone for texts, calls, music, maps, places and the internet, each on a service of its own. This page covers what is specific to the Display and points to the pages for each group of services.
| Meta Ray-Ban Display | |
|---|---|
| Product id | 259 |
| Device type | 5 |
| Build device | greatwhite |
| Update device type | ota.greatwhite.user |
| Companion input | The Neural Band, paired to the Display |
Services by area
| Area | Services | Page |
|---|---|---|
| Device state | svc28, wrapped in HNDeviceState. The case comes only as 2008 pushes |
Device state and build info |
| Link checks | svc4, svc76, svc101 | Link checks |
| App info | svc100 types 1 and 2, asked by each app | App info |
| Texts and calls | svc70, svc46, svc11006 | Display phone services |
| Sharing | svc26 | Display phone services |
| Music | svc9012 | Display phone services |
| Maps, navigation, places and location | svc11004, svc42, svc55072, svc41102, svc11020, svc87 | Display maps and location |
| Internet for the Display's apps | svc41108, svc41111, svc9000, svc41107 | Display internet |
| Meta content | svc43, svc9002, svc89 | Display internet |
| The Briefing's cards and their details | svc9002, svc43 | Briefing panel |
| Web apps, their sensors, location and Bluetooth scans | svc55074, svc41120, svc41102, svc51 | Display web apps |
| Captions and translation | svc28 start app, svc29 pack install, svc72 | Captions and translation |
| Notifications | svc46 | Notifications and contacts |
| Neural Band | svc150, svc41109, svc102 | Neural Band |
| Apps from other phones | svc79, svc7009, svc6500 | Device Access Toolkit |
| Motion sensors | svc28 intents, svc1027 | Motion sensors |
Link checks
The Display checks the link on three services. Each wants a short answer.
| Service | What the Display sends | Answer |
|---|---|---|
svc4 connection_monitor |
Type 0 with a 4-byte counter, on a channel it opens | A bare DataX status 0 (OK). Answered, the counter counts up on one channel every 1 to 4 s. Unanswered, it stops at 1 |
svc76 wearables_ping |
Type 1 | Type 2 PingResult {1 hasInternet} |
svc101 motion_activity_service |
Type 0, start subscription, when the screen goes off | Type 3 {1 SETTINGS_NOT_ENABLED = 2}, which the Display reads as "not driving" |
App info for each app
Each Display app asks who the phone is. It opens its own svc100 channel, sends type 1 GET_INFO with an empty body and waits 5 s for type 2 AppInfo. Without an answer, the app takes the phone for neither Android nor iOS.
| AppInfo field | Content |
|---|---|
| 1 | Platform: 1 Android, 2 iOS |
| 2 | Companion app version |
| 3 | OS version, for Android the SDK level |
| 4 | Phone manufacturer |
| 5 | Phone id |
| 6 | Phone model |
The apps ask while the link comes up. The phone sends its own svc100 announce at the same time, so a phone that answers only after the build is known has to wait for its own answer first.
Captions and translation
Live captions and translation run on the Display, from a feature pack. The phone installs the pack and starts the app.
- The phone gets the pack from
FetchConstellationFeatureUpdates. The feature iscom.meta.constellation.feature.air.live_captions_<lang>, ortranslation_<source>_<target>for translation. - The phone installs it over service 29 and enables the feature with FEATURE_CHANGE. See Firmware.
- The phone starts app 31 with svc28 StartApp. The data carries
action.lst_lc.action=action.speech_caption.start(oraction.speech_translation.start),self_lang,other_langandrequest_id. StopApp with the matching.stopaction ends it. - The Display sends each turn back on svc72 type 1, a TwoWayTranslation, on a new channel per message.
| TwoWayTranslation field | Content |
|---|---|
| 1 | Speech id, the same for every update of one turn |
| 4 and 5, 10 and 9 | What the Display shows: two pairs of final and partial text. The partial text holds "..." while formatting catches up |
| 12 and 11 | What was heard, final and partial |
| 13 | The turn is finished |
| 3 | Set on speech from a video too, so it does not mean "the wearer" |
Assistant cards
The assistant draws a card with ev60. Fulfillment result field 27, onDeviceUxMessage, is {1 list of cards, 2 interaction id}, and each card is an AssistantTemplate in compact thrift, sent as base64 text. VARM field 24, expectedUxTemplate, tells the glasses a card is coming. See Ending a turn.
| AssistantTemplate field | Value |
|---|---|
| 1 | Type: 0 for a simple card, 28 for an A2UI card |
| 2 | The template: a SimpleTemplate {1 title}, or the A2UI JSON |
| 9 | The text |
| 10 | hideAfterMs, required |
A simple card shows its title in a scrolling block, under the question.
An A2UI card is a JSON array of messages: createSurface, updateComponents, updateDataModel and deleteSurface. One bad message drops the whole card. A component needs an id and a component, and drawing starts at the component whose id is root. The components include Text, Image, Icon, Column, Row, Divider, List, Card, Svg, Spacer and Table. A2UI cards have not been tried from a phone.
A card's actions do not reach the phone. The Display logs a tapped action and drops it; only go_back does anything. A card can show content, not take input. For layouts that answer taps, see Device Access Toolkit.
Services the Display lacks
The health and workout relays answer 0xC001 (service not found) on Display firmware 69951180085500080: svc23471, svc23472 and svc23478. The image has no app that reads them.
Reference code: GlassesSession.kt, PeerAppInfo.kt, InternetSwitch.kt, MotionActivity.kt, CaptionPacks.kt
Open questions
- Whether the Display ever uses the svc76 ping answer. It has been seen once in a day.
- What the Display does with the motion activity answer beyond "not driving".
- Why a svc72 turn carries two pairs of shown text, fields 4 and 5 and fields 10 and 9.
- When the health and workout relays get a reader on the Display.
- Whether A2UI cards (AssistantTemplate type 28) draw when the phone sends them in ev60.