simvyn 2.6.0 → 2.6.2
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/README.md +6 -3
- package/dist/dashboard/assets/{index-y3nYH57L.js → index-CV-ugcyG.js} +36 -11
- package/dist/dashboard/assets/{index-y3nYH57L.js.map → index-CV-ugcyG.js.map} +1 -1
- package/dist/dashboard/assets/{index-B-km6Iwq.css → index-DPTLVb11.css} +15 -5
- package/dist/dashboard/index.html +2 -2
- package/dist/index.js +39 -15
- package/package.json +1 -1
|
@@ -805,6 +805,10 @@
|
|
|
805
805
|
width: 70%;
|
|
806
806
|
}
|
|
807
807
|
|
|
808
|
+
.w-\[76px\] {
|
|
809
|
+
width: 76px;
|
|
810
|
+
}
|
|
811
|
+
|
|
808
812
|
.w-\[90px\] {
|
|
809
813
|
width: 90px;
|
|
810
814
|
}
|
|
@@ -873,7 +877,7 @@
|
|
|
873
877
|
flex: 1;
|
|
874
878
|
}
|
|
875
879
|
|
|
876
|
-
.shrink-0 {
|
|
880
|
+
.flex-shrink-0, .shrink-0 {
|
|
877
881
|
flex-shrink: 0;
|
|
878
882
|
}
|
|
879
883
|
|
|
@@ -2345,14 +2349,20 @@ body {
|
|
|
2345
2349
|
}
|
|
2346
2350
|
|
|
2347
2351
|
.dock-sidebar-hitarea {
|
|
2348
|
-
|
|
2349
|
-
|
|
2352
|
+
z-index: 20;
|
|
2353
|
+
align-items: center;
|
|
2354
|
+
padding-left: 12px;
|
|
2355
|
+
display: flex;
|
|
2356
|
+
position: absolute;
|
|
2357
|
+
top: 0;
|
|
2358
|
+
bottom: 0;
|
|
2359
|
+
left: 0;
|
|
2350
2360
|
}
|
|
2351
2361
|
|
|
2352
2362
|
.dock-sidebar {
|
|
2353
2363
|
z-index: 20;
|
|
2354
|
-
-webkit-backdrop-filter: blur(
|
|
2355
|
-
background: #
|
|
2364
|
+
-webkit-backdrop-filter: blur(40px) saturate(1.4);
|
|
2365
|
+
background: #1e1e2dd9;
|
|
2356
2366
|
border: 1px solid #ffffff1a;
|
|
2357
2367
|
border-radius: 16px;
|
|
2358
2368
|
flex-direction: column;
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
}
|
|
39
39
|
</style>
|
|
40
40
|
<title>simvyn</title>
|
|
41
|
-
<script type="module" crossorigin src="/assets/index-
|
|
42
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
41
|
+
<script type="module" crossorigin src="/assets/index-CV-ugcyG.js"></script>
|
|
42
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DPTLVb11.css">
|
|
43
43
|
</head>
|
|
44
44
|
<body>
|
|
45
45
|
<div id="root"></div>
|
package/dist/index.js
CHANGED
|
@@ -238,27 +238,51 @@ function createAndroidAdapter() {
|
|
|
238
238
|
},
|
|
239
239
|
async listApps(deviceId) {
|
|
240
240
|
if (deviceId.startsWith("avd:")) throw new Error("Device must be booted for app operations");
|
|
241
|
-
const
|
|
242
|
-
"-s",
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
"
|
|
249
|
-
"-3"
|
|
241
|
+
const [listResult, dumpResult] = await Promise.all([
|
|
242
|
+
verboseExec("adb", ["-s", deviceId, "shell", "pm", "list", "packages", "-f"]),
|
|
243
|
+
verboseExec("adb", [
|
|
244
|
+
"-s",
|
|
245
|
+
deviceId,
|
|
246
|
+
"shell",
|
|
247
|
+
"dumpsys package | grep -E 'Package \\[|versionName=|nonLocalizedLabel='"
|
|
248
|
+
]).catch(() => ({ stdout: "" }))
|
|
250
249
|
]);
|
|
250
|
+
const meta = /* @__PURE__ */ new Map();
|
|
251
|
+
let currentPkg = "";
|
|
252
|
+
for (const line of dumpResult.stdout.split("\n")) {
|
|
253
|
+
const pkgMatch = line.match(/Package \[(.+?)\]/);
|
|
254
|
+
if (pkgMatch) {
|
|
255
|
+
currentPkg = pkgMatch[1];
|
|
256
|
+
if (!meta.has(currentPkg)) meta.set(currentPkg, {});
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
if (!currentPkg || !meta.has(currentPkg)) continue;
|
|
260
|
+
const entry = meta.get(currentPkg);
|
|
261
|
+
if (!entry.version) {
|
|
262
|
+
const verMatch = line.match(/versionName=(.+)/);
|
|
263
|
+
if (verMatch) entry.version = verMatch[1].trim();
|
|
264
|
+
}
|
|
265
|
+
if (!entry.label) {
|
|
266
|
+
const labelMatch = line.match(/nonLocalizedLabel=(.+)/);
|
|
267
|
+
if (labelMatch && labelMatch[1].trim() !== "null") {
|
|
268
|
+
entry.label = labelMatch[1].trim();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
251
272
|
const apps = [];
|
|
252
|
-
for (const line of stdout.trim().split("\n")) {
|
|
273
|
+
for (const line of listResult.stdout.trim().split("\n")) {
|
|
253
274
|
if (!line) continue;
|
|
254
275
|
const match = line.match(/^package:(.+)=([^\s=]+)$/);
|
|
255
276
|
if (!match) continue;
|
|
277
|
+
const appPath = match[1];
|
|
278
|
+
const bundleId = match[2];
|
|
279
|
+
const info = meta.get(bundleId);
|
|
256
280
|
apps.push({
|
|
257
|
-
bundleId
|
|
258
|
-
name:
|
|
259
|
-
version: "unknown",
|
|
260
|
-
type: "user",
|
|
261
|
-
appPath
|
|
281
|
+
bundleId,
|
|
282
|
+
name: info?.label || bundleId,
|
|
283
|
+
version: info?.version || "unknown",
|
|
284
|
+
type: appPath.startsWith("/data/") ? "user" : "system",
|
|
285
|
+
appPath
|
|
262
286
|
});
|
|
263
287
|
}
|
|
264
288
|
return apps;
|
package/package.json
CHANGED