Comprehensive technical documentation for the Rokid AR smart glasses ecosystem, covering the YodaOS operating system internals (built on Android 12/Qualcomm), hardware architecture, system services, and the CXR SDK suite (Mobile, On-Device, and Standalone) for developing companion and glasses-native applications.
Why does this exist? Development documentation for Rokid glasses is scattered across Chinese-language sites, SDK JARs, and firmware dumps. This project aims to be the single, community-maintained source of truth for anyone building on the Rokid platform.
- Overview
- Device Specifications
- Product Variants
- Repository Structure
- YodaOS
- CXR SDK Suite
- Decompiled Sources
- Documentation Index
This repository contains reverse-engineered and authored documentation for the Rokid AR Glasses platform. It covers everything from low-level firmware and kernel modules to high-level SDK APIs for third-party developers. The documentation was generated through a combination of firmware decompilation (APKtool + JADX), system property extraction, and analysis of Rokid's CXR SDK artifacts.
The platform runs YodaOS, Rokid's custom operating system built on Android 12 with Qualcomm's QSSI (Qualcomm Single System Image) architecture. The glasses communicate with companion mobile apps via Bluetooth and Wi-Fi Direct using the CXR protocol suite.
| Property | Value |
|---|---|
| Model | RG-glasses |
| Brand | Rokid |
| OS | YodaOS (Android 12, SDK 32) |
| Build ID | SKQ1.240613.001 |
| Board Platform | Qualcomm Neo |
| Primary ABI | arm64-v8a |
| CPU (64-bit) | Kryo 300 |
| CPU (32-bit) | Cortex-A75 |
| Display | JBD JBD4020 Micro-LED (right eye) |
| IMU | InvenSense ICM-4x6xx (accel, gyro, motion detect, freefall, temp) |
| Speech Co-processor | NXP RT600 (iFlytek + Rokid KWS) |
| GPU Firmware | Adreno 620/621/650/740v3 |
| Low RAM Mode | Enabled |
| A/B OTA | Virtual A/B |
| Treble | Enabled |
| Default Locale | zh-CN |
| Build Fingerprint | Rokid/glasses/glasses:12/SKQ1.240613.001/1.12.009-20260109-150201:user/release-keys |
| OEM ID | Model | Display | Description |
|---|---|---|---|
| 101 | RV101 | Yes | Rokid Glasses (domestic) |
| 102 | RV102 | Yes | Rokid Glasses (carrier edition) |
| 103 | RV203 | No | Rokid AI Glasses (no display) |
| 104 | RV101 | Yes | Rokid Glasses (state gift edition) |
| 105 | RV101 | Yes | Rokid Glasses (overseas) |
| 106 | RV101 | Yes | Rokid Glasses (Leqi Smart brand) |
| 201 | RV201 | No | Bolon AI Glasses |
| 202 | RV202 | No | Bolon AI Glasses (carrier edition) |
| 203 | RV201 | No | Bolon AI Glasses (celebrity custom, tinted gray) |
Each variant is identified by a devicetypeid UUID set during boot, which configures authentication keys, display presence, and boot animations.
rokid-docs/
├── cxr-m/ # CXR-M SDK documentation (Mobile companion)
│ ├── intro.md # SDK overview
│ ├── sdk-integration.md # Integration guide
│ ├── device-connection.md # Device connection management
│ ├── get-device-status.md # Querying device status
│ ├── data-interaction.md # Data interaction patterns
│ ├── ai-integration.md # AI integration with Sprite OS
│ └── sdk-decompiled-reference.md # Full decompiled SDK reference
│
├── cxr-s/ # CXR-S SDK documentation (On-device)
│ ├── brief.md # SDK overview
│ ├── development-environment.md # Dev environment setup
│ ├── sdk-import.md # SDK import guide
│ ├── manage-device-connection.md # Connection management
│ ├── message-subscription.md # Receiving messages from mobile
│ ├── message-sending.md # Sending messages to mobile
│ └── data-structure.md # Caps serialization format
│
├── cxr-l/ # CXR-L SDK documentation (Standalone)
│ └── api-reference.md # Complete API reference
│
└── yodaos/ # YodaOS platform documentation
├── docs/
│ ├── overview.md # Build info, CPU, architecture
│ ├── apps/ # System application docs
│ ├── development/ # Development reference (HAL, permissions, etc.)
│ ├── hardware/ # Hardware specifications
│ ├── kernel/ # Kernel modules
│ ├── platform/ # Platform services (Speech SDK, AOSP)
│ ├── system/ # System internals (boot, init, properties)
│ └── vendor/ # Vendor services
├── DECOMPILED/ # Decompiled system partitions
│ ├── system/ # Framework, services, configs
│ ├── system_ext/ # Extended system apps, factory scripts
│ ├── vendor/ # Vendor HALs, firmware, scripts
│ ├── product/ # Rokid product apps
│ ├── odm/ # ODM partition
│ └── apex/ # APEX modules
└── DECOMPILED-APPS/ # Full APK decompilation output
└── product/app/ # Per-app decompiled sources (smali, jadx, res)
YodaOS is built on Android 12 (API 32) using the Qualcomm QSSI build system with the Neo board platform. It uses Qualcomm's "Go" (low-RAM) configuration, indicating a resource-constrained device. Key architectural features:
- Treble-compliant: vendor/system separation via VNDK 32
- Virtual A/B OTA: seamless updates with rollback support
- Low RAM optimizations: Go-edition Android configuration
- APEX modules: modular system components (WiFi, tethering, permissions, media, ext services)
- Partitions: system, system_ext, vendor, product, odm, apex
The boot sequence follows Android init with Qualcomm BSP and Rokid customizations layered on top:
- early-init -- Mount tracefs, device symlinks, load kernel modules
- init -- Start logd, servicemanager, hwservicemanager, lmkd
- fs -- Mount filesystems, run Rokid identity setup (
set_serialno,set_mfi) - post-fs -- Configure persist partition (SN, MAC, type ID files)
- post-fs-data -- Create data directories, start tombstoned, apexd
- zygote-start -- Start statsd, netd, zygote
- early-boot -- Run Qualcomm early boot scripts, start sensor subsystems (ADSP/CDSP/SLPI/CVP)
- boot -- Configure Bluetooth/network/sensors, start HALs, resolve OEM variant via
init.rokid_oem_define.rc
| Component | Details | Documentation |
|---|---|---|
| Display | JBD JBD4020 Micro-LED panel (right eye), Qualcomm DPU 8.2.0, QDCM calibration | display.md |
| Sensors | InvenSense ICM-4x6xx IMU (accel, gyro, motion/freefall detect, temp) via I3C | sensors.md |
| Audio | Qualcomm audio HAL with AEC/ANT models | audio.md |
| GPU | Adreno 620/621/650/740v3 firmware variants | firmware.md |
| Thermal | Thermal management and throttling | thermal.md |
| Power | Power and performance profiles | power-performance.md |
| Native Libs | Qualcomm, GPU, camera, audio library catalog | native-libraries.md |
The Speech SDK runs on an NXP RT600 co-processor connected to the main Qualcomm SoC via SPI. It handles:
- Microphone input and noise reduction
- Acoustic echo cancellation (AEC)
- Wake word detection (KWS -- keyword spotting)
- Command word recognition
Speech processing is powered by iFlytek (Xunfei) for the front-end audio pipeline, with Rokid's own KWS engine introduced from firmware v5.0.0. Multiple firmware variants cover different hardware revisions (EVT1/EVT2/DVT), acoustic modes (near-field, far-field, noise-reduction), and languages (Chinese, English).
| Service | Documentation |
|---|---|
| AOSP Components | aosp-components.md |
| PASRService (vendor) | pasrservice.md |
| Time Service (vendor) | time-service.md |
| TrustZone Access | trustzone-access.md |
| App | Package | Description | Documentation |
|---|---|---|---|
| CXRService | com.rokid.cxrservice |
Core glasses-side CXR communication bridge (Bluetooth) | cxr-service.md |
| RokidSpriteLauncher | com.rokid.os.sprite.launcher |
Main home launcher (camera, gallery, audio, chat, translate, navigation, music, settings) | sprite-launcher.md |
| RokidSpriteAssistServer | com.rokid.os.sprite.assistserver |
Central service hub: Bluetooth, WiFi, payment, TTS, media, camera, web server | sprite-assist.md |
| RokidSysConfig | com.rokid.sysconfig |
System configuration service | sys-config.md |
| RokidOtaUpgrade | com.rokid.glass.ota |
OTA firmware update client with download, verification, and reboot | ota-upgrade.md |
| RokidScreenRecord | com.rokid.os.master.screenstream |
Screen recording/streaming via broadcast intents | screen-record.md |
| Camera2 | -- | Camera2 API integration | camera2.md |
| Chinese Payment Apps | Alipay, AntPay, JdPay | Payment/commerce integrations | chinese-apps.md |
| Topic | Documentation |
|---|---|
| HAL Interfaces | hal-interfaces.md |
| Hardware Features | hardware-features.md |
| Native Libraries | native-libraries.md |
| Permissions | permissions.md |
| System Interfaces | system-interfaces.md |
| System Properties | system-properties.md |
| Kernel Modules | modules.md |
| Init Services | init-services.md |
| Hardware Interaction | hardware-interaction.md |
The CXR (Connected XR) SDK suite enables developers to build applications for the Rokid AR Glasses ecosystem. It consists of three SDKs, each targeting a different runtime environment:
┌─────────────────────────────────────────────────────────────────┐
│ ROKID AR GLASSES │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ CXR-S SDK │ │ CXR-L SDK │ │ CXRService │ │
│ │ (on-device │ │ (standalone │ │ (system │ │
│ │ bridge) │ │ apps) │ │ bridge) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └───────────────────┼───────────────────┘ │
│ │ │
│ Bluetooth / Wi-Fi Direct │
└─────────────────────────────┼───────────────────────────────────┘
│
┌─────────┴─────────┐
│ CXR-M SDK │
│ (mobile phone) │
└───────────────────┘
The CXR-M SDK is a developer toolkit for building mobile companion applications (Android/iOS) that communicate with Rokid Glasses.
| Property | Value |
|---|---|
| Maven Artifact | com.rokid.cxr:client-m:1.0.8 |
| Min SDK | 28 (Android 9) |
| Repository | https://maven.rokid.com/repository/maven-public/ |
Capabilities:
- AI Interaction -- Integrate the AI workflow defined by YodaOS-Sprite (custom AI and custom AI workflows)
- Hardware Info -- Query glasses hardware information
- Assist Services -- File transfer, audio recording, photo capture via Rokid Assist Service
- Device Connection -- BLE GATT + classic Bluetooth socket + Wi-Fi Direct
Architecture:
| Layer | Class | Role |
|---|---|---|
| Public API | CxrApi |
Singleton entry point with callbacks/listeners |
| Core | CxrController |
Request routing, ID management |
| Bluetooth | BluetoothController |
BLE GATT + classic socket management |
| Wi-Fi | WifiController |
Wi-Fi P2P peer discovery and connection |
| File | FileController |
HTTP file sync and APK upload (port 8848) |
| Audio | AudioController |
Bluetooth SCO audio routing |
| Protocol | CXRSocketProtocol |
Native JNI framing layer |
| Serialization | Caps |
Binary serialization format |
Documentation:
| Document | Description |
|---|---|
| intro.md | SDK overview and capabilities |
| sdk-integration.md | Integration guide |
| device-connection.md | Connection management |
| get-device-status.md | Querying device status |
| data-interaction.md | Data interaction patterns |
| ai-integration.md | AI integration with Sprite OS |
| sdk-decompiled-reference.md | Complete decompiled SDK reference (31 classes) |
The CXR-S SDK is the on-device development toolkit running on YodaOS-Sprite, enabling developers to build applications that run directly on the glasses. It provides access to the data channel and establishes two-way communication with the CXR-M SDK on mobile.
| Property | Value |
|---|---|
| Maven Artifact | com.rokid.cxr:cxr-service-bridge:1.0-SNAPSHOT |
| Classes | 16 classes, 6 decompiled files |
Capabilities:
- Connection Monitoring -- Real-time Android/iOS connection/disconnection status
- ARTC Health -- Monitor data transmission health status
- Message Subscription -- Receive command messages from mobile
- Message Sending -- Send structured data (Caps) or binary streams (byte[]) to mobile
- Bidirectional Communication -- Full duplex mobile-to-glasses data channel
Documentation:
| Document | Description |
|---|---|
| brief.md | SDK overview |
| development-environment.md | Dev environment setup |
| sdk-import.md | SDK import guide |
| manage-device-connection.md | Connection management |
| message-subscription.md | Receiving messages |
| message-sending.md | Sending messages |
| data-structure.md | Caps serialization format |
The CXR-L SDK is for building standalone apps that replace the default Rokid apps entirely. It communicates with the Rokid AI app service (com.rokid.sprite.aiapp) via AIDL bound service.
| Property | Value |
|---|---|
| Maven Artifact | com.rokid.cxr:client-l:0.0.1 |
| Size | 28 KB AAR |
| Min SDK | 28 |
| Target SDK | 28 |
| Dependencies | Kotlin stdlib 2.1.0, Gson 2.10.1 |
| Repository | https://maven.rokid.com/repository/maven-public/ |
Entry Point:
class CXRLink(context: Context) : ExternalAppClient(context)CXRLink extends ExternalAppClient, which binds to IMediaStreamService via Android AIDL for media streaming and AI app integration.
The three SDKs work together to form a complete communication stack:
| Path | Protocol | Use Case |
|---|---|---|
| Mobile to Glasses | BLE GATT + Classic Bluetooth Socket | Device discovery, pairing, control commands |
| Mobile to Glasses | Wi-Fi Direct (port 8848) | File transfer, APK upload, high-bandwidth data |
| CXR-M to CXR-S | Caps serialization over Bluetooth/Wi-Fi | Structured bidirectional messaging |
| CXR-L to AI Service | Android AIDL (IMediaStreamService) | On-device AI app integration |
Caps Serialization Format -- The shared binary serialization format used across all SDKs, supporting: booleans, integers (int32/int64), floats (float/double), strings, binary blobs (byte[]), and nested Caps objects.
The yodaos/DECOMPILED/vendor/firmware/ directory contains firmware binaries and changelogs:
GPU Firmware:
- Adreno 620, 621, 650, 740v3 shader/microcode binaries
Camera Firmware:
- ICP (Image Control Processor) firmware
Computer Vision:
- EVA firmware (face detection, CV pipelines)
- VPU firmware (video processing)
Speech Firmware (NXP RT600):
| Variant | Version | Mode | Language |
|---|---|---|---|
| dvt-far-en/zh | 3.0.4 | Far-field | English/Chinese |
| dvt-near-en | 5.1.0 | Near-field | English |
| dvt-near-zh | 3.3.0 | Near-field | Chinese |
| dvt-nr-en/zh | 3.0.4 | Noise reduction | English/Chinese |
| evt1-nr-zh | Legacy | Noise reduction | Chinese |
| evt2-far/near/nr-zh | Legacy | Various | Chinese |
Firmware Changelogs:
- CHANGELOG_5.1.2-release -- DSP frequency optimization, audio sync fixes
- CHANGELOG_5.1.0-release_near_en -- DSP optimization, recording improvements
- CHANGELOG_3.3.0-release_near_zh -- Near-field Chinese variant
- CHANGELOG_3.0.4-release_far -- Far-field variant
- CHANGELOG_3.0.4-release_nr -- Noise reduction variant
Each application in yodaos/DECOMPILED-APPS/ is decompiled using both APKtool and JADX:
<app>/
├── apktool/ # APKtool output
│ ├── AndroidManifest.xml # App manifest
│ ├── smali/ # Dalvik bytecode (classes)
│ ├── res/ # Resources (layouts, drawables, values)
│ ├── assets/ # Raw assets (Lottie animations, configs, sounds)
│ └── original/ # Original APK metadata
├── jadx/ # JADX output (decompiled Java source)
└── apktool.yml # APKtool config
Decompiled apps include:
RokidSpriteLauncher-- Home launcher with Lottie animations, multi-page UIRokidSpriteAssistServer-- Central system service hubRokidOtaUpgrade-- OTA update clientRokidScreenRecord-- Screen recording serviceCamera2-- Camera appSettingsIntelligence-- Search and settings indexingAlipay,AntPay,JdPay-- Chinese payment integrations
| File | Location | Description |
|---|---|---|
cxr-service.json |
DECOMPILED/system/system/etc/ |
CXR service config (MTU, MFI, buffer sizes, AEC/ANT, ARTC) |
build.prop |
Multiple partitions | Build properties per partition |
cgroups.json |
DECOMPILED/system/system/etc/ |
Control group configuration |
| Sensor configs | DECOMPILED/vendor/etc/sensors/config/ |
IMU and sensor HAL configuration (JSON) |
| Display calibration | DECOMPILED/vendor/etc/display/ |
QDCM panel calibration data |
| Factory scripts | DECOMPILED/system_ext/factoryV2/ |
Hardware factory test scripts (WiFi, BT, battery, IMU, LED, sensors, etc.) |
| Looking for... | Go to |
|---|---|
| Build info and device specs | yodaos/docs/overview.md |
| Hardware variants (RV101, RV201, etc.) | yodaos/docs/hardware/product-variants.md |
| Boot sequence | yodaos/docs/system/boot-chain.md |
| Display hardware | yodaos/docs/hardware/display.md |
| Sensor specs | yodaos/docs/hardware/sensors.md |
| Speech/voice processing | yodaos/docs/platform/speech-sdk.md |
| All Rokid apps | yodaos/docs/apps/overview.md |
| Android permissions | yodaos/docs/development/permissions.md |
| Mobile app development | cxr-m/intro.md |
| On-device app development | cxr-s/brief.md |
| Standalone app replacement | cxr-l/api-reference.md |
| Full CXR-M SDK API | cxr-m/sdk-decompiled-reference.md |
| Caps data format | cxr-s/data-structure.md |
| Firmware changelogs | yodaos/DECOMPILED/vendor/firmware/ |
CXR-M SDK (Mobile)
- intro.md -- SDK overview
- sdk-integration.md -- Integration guide
- device-connection.md -- Connection management
- get-device-status.md -- Device status queries
- data-interaction.md -- Data interaction
- ai-integration.md -- AI integration
- sdk-decompiled-reference.md -- Full decompiled reference
CXR-S SDK (On-Device)
- brief.md -- SDK overview
- development-environment.md -- Environment setup
- sdk-import.md -- SDK import
- manage-device-connection.md -- Connection management
- message-subscription.md -- Receiving messages
- message-sending.md -- Sending messages
- data-structure.md -- Caps data structure
CXR-L SDK (Standalone)
- api-reference.md -- API reference
YodaOS -- System
- overview.md -- Build info and architecture
- boot-chain.md -- Boot sequence
- init-services.md -- Init services
- system-properties.md -- System properties
- hardware-interaction.md -- Hardware interaction
YodaOS -- Hardware
- product-variants.md -- Product variants
- display.md -- Display panel
- sensors.md -- Sensors (IMU)
- audio.md -- Audio
- firmware.md -- GPU/camera/CV firmware
- thermal.md -- Thermal management
- power-performance.md -- Power/performance
- native-libraries.md -- Native libraries
YodaOS -- Applications
- overview.md -- All Rokid apps
- cxr-service.md -- CXRService
- sprite-launcher.md -- Home launcher
- sprite-assist.md -- Assist server
- sys-config.md -- System config
- ota-upgrade.md -- OTA updates
- screen-record.md -- Screen recording
- camera2.md -- Camera
- chinese-apps.md -- Payment apps
YodaOS -- Platform
- speech-sdk.md -- Speech SDK
- aosp-components.md -- AOSP components
YodaOS -- Development
- hal-interfaces.md -- HAL interfaces
- hardware-features.md -- Hardware features
- native-libraries.md -- Native libraries
- permissions.md -- Permissions
- system-interfaces.md -- System interfaces
- system-properties.md -- System properties
YodaOS -- Kernel
- modules.md -- Kernel modules
YodaOS -- Vendor Services
- pasrservice.md -- PASRService
- time-service.md -- Time service
- trustzone-access.md -- TrustZone access
This is a community-driven project and contributions are welcome! Whether you've found an error, have new SDK findings, want to add a tutorial, or can help translate Chinese documentation to English, we'd love your help.
See CONTRIBUTING.md for guidelines on how to contribute.
- English translations of Chinese-language SDK docs and UI strings
- Getting started guides and tutorials for common tasks
- Code examples for CXR-M, CXR-S, and CXR-L SDK usage
- Troubleshooting guides based on real development experience
- Documentation for undocumented SDK features and system APIs
- Hardware findings from reverse engineering or hands-on development
This project is licensed under the MIT License - see LICENSE for details.
This documentation is community-maintained and includes information obtained through reverse engineering. It is not affiliated with or endorsed by Rokid. Use at your own risk. Rokid and YodaOS are trademarks of Rokid Co., Ltd.