Test and validate glasses features without physical hardware using MockDeviceKit.
The materials indicate an open-source Android local testing library/documentation for simulating Meta glasses behavior, with no declared secrets or remote endpoints. Based on the provided facts, the overall risk is low; the main consideration is that it simulates device state, permissions, and local media inputs within a development/testing context, which is normal for such tools.
The materials explicitly state that no keys or environment variables are required, and the README shows no API tokens, account authorization, or credential upload flow; no clear credential leakage or abuse surface is evident.
Both the objective checks and the materials indicate no remote endpoints. The described functionality focuses on local simulation of device, camera, and permission behavior; there is no evidence of user data being sent to third-party services.
This is an Android integration-testing mock library/documentation. The materials do not show it downloading or executing external code, nor do they claim system execution capabilities beyond normal testing framework behavior. The ffmpeg command in the README is only an example conversion command and is not evidence that the skill itself executes code.
The materials show it can accept local videoUri/imageUri as mock camera inputs and manipulate registration state, permission results, and device state in an Android test environment. This means it can interact with app test data and local media resources, but there is no sign of data access exceeding its stated purpose.
The source is an open-source GitHub repository with some community adoption (289 stars), providing reasonable auditability. Although the license is not declared and maintenance status is unknown, adding some supply-chain uncertainty, there is no sign of closed-source exfiltration, suspicious install scripts, or obvious misleading content.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "mockdevice-testing" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/meta-wearables-dat-android/main/plugins/mwdat-android/skills/mockdevice-testing/SKILL.md 2. Save it as ~/.claude/skills/mockdevice-testing/SKILL.md 3. Reload skills and tell me it's ready
Using MockDeviceKit, design a test plan that works without physical glasses hardware. Cover device connection, sensor input, display feedback, and unexpected disconnection scenarios, and provide execution steps and validation checkpoints.
An executable simulated test plan with scenarios, steps, expected results, and exception validation points.
Based on MockDeviceKit, generate an approach for automated test scripts to simulate glasses device boot, pairing, data stream input, and error recovery, and explain how to integrate them into CI.
A recommended automated test script structure and implementation notes for CI integration.
I am seeing state desynchronization and event latency while simulating glasses hardware with MockDeviceKit. Provide a systematic troubleshooting checklist categorized by environment setup, API calls, event queues, and log analysis.
A structured troubleshooting checklist to quickly locate configuration or logic issues in simulation testing.
Use MockDeviceKit to test DAT SDK integrations without physical Meta glasses.
MockDeviceKit simulates Meta glasses behavior for development and testing. It provides:
MockDeviceKit — Entry point for creating simulated devicesMockRaybanMeta — Simulated Ray-Ban Meta glassesMockCameraKit — Simulated camera with configurable video feed and photo captureAdd mwdat-mockdevice to your Gradle dependencies:
dependencies {
implementation(libs.mwdat.mockdevice)
}
import com.meta.wearable.dat.mockdevice.MockDeviceKit
import com.meta.wearable.dat.mockdevice.api.MockDeviceKitConfig
val mockDeviceKit = MockDeviceKit.getInstance(context)
// Attach fake registration and connectivity (auto-initializes Wearables if needed).
// By default, Wearables.registrationState transitions to Registered.
mockDeviceKit.enable()
// Or start in unregistered state to test registration flows:
// mockDeviceKit.enable(MockDeviceKitConfig(initiallyRegistered = false))
val device = mockDeviceKit.pairRaybanMeta()
You can check mockDeviceKit.isEnabled to query whether the mock environment is active.
// Simulate glasses lifecycle
device.powerOn()
device.unfold()
device.don() // Simulate wearing the glasses
// Later...
device.doff() // Simulate removing
device.fold()
device.powerOff()
MockDeviceKit provides permissions to control permission behavior without the Meta AI app.
By default, RequestPermissionContract returns Granted. Use set() to control checkPermissionStatus() and setRequestResult() to control request outcomes.
val mockDeviceKit = MockDeviceKit.getInstance(context)
// Simulate denied camera permission status
mockDeviceKit.permissions.set(Permission.CAMERA, PermissionStatus.Denied)
// Simulate denied request result (user tapping "deny")
mockDeviceKit.permissions.setRequestResult(Permission.CAMERA, PermissionStatus.Denied)
val camera = device.services.camera
camera.setCameraFeed(videoUri)
val camera = device.services.camera
camera.setCapturedImage(imageUri)
Note: Android doesn't transcode video automatically. Mock video files must be in h.265 format. Use FFmpeg to convert:
ffmpeg -hwaccel videotoolbox -i input.mp4 -c:v hevc_videotoolbox -c:a aac_at -tag:v hvc1 -vf "scale=540:960" output.mov
Create a reusable test base class:
import android.content.Context
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.platform.app.InstrumentationRegistry
import com.meta.wearable.dat.mockdevice.MockDeviceKit
import com.meta.wearable.dat.mockdevice.api.MockDeviceKitInterface
import org.junit.After
import org.junit.Before
import org.junit.Rule
open class MockDeviceKitTestCase<T : Any>(
private val activityClass: Class<T>
) {
@get:Rule
val scenarioRule = ActivityScenarioRule(activityClass)
protected lateinit var mockDeviceKit: MockDeviceKitInterface
protected lateinit var targetContext: Context
@Before
open fun setUp() {
val instrumentation = InstrumentationRegistry.getInstrumentation()
targetContext = instrumentation.targetContext
mockDeviceKit = MockDeviceKit.getInstance(targetContext)
grantRuntimePermissions()
}
@After
open fun tearDown() {
mockDeviceKit.disable()
}
private fun grantRuntimePermissions() {
val packageName = targetContext.packageName
val shell = InstrumentationRegistry.getInstrumentation().uiAutomation
shell.executeShellCommand("pm grant $packageName android.permission.BLUETOOTH_CONNECT")
shell.executeShellCommand("pm grant $packageName android.permission.CAMERA")
}
}
…
Set up the Android SDK and connect to Meta glasses for the first time.
Set up camera sessions, stream video, capture photos, and tune resolution.
Build a complete DAT app with sessions, camera streaming, and photo capture.
Manage session and stream state with pause, resume, and device monitoring.
Diagnose common issues, compatibility problems, and session or stream debugging cases.
Helps developers set up Meta AI app registration and device permission flows.
Set up the Meta glasses SDK and make your first connection.
Control iOS simulators with AI for mobile app testing and interaction checks.
Build testable Swift code with protocol-based dependency injection and focused mocks.
Run a lightweight local MCP mock server for predictable testing.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Control multiple iOS and Android devices for testing, screenshots, and UI actions.