@myerscarpenter/quest-dev 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +7 -0
- package/.github/workflows/docs.yml +45 -0
- package/.github/workflows/publish.yml +11 -1
- package/README.md +27 -0
- package/build/cast/decoder.d.ts +48 -0
- package/build/cast/decoder.d.ts.map +1 -0
- package/build/cast/decoder.js +152 -0
- package/build/cast/decoder.js.map +1 -0
- package/build/cast/session.d.ts +87 -0
- package/build/cast/session.d.ts.map +1 -0
- package/build/cast/session.js +565 -0
- package/build/cast/session.js.map +1 -0
- package/build/commands/logcat.d.ts.map +1 -1
- package/build/commands/logcat.js +7 -6
- package/build/commands/logcat.js.map +1 -1
- package/build/commands/open.d.ts.map +1 -1
- package/build/commands/open.js +9 -4
- package/build/commands/open.js.map +1 -1
- package/build/commands/screenshot.d.ts.map +1 -1
- package/build/commands/screenshot.js +17 -20
- package/build/commands/screenshot.js.map +1 -1
- package/build/commands/stay-awake.d.ts +2 -15
- package/build/commands/stay-awake.d.ts.map +1 -1
- package/build/commands/stay-awake.js +14 -77
- package/build/commands/stay-awake.js.map +1 -1
- package/build/daemon/cast-manager.d.ts +42 -0
- package/build/daemon/cast-manager.d.ts.map +1 -0
- package/build/daemon/cast-manager.js +243 -0
- package/build/daemon/cast-manager.js.map +1 -0
- package/build/daemon/client.d.ts +40 -0
- package/build/daemon/client.d.ts.map +1 -0
- package/build/daemon/client.js +133 -0
- package/build/daemon/client.js.map +1 -0
- package/build/daemon/daemon.d.ts +20 -0
- package/build/daemon/daemon.d.ts.map +1 -0
- package/build/daemon/daemon.js +130 -0
- package/build/daemon/daemon.js.map +1 -0
- package/build/daemon/deploy.d.ts +44 -0
- package/build/daemon/deploy.d.ts.map +1 -0
- package/build/daemon/deploy.js +230 -0
- package/build/daemon/deploy.js.map +1 -0
- package/build/daemon/logcat-manager.d.ts +39 -0
- package/build/daemon/logcat-manager.d.ts.map +1 -0
- package/build/daemon/logcat-manager.js +194 -0
- package/build/daemon/logcat-manager.js.map +1 -0
- package/build/daemon/server.d.ts +19 -0
- package/build/daemon/server.d.ts.map +1 -0
- package/build/daemon/server.js +482 -0
- package/build/daemon/server.js.map +1 -0
- package/build/daemon/stay-awake-manager.d.ts +22 -0
- package/build/daemon/stay-awake-manager.d.ts.map +1 -0
- package/build/daemon/stay-awake-manager.js +74 -0
- package/build/daemon/stay-awake-manager.js.map +1 -0
- package/build/index.js +285 -45
- package/build/index.js.map +1 -1
- package/build/public/dashboard.js +749 -0
- package/build/public/index.html +12 -0
- package/build/public/style.css +106 -0
- package/build/utils/adb.d.ts +12 -0
- package/build/utils/adb.d.ts.map +1 -1
- package/build/utils/adb.js +116 -51
- package/build/utils/adb.js.map +1 -1
- package/build/utils/casting-apk.d.ts +40 -0
- package/build/utils/casting-apk.d.ts.map +1 -0
- package/build/utils/casting-apk.js +252 -0
- package/build/utils/casting-apk.js.map +1 -0
- package/build/utils/config.d.ts +5 -3
- package/build/utils/config.d.ts.map +1 -1
- package/build/utils/config.js +18 -38
- package/build/utils/config.js.map +1 -1
- package/build/utils/exec.d.ts +5 -0
- package/build/utils/exec.d.ts.map +1 -1
- package/build/utils/exec.js +17 -0
- package/build/utils/exec.js.map +1 -1
- package/build/utils/filename.d.ts +7 -1
- package/build/utils/filename.d.ts.map +1 -1
- package/build/utils/filename.js +17 -2
- package/build/utils/filename.js.map +1 -1
- package/build/utils/filename.test.js +33 -1
- package/build/utils/filename.test.js.map +1 -1
- package/build/utils/jpeg-comment.d.ts +14 -0
- package/build/utils/jpeg-comment.d.ts.map +1 -0
- package/build/utils/jpeg-comment.js +28 -0
- package/build/utils/jpeg-comment.js.map +1 -0
- package/build/utils/test-properties.d.ts +34 -0
- package/build/utils/test-properties.d.ts.map +1 -0
- package/build/utils/test-properties.js +73 -0
- package/build/utils/test-properties.js.map +1 -0
- package/build/utils/verbose.d.ts +3 -0
- package/build/utils/verbose.d.ts.map +1 -0
- package/build/utils/verbose.js +13 -0
- package/build/utils/verbose.js.map +1 -0
- package/package.json +11 -5
- package/packages/cast2-protocol/README.md +86 -0
- package/packages/cast2-protocol/docs/_config.yml +4 -0
- package/packages/cast2-protocol/docs/feature-flags.md +102 -0
- package/packages/cast2-protocol/docs/index.md +24 -0
- package/packages/cast2-protocol/docs/open-investigations.md +149 -0
- package/packages/cast2-protocol/docs/protocol.md +602 -0
- package/packages/cast2-protocol/package.json +46 -0
- package/packages/cast2-protocol/src/constants.ts +65 -0
- package/packages/cast2-protocol/src/index.ts +7 -0
- package/packages/cast2-protocol/src/mgik.ts +69 -0
- package/packages/cast2-protocol/src/mud.ts +294 -0
- package/packages/cast2-protocol/src/pose.ts +99 -0
- package/packages/cast2-protocol/src/resolutions.ts +34 -0
- package/packages/cast2-protocol/src/types.ts +64 -0
- package/packages/cast2-protocol/src/xrsp.ts +73 -0
- package/packages/cast2-protocol/tests/mgik.test.ts +80 -0
- package/packages/cast2-protocol/tests/mud.test.ts +295 -0
- package/packages/cast2-protocol/tests/pose.test.ts +173 -0
- package/packages/cast2-protocol/tests/xrsp.test.ts +90 -0
- package/packages/cast2-protocol/tsconfig.json +20 -0
- package/pnpm-workspace.yaml +2 -0
- package/src/cast/decoder.ts +178 -0
- package/src/cast/session.ts +708 -0
- package/src/commands/logcat.ts +6 -5
- package/src/commands/open.ts +10 -3
- package/src/commands/screenshot.ts +19 -13
- package/src/commands/stay-awake.ts +22 -91
- package/src/daemon/adbkit-apkreader.d.ts +14 -0
- package/src/daemon/cast-manager.ts +282 -0
- package/src/daemon/client.ts +166 -0
- package/src/daemon/daemon.ts +169 -0
- package/src/daemon/deploy.ts +307 -0
- package/src/daemon/logcat-manager.ts +229 -0
- package/src/daemon/server.ts +595 -0
- package/src/daemon/stay-awake-manager.ts +83 -0
- package/src/index.ts +340 -56
- package/src/public/dashboard.js +288 -0
- package/src/public/index.html +12 -0
- package/src/public/style.css +106 -0
- package/src/utils/adb.ts +129 -42
- package/src/utils/casting-apk.ts +276 -0
- package/src/utils/config.ts +18 -36
- package/src/utils/exec.ts +20 -0
- package/src/utils/filename.test.ts +41 -1
- package/src/utils/filename.ts +18 -2
- package/src/utils/jpeg-comment.ts +30 -0
- package/src/utils/test-properties.ts +94 -0
- package/src/utils/verbose.ts +14 -0
- package/tests/cast/auto-layer.test.ts +87 -0
- package/tests/cast/decoder.test.ts +82 -0
- package/tests/cast/session-restart.test.ts +107 -0
- package/tests/config.test.ts +17 -22
- package/tests/daemon/api-status.test.ts +82 -0
- package/tests/daemon/cast-manager.test.ts +69 -0
- package/tests/daemon/mjpeg-stream.test.ts +144 -0
- package/tests/daemon/pose-endpoint.test.ts +63 -0
- package/tests/daemon/start-guard.test.ts +77 -0
- package/vitest.config.ts +10 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Quest Cast</title>
|
|
7
|
+
<link rel="stylesheet" href="/style.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<script src="/dashboard.js"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--bg: #0e0e10; --surface: #18181b; --border: #2d2d33;
|
|
3
|
+
--text: #efeff1; --dim: #898991; --accent: #6d5bff;
|
|
4
|
+
--accent2: #9147ff; --green: #00c853; --red: #f44;
|
|
5
|
+
}
|
|
6
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
7
|
+
body {
|
|
8
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
9
|
+
background: var(--bg); color: var(--text);
|
|
10
|
+
display: flex; flex-direction: column; height: 100vh; overflow: hidden;
|
|
11
|
+
user-select: none;
|
|
12
|
+
}
|
|
13
|
+
header {
|
|
14
|
+
display: flex; align-items: center; gap: 12px;
|
|
15
|
+
padding: 8px 16px; background: var(--surface); border-bottom: 1px solid var(--border);
|
|
16
|
+
flex-shrink: 0;
|
|
17
|
+
}
|
|
18
|
+
header h1 { font-size: 16px; font-weight: 600; }
|
|
19
|
+
#header-cast-btn { margin-left: auto; }
|
|
20
|
+
#status-bar {
|
|
21
|
+
display: flex; align-items: center; gap: 16px; margin-left: auto; font-size: 12px; color: var(--dim);
|
|
22
|
+
}
|
|
23
|
+
#status-bar .val { color: var(--text); font-variant-numeric: tabular-nums; }
|
|
24
|
+
#header-stop-btn { margin-left: 8px; padding: 4px 14px; font-size: 12px; }
|
|
25
|
+
#status-dot {
|
|
26
|
+
width: 8px; height: 8px; border-radius: 50%; background: var(--red);
|
|
27
|
+
align-self: center;
|
|
28
|
+
}
|
|
29
|
+
#status-dot.ok { background: var(--green); }
|
|
30
|
+
.main { display: flex; flex: 1; overflow: hidden; }
|
|
31
|
+
.video-pane {
|
|
32
|
+
flex: 1; display: flex; align-items: center; justify-content: center;
|
|
33
|
+
background: #000; position: relative; min-width: 0;
|
|
34
|
+
}
|
|
35
|
+
#live-frame {
|
|
36
|
+
max-width: 100%; max-height: 100%; object-fit: contain;
|
|
37
|
+
image-rendering: auto;
|
|
38
|
+
}
|
|
39
|
+
#crosshair {
|
|
40
|
+
position: absolute; pointer-events: none;
|
|
41
|
+
width: 24px; height: 24px;
|
|
42
|
+
border: 2px solid rgba(255,255,255,0.4); border-radius: 50%;
|
|
43
|
+
top: 50%; left: 50%; transform: translate(-50%,-50%);
|
|
44
|
+
display: none;
|
|
45
|
+
}
|
|
46
|
+
#crosshair::before, #crosshair::after {
|
|
47
|
+
content: ''; position: absolute; background: rgba(255,255,255,0.4);
|
|
48
|
+
}
|
|
49
|
+
#crosshair::before { width: 1px; height: 8px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
|
|
50
|
+
#crosshair::after { width: 8px; height: 1px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
|
|
51
|
+
.sidebar {
|
|
52
|
+
width: 260px; flex-shrink: 0; background: var(--surface);
|
|
53
|
+
border-left: 1px solid var(--border); display: flex; flex-direction: column;
|
|
54
|
+
overflow-y: auto;
|
|
55
|
+
}
|
|
56
|
+
.panel { padding: 10px 12px; border-bottom: 1px solid var(--border); }
|
|
57
|
+
.panel h2 {
|
|
58
|
+
font-size: 10px; text-transform: uppercase; letter-spacing: .08em;
|
|
59
|
+
color: var(--dim); margin-bottom: 6px;
|
|
60
|
+
}
|
|
61
|
+
button {
|
|
62
|
+
background: var(--accent); color: #fff; border: none; border-radius: 6px;
|
|
63
|
+
padding: 5px 10px; font-size: 11px; cursor: pointer; font-weight: 500;
|
|
64
|
+
transition: opacity .15s;
|
|
65
|
+
}
|
|
66
|
+
button:hover { opacity: .85; }
|
|
67
|
+
button:active { opacity: .7; }
|
|
68
|
+
button.secondary { background: var(--border); }
|
|
69
|
+
button.danger { background: var(--red); }
|
|
70
|
+
.btn-row { display: flex; gap: 4px; }
|
|
71
|
+
.speed-row {
|
|
72
|
+
display: flex; align-items: center; gap: 6px; margin-top: 6px;
|
|
73
|
+
font-size: 10px; color: var(--dim);
|
|
74
|
+
}
|
|
75
|
+
.speed-row input {
|
|
76
|
+
width: 44px; background: var(--bg); color: var(--text);
|
|
77
|
+
border: 1px solid var(--border); border-radius: 4px; padding: 2px 4px;
|
|
78
|
+
font-size: 10px; text-align: center;
|
|
79
|
+
}
|
|
80
|
+
.pose-readout {
|
|
81
|
+
font-size: 10px; font-family: monospace; line-height: 1.5; color: var(--dim);
|
|
82
|
+
margin-bottom: 6px;
|
|
83
|
+
}
|
|
84
|
+
.pose-readout span { display: block; }
|
|
85
|
+
.pose-readout .val { color: var(--text); }
|
|
86
|
+
.keybind-hint {
|
|
87
|
+
font-size: 10px; color: var(--dim); line-height: 1.6;
|
|
88
|
+
}
|
|
89
|
+
.toast {
|
|
90
|
+
position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
|
|
91
|
+
background: var(--surface); border: 1px solid var(--border); border-radius: 8px;
|
|
92
|
+
padding: 8px 16px; font-size: 13px; opacity: 0; transition: opacity .3s;
|
|
93
|
+
pointer-events: none; z-index: 100;
|
|
94
|
+
}
|
|
95
|
+
.toast.show { opacity: 1; }
|
|
96
|
+
#drag-overlay {
|
|
97
|
+
position: absolute; inset: 0; cursor: grab; z-index: 2;
|
|
98
|
+
}
|
|
99
|
+
#drag-overlay:active { cursor: grabbing; }
|
|
100
|
+
.video-placeholder {
|
|
101
|
+
display: flex; align-items: center; justify-content: center;
|
|
102
|
+
width: 100%; height: 100%;
|
|
103
|
+
}
|
|
104
|
+
.video-placeholder button {
|
|
105
|
+
font-size: 16px; padding: 12px 28px; border-radius: 8px;
|
|
106
|
+
}
|
package/build/utils/adb.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ADB utilities for Quest device communication
|
|
3
3
|
*/
|
|
4
|
+
/** Set the global ADB device target (IP:port or serial). */
|
|
5
|
+
export declare function setAdbDevice(device: string | undefined): void;
|
|
6
|
+
/** Get the global ADB device target. */
|
|
7
|
+
export declare function getAdbDevice(): string | undefined;
|
|
8
|
+
/** Build ADB args with -s <device> prefix when a target device is set. */
|
|
9
|
+
export declare function adbArgs(...args: string[]): string[];
|
|
4
10
|
/**
|
|
5
11
|
* Check if ADB is available on PATH
|
|
6
12
|
*/
|
|
@@ -33,6 +39,12 @@ export declare function getCDPPort(browser?: string): Promise<number>;
|
|
|
33
39
|
* Set up only CDP forwarding (for external URLs that don't need reverse forwarding)
|
|
34
40
|
*/
|
|
35
41
|
export declare function ensureCDPForwarding(browser?: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Re-detect CDP socket after browser launch and update forwarding if needed.
|
|
44
|
+
* This handles the case where the initial forwarding used the generic socket
|
|
45
|
+
* (before the browser had a PID), but the browser created a PID-specific socket.
|
|
46
|
+
*/
|
|
47
|
+
export declare function refreshCDPForwarding(browser?: string): Promise<void>;
|
|
36
48
|
/**
|
|
37
49
|
* Check if USB file transfer is authorized on Quest
|
|
38
50
|
* After reboot, user must click notification to allow file access
|
package/build/utils/adb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../../src/utils/adb.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"adb.d.ts","sourceRoot":"","sources":["../../src/utils/adb.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE7D;AAED,wCAAwC;AACxC,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAKnD;AA+DD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAiBrC;AAoBD;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiB9D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,MAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,MAA6B,GAAG,OAAO,CAAC,OAAO,CAAC,CAmBzG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,MAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,MAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CAkCf;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,MAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe1D;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAUrD;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,GAAG,UAAU,GAAG,cAAc,CAAC;CACtD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAkC3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAE3D"}
|
package/build/utils/adb.js
CHANGED
|
@@ -4,30 +4,48 @@
|
|
|
4
4
|
import which from 'which';
|
|
5
5
|
import net from 'net';
|
|
6
6
|
import { execCommand, execCommandFull } from './exec.js';
|
|
7
|
+
import { verbose } from './verbose.js';
|
|
7
8
|
const CDP_PORT = 9223; // Chrome DevTools Protocol port (Quest browser default)
|
|
9
|
+
/** Escape a string for safe use in adb shell commands. */
|
|
10
|
+
function shellEscape(s) {
|
|
11
|
+
return "'" + s.replace(/'/g, "'\\''") + "'";
|
|
12
|
+
}
|
|
13
|
+
/** Global ADB device target. When set, all adb commands use -s <device>. */
|
|
14
|
+
let targetDevice;
|
|
15
|
+
/** Set the global ADB device target (IP:port or serial). */
|
|
16
|
+
export function setAdbDevice(device) {
|
|
17
|
+
targetDevice = device;
|
|
18
|
+
}
|
|
19
|
+
/** Get the global ADB device target. */
|
|
20
|
+
export function getAdbDevice() {
|
|
21
|
+
return targetDevice;
|
|
22
|
+
}
|
|
23
|
+
/** Build ADB args with -s <device> prefix when a target device is set. */
|
|
24
|
+
export function adbArgs(...args) {
|
|
25
|
+
if (targetDevice) {
|
|
26
|
+
return ["-s", targetDevice, ...args];
|
|
27
|
+
}
|
|
28
|
+
return args;
|
|
29
|
+
}
|
|
8
30
|
/**
|
|
9
31
|
* Get browser process PID
|
|
10
32
|
*/
|
|
11
33
|
async function getBrowserPID(packageName) {
|
|
12
34
|
try {
|
|
13
|
-
const result = await execCommandFull('adb',
|
|
14
|
-
|
|
35
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'pidof', shellEscape(packageName)));
|
|
36
|
+
verbose('getBrowserPID pidof output:', result.stdout?.trim());
|
|
37
|
+
if (!result.stdout?.trim())
|
|
15
38
|
return null;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const parts = line.trim().split(/\s+/);
|
|
22
|
-
if (parts.length >= 2) {
|
|
23
|
-
return parseInt(parts[1], 10); // PID is second column
|
|
24
|
-
}
|
|
25
|
-
}
|
|
39
|
+
const pid = parseInt(result.stdout.trim().split(/\s+/)[0], 10);
|
|
40
|
+
if (isNaN(pid))
|
|
41
|
+
return null;
|
|
42
|
+
verbose('getBrowserPID found PID:', pid, 'for', packageName);
|
|
43
|
+
return pid;
|
|
26
44
|
}
|
|
27
|
-
catch {
|
|
45
|
+
catch (e) {
|
|
46
|
+
verbose('getBrowserPID error:', e);
|
|
28
47
|
return null;
|
|
29
48
|
}
|
|
30
|
-
return null;
|
|
31
49
|
}
|
|
32
50
|
/**
|
|
33
51
|
* Detect CDP socket for a browser
|
|
@@ -36,29 +54,36 @@ async function getBrowserPID(packageName) {
|
|
|
36
54
|
async function detectCDPSocket(packageName) {
|
|
37
55
|
const pid = await getBrowserPID(packageName);
|
|
38
56
|
if (pid) {
|
|
39
|
-
// Try PID-based socket
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
57
|
+
// Try PID-based socket, with retries (socket may take a moment to appear)
|
|
58
|
+
const socketName = `chrome_devtools_remote_${pid}`;
|
|
59
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
60
|
+
try {
|
|
61
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'cat', '/proc/net/unix'));
|
|
62
|
+
if (result.stdout.includes(socketName)) {
|
|
63
|
+
verbose('detectCDPSocket: found PID-specific socket:', socketName, `(attempt ${attempt + 1})`);
|
|
64
|
+
return socketName;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// ignore
|
|
69
|
+
}
|
|
70
|
+
if (attempt < 4) {
|
|
71
|
+
verbose('detectCDPSocket: PID-specific socket not found yet, retrying in 1s...', `(attempt ${attempt + 1})`);
|
|
72
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
47
73
|
}
|
|
48
74
|
}
|
|
49
|
-
|
|
50
|
-
// Fall through to default
|
|
51
|
-
}
|
|
75
|
+
verbose('detectCDPSocket: PID-specific socket not found after retries:', socketName);
|
|
52
76
|
}
|
|
53
77
|
// Default: generic socket (Quest Browser)
|
|
78
|
+
verbose('detectCDPSocket: falling back to generic chrome_devtools_remote');
|
|
54
79
|
return 'chrome_devtools_remote';
|
|
55
80
|
}
|
|
56
81
|
/**
|
|
57
|
-
* Get CDP port for a socket
|
|
58
|
-
*
|
|
82
|
+
* Get CDP port for a socket.
|
|
83
|
+
* Always use 9223 regardless of socket type for consistency.
|
|
59
84
|
*/
|
|
60
|
-
function getCDPPortForSocket(
|
|
61
|
-
return
|
|
85
|
+
function getCDPPortForSocket(_socket) {
|
|
86
|
+
return CDP_PORT;
|
|
62
87
|
}
|
|
63
88
|
/**
|
|
64
89
|
* Check if ADB is available on PATH
|
|
@@ -105,9 +130,23 @@ async function restartADBServer() {
|
|
|
105
130
|
*/
|
|
106
131
|
export async function checkADBDevices(retryCount = 0) {
|
|
107
132
|
try {
|
|
133
|
+
const target = getAdbDevice();
|
|
108
134
|
const output = await execCommand('adb', ['devices']);
|
|
109
135
|
const lines = output.trim().split('\n').slice(1); // Skip header
|
|
110
|
-
|
|
136
|
+
let devices = lines.filter(line => line.trim() && !line.includes('List of devices'));
|
|
137
|
+
// If a target device is configured, check it's in the list
|
|
138
|
+
if (target) {
|
|
139
|
+
const targetOnline = devices.some(line => line.includes(target) && line.includes('device'));
|
|
140
|
+
if (!targetOnline) {
|
|
141
|
+
console.error(`Error: Configured device ${target} not found or offline`);
|
|
142
|
+
console.error('');
|
|
143
|
+
console.error('Check connection: adb connect ' + target);
|
|
144
|
+
console.error('');
|
|
145
|
+
process.exit(1);
|
|
146
|
+
}
|
|
147
|
+
// Filter to just the target device for the count
|
|
148
|
+
devices = devices.filter(line => line.includes(target));
|
|
149
|
+
}
|
|
111
150
|
if (devices.length === 0) {
|
|
112
151
|
console.error('Error: No ADB devices connected');
|
|
113
152
|
console.error('');
|
|
@@ -168,18 +207,18 @@ export async function ensurePortForwarding(port, browser = 'com.oculus.browser')
|
|
|
168
207
|
const cdpSocket = await detectCDPSocket(browser);
|
|
169
208
|
const cdpPort = getCDPPortForSocket(cdpSocket);
|
|
170
209
|
// Check reverse forwarding (Quest -> Host for dev server)
|
|
171
|
-
const reverseList = await execCommand('adb',
|
|
210
|
+
const reverseList = await execCommand('adb', adbArgs('reverse', '--list'));
|
|
172
211
|
const reverseExists = reverseList.includes(`tcp:${port}`);
|
|
173
212
|
if (reverseExists) {
|
|
174
213
|
console.log(`ADB reverse port forwarding already set up: Quest:${port} -> Host:${port}`);
|
|
175
214
|
}
|
|
176
215
|
else {
|
|
177
|
-
await execCommand('adb',
|
|
216
|
+
await execCommand('adb', adbArgs('reverse', `tcp:${port}`, `tcp:${port}`));
|
|
178
217
|
console.log(`ADB reverse port forwarding set up: Quest:${port} -> Host:${port}`);
|
|
179
218
|
}
|
|
180
219
|
// Check forward forwarding (Host -> Quest for CDP)
|
|
181
220
|
// First check if ADB already has this forwarding set up
|
|
182
|
-
const forwardList = await execCommand('adb',
|
|
221
|
+
const forwardList = await execCommand('adb', adbArgs('forward', '--list'));
|
|
183
222
|
const forwardExists = forwardList.includes(`tcp:${cdpPort}`) && forwardList.includes(cdpSocket);
|
|
184
223
|
if (forwardExists) {
|
|
185
224
|
console.log(`CDP port ${cdpPort} forwarding already set up`);
|
|
@@ -198,7 +237,7 @@ export async function ensurePortForwarding(port, browser = 'com.oculus.browser')
|
|
|
198
237
|
console.error('');
|
|
199
238
|
process.exit(1);
|
|
200
239
|
}
|
|
201
|
-
await execCommand('adb',
|
|
240
|
+
await execCommand('adb', adbArgs('forward', `tcp:${cdpPort}`, `localabstract:${cdpSocket}`));
|
|
202
241
|
console.log(`ADB forward port forwarding set up: Host:${cdpPort} -> Quest:${cdpSocket} (CDP)`);
|
|
203
242
|
}
|
|
204
243
|
}
|
|
@@ -212,10 +251,13 @@ export async function ensurePortForwarding(port, browser = 'com.oculus.browser')
|
|
|
212
251
|
*/
|
|
213
252
|
export async function isBrowserRunning(browser = 'com.oculus.browser') {
|
|
214
253
|
try {
|
|
215
|
-
const result = await execCommandFull('adb',
|
|
216
|
-
|
|
254
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'pidof', shellEscape(browser)));
|
|
255
|
+
const running = result.code === 0 && result.stdout.trim().length > 0;
|
|
256
|
+
verbose('isBrowserRunning:', browser, running ? 'YES' : 'NO');
|
|
257
|
+
return running;
|
|
217
258
|
}
|
|
218
259
|
catch (error) {
|
|
260
|
+
verbose('isBrowserRunning error:', error);
|
|
219
261
|
return false;
|
|
220
262
|
}
|
|
221
263
|
}
|
|
@@ -225,16 +267,7 @@ export async function isBrowserRunning(browser = 'com.oculus.browser') {
|
|
|
225
267
|
export async function launchBrowser(url, browser = 'com.oculus.browser') {
|
|
226
268
|
console.log('Launching browser...');
|
|
227
269
|
try {
|
|
228
|
-
await execCommand('adb',
|
|
229
|
-
'shell',
|
|
230
|
-
'am',
|
|
231
|
-
'start',
|
|
232
|
-
'-a',
|
|
233
|
-
'android.intent.action.VIEW',
|
|
234
|
-
'-d',
|
|
235
|
-
url,
|
|
236
|
-
browser
|
|
237
|
-
]);
|
|
270
|
+
await execCommand('adb', adbArgs('shell', 'am', 'start', '-a', 'android.intent.action.VIEW', '-d', url, browser));
|
|
238
271
|
console.log(`Browser launched with URL: ${url}`);
|
|
239
272
|
return true;
|
|
240
273
|
}
|
|
@@ -259,7 +292,7 @@ export async function ensureCDPForwarding(browser = 'com.oculus.browser') {
|
|
|
259
292
|
const cdpSocket = await detectCDPSocket(browser);
|
|
260
293
|
const cdpPort = getCDPPortForSocket(cdpSocket);
|
|
261
294
|
// Check forward forwarding (Host -> Quest for CDP)
|
|
262
|
-
const forwardList = await execCommand('adb',
|
|
295
|
+
const forwardList = await execCommand('adb', adbArgs('forward', '--list'));
|
|
263
296
|
const forwardExists = forwardList.includes(`tcp:${cdpPort}`) && forwardList.includes(cdpSocket);
|
|
264
297
|
if (forwardExists) {
|
|
265
298
|
console.log(`CDP port ${cdpPort} forwarding already set up`);
|
|
@@ -278,7 +311,7 @@ export async function ensureCDPForwarding(browser = 'com.oculus.browser') {
|
|
|
278
311
|
console.error('');
|
|
279
312
|
process.exit(1);
|
|
280
313
|
}
|
|
281
|
-
await execCommand('adb',
|
|
314
|
+
await execCommand('adb', adbArgs('forward', `tcp:${cdpPort}`, `localabstract:${cdpSocket}`));
|
|
282
315
|
console.log(`ADB forward port forwarding set up: Host:${cdpPort} -> Quest:${cdpSocket} (CDP)`);
|
|
283
316
|
}
|
|
284
317
|
}
|
|
@@ -287,12 +320,44 @@ export async function ensureCDPForwarding(browser = 'com.oculus.browser') {
|
|
|
287
320
|
process.exit(1);
|
|
288
321
|
}
|
|
289
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Re-detect CDP socket after browser launch and update forwarding if needed.
|
|
325
|
+
* This handles the case where the initial forwarding used the generic socket
|
|
326
|
+
* (before the browser had a PID), but the browser created a PID-specific socket.
|
|
327
|
+
*/
|
|
328
|
+
export async function refreshCDPForwarding(browser = 'com.oculus.browser') {
|
|
329
|
+
try {
|
|
330
|
+
const cdpSocket = await detectCDPSocket(browser);
|
|
331
|
+
const cdpPort = getCDPPortForSocket(cdpSocket);
|
|
332
|
+
// Check if forwarding already points to the correct socket
|
|
333
|
+
const forwardList = await execCommand('adb', adbArgs('forward', '--list'));
|
|
334
|
+
verbose('refreshCDPForwarding: detected socket:', cdpSocket, 'port:', cdpPort);
|
|
335
|
+
verbose('refreshCDPForwarding: current forwards:', forwardList.trim());
|
|
336
|
+
// Check exact match: the forward line must end with the exact socket name
|
|
337
|
+
const expectedForward = `tcp:${cdpPort} localabstract:${cdpSocket}`;
|
|
338
|
+
if (forwardList.includes(expectedForward)) {
|
|
339
|
+
verbose('refreshCDPForwarding: forwarding already correct');
|
|
340
|
+
return; // Already correct
|
|
341
|
+
}
|
|
342
|
+
// Remove existing forwarding on CDP port and re-create with correct socket
|
|
343
|
+
if (forwardList.includes(`tcp:${cdpPort}`)) {
|
|
344
|
+
verbose('refreshCDPForwarding: removing stale forwarding on port', cdpPort);
|
|
345
|
+
await execCommandFull('adb', adbArgs('forward', '--remove', `tcp:${cdpPort}`));
|
|
346
|
+
}
|
|
347
|
+
await execCommand('adb', adbArgs('forward', `tcp:${cdpPort}`, `localabstract:${cdpSocket}`));
|
|
348
|
+
console.log(`CDP forwarding updated: Host:${cdpPort} -> Quest:${cdpSocket}`);
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
// Non-fatal: CDP may still work with existing forwarding
|
|
352
|
+
console.log('Warning: Could not refresh CDP forwarding:', error.message);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
290
355
|
/**
|
|
291
356
|
* Check if USB file transfer is authorized on Quest
|
|
292
357
|
* After reboot, user must click notification to allow file access
|
|
293
358
|
*/
|
|
294
359
|
export async function checkUSBFileTransfer() {
|
|
295
|
-
const result = await execCommandFull('adb',
|
|
360
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'ls', '/sdcard/'));
|
|
296
361
|
if (result.code !== 0 ||
|
|
297
362
|
result.stdout.includes('Permission denied') ||
|
|
298
363
|
result.stderr.includes('Permission denied')) {
|
|
@@ -311,7 +376,7 @@ export async function checkUSBFileTransfer() {
|
|
|
311
376
|
* Screenshots cannot be taken when the display is off
|
|
312
377
|
*/
|
|
313
378
|
export async function checkQuestAwake() {
|
|
314
|
-
const result = await execCommandFull('adb',
|
|
379
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'dumpsys', 'power'));
|
|
315
380
|
if (result.stdout.includes('mWakefulness=Asleep')) {
|
|
316
381
|
console.error('Error: Quest display is off');
|
|
317
382
|
console.error('');
|
|
@@ -324,7 +389,7 @@ export async function checkQuestAwake() {
|
|
|
324
389
|
* Get Quest battery info as structured data
|
|
325
390
|
*/
|
|
326
391
|
export async function getBatteryInfo() {
|
|
327
|
-
const result = await execCommandFull('adb',
|
|
392
|
+
const result = await execCommandFull('adb', adbArgs('shell', 'dumpsys', 'battery'));
|
|
328
393
|
if (result.code !== 0) {
|
|
329
394
|
throw new Error('Failed to get battery status');
|
|
330
395
|
}
|
package/build/utils/adb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adb.js","sourceRoot":"","sources":["../../src/utils/adb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adb.js","sourceRoot":"","sources":["../../src/utils/adb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Casting APK extraction and installation utilities.
|
|
3
|
+
*
|
|
4
|
+
* The casting service APK ships inside Meta Quest Developer Hub (MQDH).
|
|
5
|
+
*
|
|
6
|
+
* Supported MQDH sources:
|
|
7
|
+
* - macOS: /Applications/Meta Quest Developer Hub.app (or any .app bundle)
|
|
8
|
+
* - macOS: .dmg file (mounted, APKs extracted from the .app inside)
|
|
9
|
+
* - Windows: .exe.zip or .exe (NSIS installer, extracted via 7z)
|
|
10
|
+
* - Any platform: pre-extracted directory containing the APK files
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Try to find MQDH on this machine without user input.
|
|
14
|
+
* Returns the path if found, null otherwise.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findInstalledMqdh(): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Extract the casting APK from a MQDH source.
|
|
19
|
+
*
|
|
20
|
+
* Accepts:
|
|
21
|
+
* - macOS .app bundle (e.g. /Applications/Meta Quest Developer Hub.app)
|
|
22
|
+
* - macOS .dmg disk image
|
|
23
|
+
* - Windows .exe.zip or .exe (requires 7z)
|
|
24
|
+
* - Any directory containing the APK file
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractCastingApk(source: string): Promise<string>;
|
|
27
|
+
/** Check whether the casting APK has been extracted locally */
|
|
28
|
+
export declare function hasCastingApk(): boolean;
|
|
29
|
+
/** Check if casting service is installed on the connected Quest device */
|
|
30
|
+
export declare function isCastingInstalled(device: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Install the casting APK onto the Quest device.
|
|
33
|
+
*
|
|
34
|
+
* Uses the release APK which matches the system app's signing certificate.
|
|
35
|
+
* This installs as UPDATED_SYSTEM_APP, preserving privileged permissions.
|
|
36
|
+
*/
|
|
37
|
+
export declare function installCastingApk(device: string): Promise<void>;
|
|
38
|
+
/** Ensure casting service is installed, installing if needed. */
|
|
39
|
+
export declare function ensureCastingInstalled(device: string): Promise<boolean>;
|
|
40
|
+
//# sourceMappingURL=casting-apk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"casting-apk.d.ts","sourceRoot":"","sources":["../../src/utils/casting-apk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuBH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAWjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CvE;AAuGD,+DAA+D;AAC/D,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,0EAA0E;AAC1E,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASzE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAerE;AAED,iEAAiE;AACjE,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB7E"}
|