@yume-chan/android-bin 0.0.18 → 0.0.20
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/CHANGELOG.json +21 -0
- package/CHANGELOG.md +14 -1
- package/esm/bu.d.ts +14 -14
- package/esm/bu.js +13 -13
- package/esm/bug-report.d.ts +37 -37
- package/esm/bug-report.d.ts.map +1 -1
- package/esm/bug-report.js +136 -135
- package/esm/bug-report.js.map +1 -1
- package/esm/cmd.d.ts +15 -0
- package/esm/cmd.d.ts.map +1 -0
- package/esm/cmd.js +54 -0
- package/esm/cmd.js.map +1 -0
- package/esm/demo-mode.d.ts +43 -42
- package/esm/demo-mode.d.ts.map +1 -1
- package/esm/demo-mode.js +179 -178
- package/esm/demo-mode.js.map +1 -1
- package/esm/dumpsys.d.ts +4 -0
- package/esm/dumpsys.d.ts.map +1 -0
- package/esm/dumpsys.js +4 -0
- package/esm/dumpsys.js.map +1 -0
- package/esm/index.d.ts +6 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +7 -5
- package/esm/index.js.map +1 -1
- package/esm/logcat.d.ts +91 -89
- package/esm/logcat.d.ts.map +1 -1
- package/esm/logcat.js +296 -200
- package/esm/logcat.js.map +1 -1
- package/esm/overlay-display.d.ts +21 -0
- package/esm/overlay-display.d.ts.map +1 -0
- package/esm/overlay-display.js +78 -0
- package/esm/overlay-display.js.map +1 -0
- package/esm/pm.d.ts +139 -0
- package/esm/pm.d.ts.map +1 -0
- package/esm/pm.js +125 -0
- package/esm/pm.js.map +1 -0
- package/esm/settings.d.ts +12 -12
- package/esm/settings.d.ts.map +1 -1
- package/esm/settings.js +40 -24
- package/esm/settings.js.map +1 -1
- package/package.json +11 -10
- package/src/bug-report.ts +3 -3
- package/src/cmd.ts +67 -0
- package/src/demo-mode.ts +4 -3
- package/src/index.ts +6 -4
- package/src/logcat.ts +224 -25
- package/src/overlay-display.ts +115 -0
- package/src/pm.ts +281 -0
- package/src/settings.ts +54 -26
- package/tsconfig.build.json +11 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/esm/logcat.js
CHANGED
|
@@ -1,201 +1,297 @@
|
|
|
1
|
-
// cspell: ignore logcat
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
LogId[LogId["
|
|
12
|
-
LogId[LogId["
|
|
13
|
-
LogId[LogId["
|
|
14
|
-
LogId[LogId["
|
|
15
|
-
LogId[LogId["
|
|
16
|
-
LogId[LogId["
|
|
17
|
-
LogId[LogId["
|
|
18
|
-
LogId[LogId["
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
25
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
26
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
27
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
28
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
29
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
30
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
31
|
-
AndroidLogPriority[AndroidLogPriority["
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[AndroidLogPriority.
|
|
37
|
-
[AndroidLogPriority.
|
|
38
|
-
[AndroidLogPriority.
|
|
39
|
-
[AndroidLogPriority.
|
|
40
|
-
[AndroidLogPriority.
|
|
41
|
-
[AndroidLogPriority.
|
|
42
|
-
[AndroidLogPriority.
|
|
43
|
-
[AndroidLogPriority.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
LogcatFormat[LogcatFormat["
|
|
49
|
-
LogcatFormat[LogcatFormat["
|
|
50
|
-
LogcatFormat[LogcatFormat["
|
|
51
|
-
LogcatFormat[LogcatFormat["
|
|
52
|
-
LogcatFormat[LogcatFormat["
|
|
53
|
-
LogcatFormat[LogcatFormat["
|
|
54
|
-
LogcatFormat[LogcatFormat["
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.uint16("
|
|
61
|
-
.
|
|
62
|
-
.
|
|
63
|
-
.uint32("
|
|
64
|
-
.uint32("
|
|
65
|
-
.uint32("
|
|
66
|
-
.uint32("
|
|
67
|
-
.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return
|
|
94
|
-
}
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
1
|
+
// cspell: ignore logcat
|
|
2
|
+
// cspell: ignore usec
|
|
3
|
+
import { AdbCommandBase, AdbSubprocessNoneProtocol } from "@yume-chan/adb";
|
|
4
|
+
import { BufferedTransformStream, DecodeUtf8Stream, SplitStringStream, WrapReadableStream, WritableStream, } from "@yume-chan/stream-extra";
|
|
5
|
+
import Struct, { decodeUtf8 } from "@yume-chan/struct";
|
|
6
|
+
// `adb logcat` is an alias to `adb shell logcat`
|
|
7
|
+
// so instead of adding to core library, it's implemented here
|
|
8
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/liblog/include/android/log.h;l=141;drc=82b5738732161dbaafb2e2f25cce19cd26b9157d
|
|
9
|
+
export var LogId;
|
|
10
|
+
(function (LogId) {
|
|
11
|
+
LogId[LogId["All"] = -1] = "All";
|
|
12
|
+
LogId[LogId["Main"] = 0] = "Main";
|
|
13
|
+
LogId[LogId["Radio"] = 1] = "Radio";
|
|
14
|
+
LogId[LogId["Events"] = 2] = "Events";
|
|
15
|
+
LogId[LogId["System"] = 3] = "System";
|
|
16
|
+
LogId[LogId["Crash"] = 4] = "Crash";
|
|
17
|
+
LogId[LogId["Stats"] = 5] = "Stats";
|
|
18
|
+
LogId[LogId["Security"] = 6] = "Security";
|
|
19
|
+
LogId[LogId["Kernel"] = 7] = "Kernel";
|
|
20
|
+
})(LogId = LogId || (LogId = {}));
|
|
21
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/liblog/include/android/log.h;l=73;drc=82b5738732161dbaafb2e2f25cce19cd26b9157d
|
|
22
|
+
export var AndroidLogPriority;
|
|
23
|
+
(function (AndroidLogPriority) {
|
|
24
|
+
AndroidLogPriority[AndroidLogPriority["Unknown"] = 0] = "Unknown";
|
|
25
|
+
AndroidLogPriority[AndroidLogPriority["Default"] = 1] = "Default";
|
|
26
|
+
AndroidLogPriority[AndroidLogPriority["Verbose"] = 2] = "Verbose";
|
|
27
|
+
AndroidLogPriority[AndroidLogPriority["Debug"] = 3] = "Debug";
|
|
28
|
+
AndroidLogPriority[AndroidLogPriority["Info"] = 4] = "Info";
|
|
29
|
+
AndroidLogPriority[AndroidLogPriority["Warn"] = 5] = "Warn";
|
|
30
|
+
AndroidLogPriority[AndroidLogPriority["Error"] = 6] = "Error";
|
|
31
|
+
AndroidLogPriority[AndroidLogPriority["Fatal"] = 7] = "Fatal";
|
|
32
|
+
AndroidLogPriority[AndroidLogPriority["Silent"] = 8] = "Silent";
|
|
33
|
+
})(AndroidLogPriority = AndroidLogPriority || (AndroidLogPriority = {}));
|
|
34
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/liblog/logprint.cpp;l=140;drc=8dbf3b2bb6b6d1652d9797e477b9abd03278bb79
|
|
35
|
+
export const AndroidLogPriorityToCharacter = {
|
|
36
|
+
[AndroidLogPriority.Unknown]: "?",
|
|
37
|
+
[AndroidLogPriority.Default]: "?",
|
|
38
|
+
[AndroidLogPriority.Verbose]: "V",
|
|
39
|
+
[AndroidLogPriority.Debug]: "D",
|
|
40
|
+
[AndroidLogPriority.Info]: "I",
|
|
41
|
+
[AndroidLogPriority.Warn]: "W",
|
|
42
|
+
[AndroidLogPriority.Error]: "E",
|
|
43
|
+
[AndroidLogPriority.Fatal]: "F",
|
|
44
|
+
[AndroidLogPriority.Silent]: "S",
|
|
45
|
+
};
|
|
46
|
+
export var LogcatFormat;
|
|
47
|
+
(function (LogcatFormat) {
|
|
48
|
+
LogcatFormat[LogcatFormat["Brief"] = 0] = "Brief";
|
|
49
|
+
LogcatFormat[LogcatFormat["Process"] = 1] = "Process";
|
|
50
|
+
LogcatFormat[LogcatFormat["Tag"] = 2] = "Tag";
|
|
51
|
+
LogcatFormat[LogcatFormat["Thread"] = 3] = "Thread";
|
|
52
|
+
LogcatFormat[LogcatFormat["Raw"] = 4] = "Raw";
|
|
53
|
+
LogcatFormat[LogcatFormat["Time"] = 5] = "Time";
|
|
54
|
+
LogcatFormat[LogcatFormat["ThreadTime"] = 6] = "ThreadTime";
|
|
55
|
+
LogcatFormat[LogcatFormat["Long"] = 7] = "Long";
|
|
56
|
+
})(LogcatFormat = LogcatFormat || (LogcatFormat = {}));
|
|
57
|
+
const NANOSECONDS_PER_SECOND = BigInt(1e9);
|
|
58
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/liblog/include/log/log_read.h;l=39;drc=82b5738732161dbaafb2e2f25cce19cd26b9157d
|
|
59
|
+
export const LoggerEntry = new Struct({ littleEndian: true })
|
|
60
|
+
.uint16("payloadSize")
|
|
61
|
+
.uint16("headerSize")
|
|
62
|
+
.int32("pid")
|
|
63
|
+
.uint32("tid")
|
|
64
|
+
.uint32("seconds")
|
|
65
|
+
.uint32("nanoseconds")
|
|
66
|
+
.uint32("logId")
|
|
67
|
+
.uint32("uid")
|
|
68
|
+
.extra({
|
|
69
|
+
get timestamp() {
|
|
70
|
+
return (BigInt(this.seconds) * NANOSECONDS_PER_SECOND +
|
|
71
|
+
BigInt(this.nanoseconds));
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
function padZero(number, length) {
|
|
75
|
+
return number.toString().padStart(length, "0");
|
|
76
|
+
}
|
|
77
|
+
function formatSeconds(seconds, modifiers) {
|
|
78
|
+
if (modifiers.monotonic) {
|
|
79
|
+
return padZero(seconds, 6);
|
|
80
|
+
}
|
|
81
|
+
if (modifiers.epoch) {
|
|
82
|
+
return padZero(seconds, 19);
|
|
83
|
+
}
|
|
84
|
+
const date = new Date(seconds * 1000);
|
|
85
|
+
const month = padZero(date.getMonth() + 1, 2);
|
|
86
|
+
const day = padZero(date.getDate(), 2);
|
|
87
|
+
const hour = padZero(date.getHours(), 2);
|
|
88
|
+
const minute = padZero(date.getMinutes(), 2);
|
|
89
|
+
const second = padZero(date.getSeconds(), 2);
|
|
90
|
+
const result = `${month}-${day} ${hour}:${minute}:${second}`;
|
|
91
|
+
if (modifiers.year) {
|
|
92
|
+
const year = padZero(date.getFullYear(), 4);
|
|
93
|
+
return `${year}-${result}`;
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
function formatNanoseconds(nanoseconds, modifiers) {
|
|
98
|
+
if (modifiers.nanoseconds) {
|
|
99
|
+
return padZero(nanoseconds, 9);
|
|
100
|
+
}
|
|
101
|
+
if (modifiers.microseconds) {
|
|
102
|
+
return padZero(nanoseconds / 1000, 6);
|
|
103
|
+
}
|
|
104
|
+
return padZero(nanoseconds / 1000000, 3);
|
|
105
|
+
}
|
|
106
|
+
function formatTimezone(seconds, modifiers) {
|
|
107
|
+
if (!modifiers.timezone || modifiers.monotonic || modifiers.epoch) {
|
|
108
|
+
return "";
|
|
109
|
+
}
|
|
110
|
+
const date = new Date(seconds * 1000);
|
|
111
|
+
const offset = date.getTimezoneOffset();
|
|
112
|
+
const sign = offset <= 0 ? "+" : "-";
|
|
113
|
+
const absolute = Math.abs(offset);
|
|
114
|
+
const hours = (absolute / 60) | 0;
|
|
115
|
+
const minutes = absolute % 60;
|
|
116
|
+
// prettier-ignore
|
|
117
|
+
return ` ${sign}${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
|
|
118
|
+
}
|
|
119
|
+
function formatTime(seconds, nanoseconds, modifiers) {
|
|
120
|
+
const secondsString = formatSeconds(seconds, modifiers);
|
|
121
|
+
const nanosecondsString = formatNanoseconds(nanoseconds, modifiers);
|
|
122
|
+
const zoneString = formatTimezone(seconds, modifiers);
|
|
123
|
+
return `${secondsString}.${nanosecondsString}${zoneString}`;
|
|
124
|
+
}
|
|
125
|
+
function formatUid(uid, modifiers, suffix) {
|
|
126
|
+
return modifiers.uid ? `${uid.toString().padStart(5)}${suffix}` : "";
|
|
127
|
+
}
|
|
128
|
+
function getFormatPrefix(entry, format, modifiers) {
|
|
129
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/liblog/logprint.cpp;l=1415;drc=8dbf3b2bb6b6d1652d9797e477b9abd03278bb79
|
|
130
|
+
switch (format) {
|
|
131
|
+
// TODO: implement other formats
|
|
132
|
+
case LogcatFormat.Tag:
|
|
133
|
+
// prettier-ignore
|
|
134
|
+
return `${AndroidLogPriorityToCharacter[entry.priority]}/${entry.tag.padEnd(8)}: `;
|
|
135
|
+
case LogcatFormat.Process:
|
|
136
|
+
// prettier-ignore
|
|
137
|
+
return `${AndroidLogPriorityToCharacter[entry.priority]}(${formatUid(entry.uid, modifiers, ":")}${entry.pid.toString().padStart(5)}) `;
|
|
138
|
+
case LogcatFormat.Thread:
|
|
139
|
+
// prettier-ignore
|
|
140
|
+
return `${AndroidLogPriorityToCharacter[entry.priority]}(${formatUid(entry.uid, modifiers, ":")}${entry.pid.toString().padStart(5)}:${entry.tid.toString().padStart(5)}) `;
|
|
141
|
+
case LogcatFormat.Raw:
|
|
142
|
+
return "";
|
|
143
|
+
case LogcatFormat.Time:
|
|
144
|
+
// prettier-ignore
|
|
145
|
+
return `${formatTime(entry.seconds, entry.nanoseconds, modifiers)} ${AndroidLogPriorityToCharacter[entry.priority]}/${entry.tag.padEnd(8)}(${formatUid(entry.uid, modifiers, ":")}${entry.pid.toString().padStart(5)}): `;
|
|
146
|
+
case LogcatFormat.ThreadTime:
|
|
147
|
+
// prettier-ignore
|
|
148
|
+
return `${formatTime(entry.seconds, entry.nanoseconds, modifiers)} ${formatUid(entry.uid, modifiers, " ")}${entry.pid.toString().padStart(5)} ${entry.tid.toString().padStart(5)} ${AndroidLogPriorityToCharacter[entry.priority]} ${entry.tag.toString().padEnd(8)}: `;
|
|
149
|
+
case LogcatFormat.Brief:
|
|
150
|
+
default:
|
|
151
|
+
// prettier-ignore
|
|
152
|
+
return `${AndroidLogPriorityToCharacter[entry.priority]}/${entry.tag.padEnd(8)}(${formatUid(entry.uid, modifiers, ":")}${entry.pid.toString().padStart(5)}): `;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function getFormatSuffix(entry, format) {
|
|
156
|
+
switch (format) {
|
|
157
|
+
case LogcatFormat.Process:
|
|
158
|
+
return ` (${entry.tag})`;
|
|
159
|
+
default:
|
|
160
|
+
return "";
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function formatEntryWrapLine(entry, format, modifiers) {
|
|
164
|
+
const prefix = getFormatPrefix(entry, format, modifiers);
|
|
165
|
+
const suffix = getFormatSuffix(entry, format);
|
|
166
|
+
return (prefix + entry.message.replaceAll("\n", suffix + "\n" + prefix) + suffix);
|
|
167
|
+
}
|
|
168
|
+
function AndroidLogEntryToString(format = LogcatFormat.ThreadTime, modifiers = {}) {
|
|
169
|
+
switch (format) {
|
|
170
|
+
case LogcatFormat.Long:
|
|
171
|
+
// prettier-ignore
|
|
172
|
+
return `[ ${formatTime(this.seconds, this.nanoseconds, modifiers)} ${formatUid(this.uid, modifiers, ":")}${this.pid.toString().padStart(5)}:${this.tid.toString().padStart(5)} ${AndroidLogPriorityToCharacter[this.priority]}/${this.tag.padEnd(8)} ]\n${this.message}\n`;
|
|
173
|
+
default:
|
|
174
|
+
return formatEntryWrapLine(this, format, modifiers);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function findTagEnd(payload) {
|
|
178
|
+
for (const separator of [0, " ".charCodeAt(0), ":".charCodeAt(0)]) {
|
|
179
|
+
const index = payload.indexOf(separator);
|
|
180
|
+
if (index !== -1) {
|
|
181
|
+
return index;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
const index = payload.findIndex((x) => x >= 0x7f);
|
|
185
|
+
if (index !== -1) {
|
|
186
|
+
return index;
|
|
187
|
+
}
|
|
188
|
+
return payload.length;
|
|
189
|
+
}
|
|
190
|
+
export async function deserializeAndroidLogEntry(stream) {
|
|
191
|
+
const entry = (await LoggerEntry.deserialize(stream));
|
|
192
|
+
if (entry.headerSize !== LoggerEntry.size) {
|
|
193
|
+
await stream.readExactly(entry.headerSize - LoggerEntry.size);
|
|
194
|
+
}
|
|
195
|
+
let payload = await stream.readExactly(entry.payloadSize);
|
|
196
|
+
// https://cs.android.com/android/platform/superproject/+/master:system/logging/logcat/logcat.cpp;l=193-194;drc=bbe77d66e7bee8bd1f0bc7e5492b5376b0207ef6
|
|
197
|
+
// TODO: payload for some log IDs are in binary format.
|
|
198
|
+
entry.priority = payload[0];
|
|
199
|
+
payload = payload.subarray(1);
|
|
200
|
+
const tagEnd = findTagEnd(payload);
|
|
201
|
+
entry.tag = decodeUtf8(payload.subarray(0, tagEnd));
|
|
202
|
+
entry.message =
|
|
203
|
+
tagEnd < payload.length - 1
|
|
204
|
+
? decodeUtf8(payload.subarray(tagEnd + 1))
|
|
205
|
+
: "";
|
|
206
|
+
entry.toString = AndroidLogEntryToString;
|
|
207
|
+
return entry;
|
|
208
|
+
}
|
|
209
|
+
class Logcat extends AdbCommandBase {
|
|
210
|
+
static logIdToName(id) {
|
|
211
|
+
return LogId[id];
|
|
212
|
+
}
|
|
213
|
+
static logNameToId(name) {
|
|
214
|
+
const key = name[0].toUpperCase() + name.substring(1);
|
|
215
|
+
return LogId[key];
|
|
216
|
+
}
|
|
217
|
+
static joinLogId(ids) {
|
|
218
|
+
return ids.map((id) => Logcat.logIdToName(id)).join(",");
|
|
219
|
+
}
|
|
220
|
+
static parseSize(value, multiplier) {
|
|
221
|
+
const MULTIPLIERS = ["", "Ki", "Mi", "Gi"];
|
|
222
|
+
return value * 1024 ** (MULTIPLIERS.indexOf(multiplier) || 0);
|
|
223
|
+
}
|
|
224
|
+
// TODO: logcat: Support output format before Android 10
|
|
225
|
+
// ref https://android-review.googlesource.com/c/platform/system/core/+/748128
|
|
226
|
+
static LOG_SIZE_REGEX_10 = /(.*): ring buffer is (.*) (.*)B \((.*) (.*)B consumed\), max entry is (.*) B, max payload is (.*) B/;
|
|
227
|
+
// Android 11 added `readable` part
|
|
228
|
+
// ref https://android-review.googlesource.com/c/platform/system/core/+/1390940
|
|
229
|
+
static LOG_SIZE_REGEX_11 = /(.*): ring buffer is (.*) (.*)B \((.*) (.*)B consumed, (.*) (.*)B readable\), max entry is (.*) B, max payload is (.*) B/;
|
|
230
|
+
async getLogSize(ids) {
|
|
231
|
+
const { stdout } = await this.adb.subprocess.spawn([
|
|
232
|
+
"logcat",
|
|
233
|
+
"-g",
|
|
234
|
+
...(ids ? ["-b", Logcat.joinLogId(ids)] : []),
|
|
235
|
+
]);
|
|
236
|
+
const result = [];
|
|
237
|
+
await stdout
|
|
238
|
+
.pipeThrough(new DecodeUtf8Stream())
|
|
239
|
+
.pipeThrough(new SplitStringStream("\n"))
|
|
240
|
+
.pipeTo(new WritableStream({
|
|
241
|
+
write(chunk) {
|
|
242
|
+
let match = chunk.match(Logcat.LOG_SIZE_REGEX_11);
|
|
243
|
+
if (match) {
|
|
244
|
+
result.push({
|
|
245
|
+
id: Logcat.logNameToId(match[1]),
|
|
246
|
+
size: Logcat.parseSize(Number.parseInt(match[2], 10), match[3]),
|
|
247
|
+
readable: Logcat.parseSize(Number.parseInt(match[6], 10), match[7]),
|
|
248
|
+
consumed: Logcat.parseSize(Number.parseInt(match[4], 10), match[5]),
|
|
249
|
+
maxEntrySize: parseInt(match[8], 10),
|
|
250
|
+
maxPayloadSize: parseInt(match[9], 10),
|
|
251
|
+
});
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
match = chunk.match(Logcat.LOG_SIZE_REGEX_10);
|
|
255
|
+
if (match) {
|
|
256
|
+
result.push({
|
|
257
|
+
id: Logcat.logNameToId(match[1]),
|
|
258
|
+
size: Logcat.parseSize(Number.parseInt(match[2], 10), match[3]),
|
|
259
|
+
consumed: Logcat.parseSize(Number.parseInt(match[4], 10), match[5]),
|
|
260
|
+
maxEntrySize: parseInt(match[6], 10),
|
|
261
|
+
maxPayloadSize: parseInt(match[7], 10),
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
}));
|
|
266
|
+
return result;
|
|
267
|
+
}
|
|
268
|
+
async clear(ids) {
|
|
269
|
+
await this.adb.subprocess.spawnAndWait([
|
|
270
|
+
"logcat",
|
|
271
|
+
"-c",
|
|
272
|
+
...(ids ? ["-b", Logcat.joinLogId(ids)] : []),
|
|
273
|
+
]);
|
|
274
|
+
}
|
|
275
|
+
binary(options) {
|
|
276
|
+
return new WrapReadableStream(async () => {
|
|
277
|
+
// TODO: make `spawn` return synchronously with streams pending
|
|
278
|
+
// so it's easier to chain them.
|
|
279
|
+
const { stdout } = await this.adb.subprocess.spawn([
|
|
280
|
+
"logcat",
|
|
281
|
+
"-B",
|
|
282
|
+
...(options?.pid ? ["--pid", options.pid.toString()] : []),
|
|
283
|
+
...(options?.ids
|
|
284
|
+
? ["-b", Logcat.joinLogId(options.ids)]
|
|
285
|
+
: []),
|
|
286
|
+
], {
|
|
287
|
+
// PERF: None protocol is 150% faster then Shell protocol
|
|
288
|
+
protocols: [AdbSubprocessNoneProtocol],
|
|
289
|
+
});
|
|
290
|
+
return stdout;
|
|
291
|
+
}).pipeThrough(new BufferedTransformStream((stream) => {
|
|
292
|
+
return deserializeAndroidLogEntry(stream);
|
|
293
|
+
}));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
export { Logcat };
|
|
201
297
|
//# sourceMappingURL=logcat.js.map
|
package/esm/logcat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../src/logcat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logcat.js","sourceRoot":"","sources":["../src/logcat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Adb } from "@yume-chan/adb";
|
|
2
|
+
import { AdbCommandBase } from "@yume-chan/adb";
|
|
3
|
+
export interface OverlayDisplayDeviceMode {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
density: number;
|
|
7
|
+
}
|
|
8
|
+
export interface OverlayDisplayDevice {
|
|
9
|
+
modes: OverlayDisplayDeviceMode[];
|
|
10
|
+
secure: boolean;
|
|
11
|
+
ownContentOnly: boolean;
|
|
12
|
+
showSystemDecorations: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class OverlayDisplay extends AdbCommandBase {
|
|
15
|
+
private settings;
|
|
16
|
+
static readonly OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices";
|
|
17
|
+
constructor(adb: Adb);
|
|
18
|
+
get(): Promise<OverlayDisplayDevice[]>;
|
|
19
|
+
set(devices: OverlayDisplayDevice[]): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=overlay-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-display.d.ts","sourceRoot":"","sources":["../src/overlay-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED,qBAAa,cAAe,SAAQ,cAAc;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAE3B,gBAAuB,2BAA2B,6BACpB;gBAElB,GAAG,EAAE,GAAG;IAKP,GAAG;IAuDH,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE;CA8BnD"}
|