Loading app/index.html +0 −1 Original line number Original line Diff line number Diff line Loading @@ -10,7 +10,6 @@ <link rel="stylesheet" href="/css/styles.css" /> <link rel="stylesheet" href="/css/styles.css" /> <link rel="stylesheet" href="/css/loader.css" /> <link rel="stylesheet" href="/css/loader.css" /> <title>/e/OS Installer</title> <title>/e/OS Installer</title> <script type="module" src="/src/lib/webadb/adb.bundle.js"></script> <script type="module" src="/src/viewManager.js"></script> <script type="module" src="/src/viewManager.js"></script> <script type="module" src="/src/before-leave-app.js"></script> <script type="module" src="/src/before-leave-app.js"></script> </head> </head> Loading app/package-lock.json +86 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,10 @@ "license": "GPLv3", "license": "GPLv3", "dependencies": { "dependencies": { "@e/fastboot": "1.1.4", "@e/fastboot": "1.1.4", "@yume-chan/adb": "1.1.0", "@yume-chan/adb-credential-web": "1.1.0", "@yume-chan/adb-daemon-webusb": "1.1.0", "@yume-chan/stream-extra": "1.0.0", "@zip.js/zip.js": "^2.7.54", "@zip.js/zip.js": "^2.7.54", "ky": "^1.7.4" "ky": "^1.7.4" }, }, Loading Loading @@ -334,6 +338,88 @@ "dev": true, "dev": true, "license": "MIT" "license": "MIT" }, }, "node_modules/@types/w3c-web-usb": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz", "integrity": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==", "license": "MIT" }, "node_modules/@yume-chan/adb": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb/-/adb-1.1.0.tgz", "integrity": "sha512-AC2HhTtxvEPrAQfMP9qDC3FI5Uc6U8j4oH+WMOQ+PKqzI4eme1X3V7OXgPNkrLTQ9SUWgLRw+lgzpvyTvNYpng==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/event": "^1.0.0", "@yume-chan/no-data-view": "^1.0.0", "@yume-chan/stream-extra": "^1.0.0", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/adb-credential-web": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb-credential-web/-/adb-credential-web-1.1.0.tgz", "integrity": "sha512-jdg0JTZ1Z82gPoxtc29511aPVKPQyXRx5Nf2uRy7UXRmg5oeH6dqO5a45Li1yRo1dwAxZHShxIt90RnP7zDH0g==", "license": "MIT", "dependencies": { "@yume-chan/adb": "^1.1.0" } }, "node_modules/@yume-chan/adb-daemon-webusb": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb-daemon-webusb/-/adb-daemon-webusb-1.1.0.tgz", "integrity": "sha512-Q0jkEX/V/PTMZov3udN0gR4uwxfJz0EmKBmRqdJl619rXGC8OfkqlnbrOI4aOjCebm2HCc6d3jVAmjo5sIB7OQ==", "license": "MIT", "dependencies": { "@types/w3c-web-usb": "^1.0.10", "@yume-chan/adb": "^1.1.0", "@yume-chan/event": "^1.0.0", "@yume-chan/stream-extra": "^1.0.0", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/async": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@yume-chan/async/-/async-4.0.2.tgz", "integrity": "sha512-YP5Hg4DZoq6CXzeTsiOu6rDNUaWw8SMiM4cB2rHam4zRTatgUHCWpSKMawQt0+nUro/+IeNTZLh2QpIFyxuGzg==", "license": "MIT" }, "node_modules/@yume-chan/event": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/event/-/event-1.0.0.tgz", "integrity": "sha512-tr4V34WQ5dz2UDMQl4ekj2zGLqwzmclOJpJL+9s2LJpURHw+Szy5g4gi4j86M+5epMFD8dpT9ym/wXHiUdtpsg==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2" } }, "node_modules/@yume-chan/no-data-view": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/no-data-view/-/no-data-view-1.0.0.tgz", "integrity": "sha512-KrkXhJJQiCFFXb/eeHB++HCfKuwwiI7RVzHR7X/0XiwjQouxBpNpRFjEO25458Q5p/EPGprGWQ7BsHrmV3mkZQ==", "license": "MIT" }, "node_modules/@yume-chan/stream-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/stream-extra/-/stream-extra-1.0.0.tgz", "integrity": "sha512-xltJYD5txn63e0jm7bHExmULowJTgjbsC205DN0GCxfdfrZIl6adKVheQNh1yOuOKV5Ok5luWNVSBp7Y2OVffA==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/struct": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/struct/-/struct-1.0.0.tgz", "integrity": "sha512-PQWUjgITlZstIkLD6ouRDwmR35Z9OJZ9daOQ6ZipzQ/mCnHTeoJf2v8x2+fmGyVrrHf9oaCWe8U/XW65onRlGg==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/no-data-view": "^1.0.0" } }, "node_modules/@zip.js/zip.js": { "node_modules/@zip.js/zip.js": { "version": "2.7.54", "version": "2.7.54", "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz", "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz", Loading app/package.json +4 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,10 @@ }, }, "dependencies": { "dependencies": { "@e/fastboot": "1.1.4", "@e/fastboot": "1.1.4", "@yume-chan/adb": "1.1.0", "@yume-chan/adb-daemon-webusb": "1.1.0", "@yume-chan/adb-credential-web": "1.1.0", "@yume-chan/stream-extra": "1.0.0", "@zip.js/zip.js": "^2.7.54", "@zip.js/zip.js": "^2.7.54", "ky": "^1.7.4" "ky": "^1.7.4" } } Loading app/src/controller.manager.js +14 −15 Original line number Original line Diff line number Diff line Loading @@ -314,10 +314,9 @@ export class Controller { WDebug.log("Security patch Error"); WDebug.log("Security patch Error"); current_security_path_level = null; current_security_path_level = null; } } let this_model = this.deviceManager.adb.webusb.transport.banner.device; let this_model = this.deviceManager.adb.webusb.device; // https://gitlab.e.foundation/e/os/backlog/-/issues/2604#note_609234 // https://gitlab.e.foundation/e/os/backlog/-/issues/2604#note_609234 const model = this.deviceManager.adb.webusb.model; const model = this.deviceManager.adb.webusb.transport.banner.model; if (model.includes("Teracube") && model.includes("2e")) { if (model.includes("Teracube") && model.includes("2e")) { try { try { const serial = await this.deviceManager.adb.getSerialNumber(); const serial = await this.deviceManager.adb.getSerialNumber(); Loading @@ -329,31 +328,31 @@ export class Controller { } else { } else { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Cannot find device resource", id); throw new Error("Cannot find device resource", id); } } } catch { } catch { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Error on getting device resource", id); throw new Error("Error on getting device resource", id); } } } } Loading @@ -364,16 +363,16 @@ export class Controller { } catch { } catch { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Error on getting devcice resource", id); throw new Error("Error on getting devcice resource", id); } } } } Loading app/src/controller/device/adb.class.js +45 −16 Original line number Original line Diff line number Diff line import { Device } from "./device.class.js"; import { Device } from "./device.class.js"; import { WDebug } from "../../debug.js"; import { WDebug } from "../../debug.js"; import { AdbWebBackend, Adb2 } from "../../lib/webadb/adb.bundle.js"; import { AdbDaemonWebUsbDeviceManager } from "@yume-chan/adb-daemon-webusb"; import { Adb, AdbDaemonTransport } from "@yume-chan/adb"; import AdbWebCredentialStore from "@yume-chan/adb-credential-web"; export class ADB extends Device { export class ADB extends Device { static Manager = AdbDaemonWebUsbDeviceManager.BROWSER; constructor(device) { constructor(device) { super(device); super(device); this.webusb = null; this.webusb = null; Loading @@ -26,28 +31,52 @@ export class ADB extends Device { async connect() { async connect() { try { try { console.log("debug adb connect"); console.log("debug adb connect"); let adbWebBackend = await AdbWebBackend.requestDevice(); if (adbWebBackend) { let adbDaemonWebUsbDevice = let adbDevice = new Adb2(adbWebBackend, null); //adb.bundle.js await ADB.Manager.requestDevice(); /*AdbDaemonWebUsbDevice*/ await adbDevice.connect(); if (typeof adbDaemonWebUsbDevice == "undefined") { this.device = adbWebBackend._device; throw new Error("No device connected (1)"); this.webusb = adbDevice; } let connection; try { connection = await adbDaemonWebUsbDevice.connect(); /*AdbDaemonWebUsbConnection*/ } catch (err) { console.error(err); const devices = await ADB.Manager.getDevices(); if (!devices.length) { throw new Error("No device connected (2)"); } adbDaemonWebUsbDevice = devices[0]; /*AdbDaemonWebUsbDevice*/ } const credentialStore = new AdbWebCredentialStore(); const transport = await AdbDaemonTransport.authenticate({ serial: connection.deserial, connection, credentialStore: credentialStore, }); const adb = new Adb(transport); this.device = adbDaemonWebUsbDevice; this.webusb = adb; /*Adb*/ WDebug.log("----------------------------------"); WDebug.log("----------------------------------"); WDebug.log("Model", adbDevice.model); WDebug.log("Model", adb.transport.banner.model); WDebug.log("product", adbDevice.product); WDebug.log("product", adb.transport.banner.product); WDebug.log("Name", adbDevice.name); WDebug.log("Name", adbDaemonWebUsbDevice.name); WDebug.log(">Device (codename)", adbDevice.device); // codemane WDebug.log(">Device (codename)", adb.transport.banner.device); // codemane WDebug.log("----------------------------------"); WDebug.log("----------------------------------"); } } catch (e) { } catch (e) { console.error(e); this.device = null; this.device = null; throw new Error(`Cannot connect ADB ${e.message || e}`); throw new Error(`Cannot connect ADB ${e.message || e}`); } } } } getProductName() { getProductName() { return this.webusb.name; return this.device.name; } } async getAndroidVersion() { async getAndroidVersion() { Loading @@ -64,7 +93,7 @@ export class ADB extends Device { } } async reboot(mode) { async reboot(mode) { const res = await this.webusb.createStreamAndReadAll(`reboot:${mode}`); const res = await this.webusb.power.reboot(mode); return res; return res; } } } } Loading
app/index.html +0 −1 Original line number Original line Diff line number Diff line Loading @@ -10,7 +10,6 @@ <link rel="stylesheet" href="/css/styles.css" /> <link rel="stylesheet" href="/css/styles.css" /> <link rel="stylesheet" href="/css/loader.css" /> <link rel="stylesheet" href="/css/loader.css" /> <title>/e/OS Installer</title> <title>/e/OS Installer</title> <script type="module" src="/src/lib/webadb/adb.bundle.js"></script> <script type="module" src="/src/viewManager.js"></script> <script type="module" src="/src/viewManager.js"></script> <script type="module" src="/src/before-leave-app.js"></script> <script type="module" src="/src/before-leave-app.js"></script> </head> </head> Loading
app/package-lock.json +86 −0 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,10 @@ "license": "GPLv3", "license": "GPLv3", "dependencies": { "dependencies": { "@e/fastboot": "1.1.4", "@e/fastboot": "1.1.4", "@yume-chan/adb": "1.1.0", "@yume-chan/adb-credential-web": "1.1.0", "@yume-chan/adb-daemon-webusb": "1.1.0", "@yume-chan/stream-extra": "1.0.0", "@zip.js/zip.js": "^2.7.54", "@zip.js/zip.js": "^2.7.54", "ky": "^1.7.4" "ky": "^1.7.4" }, }, Loading Loading @@ -334,6 +338,88 @@ "dev": true, "dev": true, "license": "MIT" "license": "MIT" }, }, "node_modules/@types/w3c-web-usb": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz", "integrity": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==", "license": "MIT" }, "node_modules/@yume-chan/adb": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb/-/adb-1.1.0.tgz", "integrity": "sha512-AC2HhTtxvEPrAQfMP9qDC3FI5Uc6U8j4oH+WMOQ+PKqzI4eme1X3V7OXgPNkrLTQ9SUWgLRw+lgzpvyTvNYpng==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/event": "^1.0.0", "@yume-chan/no-data-view": "^1.0.0", "@yume-chan/stream-extra": "^1.0.0", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/adb-credential-web": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb-credential-web/-/adb-credential-web-1.1.0.tgz", "integrity": "sha512-jdg0JTZ1Z82gPoxtc29511aPVKPQyXRx5Nf2uRy7UXRmg5oeH6dqO5a45Li1yRo1dwAxZHShxIt90RnP7zDH0g==", "license": "MIT", "dependencies": { "@yume-chan/adb": "^1.1.0" } }, "node_modules/@yume-chan/adb-daemon-webusb": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yume-chan/adb-daemon-webusb/-/adb-daemon-webusb-1.1.0.tgz", "integrity": "sha512-Q0jkEX/V/PTMZov3udN0gR4uwxfJz0EmKBmRqdJl619rXGC8OfkqlnbrOI4aOjCebm2HCc6d3jVAmjo5sIB7OQ==", "license": "MIT", "dependencies": { "@types/w3c-web-usb": "^1.0.10", "@yume-chan/adb": "^1.1.0", "@yume-chan/event": "^1.0.0", "@yume-chan/stream-extra": "^1.0.0", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/async": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@yume-chan/async/-/async-4.0.2.tgz", "integrity": "sha512-YP5Hg4DZoq6CXzeTsiOu6rDNUaWw8SMiM4cB2rHam4zRTatgUHCWpSKMawQt0+nUro/+IeNTZLh2QpIFyxuGzg==", "license": "MIT" }, "node_modules/@yume-chan/event": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/event/-/event-1.0.0.tgz", "integrity": "sha512-tr4V34WQ5dz2UDMQl4ekj2zGLqwzmclOJpJL+9s2LJpURHw+Szy5g4gi4j86M+5epMFD8dpT9ym/wXHiUdtpsg==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2" } }, "node_modules/@yume-chan/no-data-view": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/no-data-view/-/no-data-view-1.0.0.tgz", "integrity": "sha512-KrkXhJJQiCFFXb/eeHB++HCfKuwwiI7RVzHR7X/0XiwjQouxBpNpRFjEO25458Q5p/EPGprGWQ7BsHrmV3mkZQ==", "license": "MIT" }, "node_modules/@yume-chan/stream-extra": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/stream-extra/-/stream-extra-1.0.0.tgz", "integrity": "sha512-xltJYD5txn63e0jm7bHExmULowJTgjbsC205DN0GCxfdfrZIl6adKVheQNh1yOuOKV5Ok5luWNVSBp7Y2OVffA==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/struct": "^1.0.0" } }, "node_modules/@yume-chan/struct": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@yume-chan/struct/-/struct-1.0.0.tgz", "integrity": "sha512-PQWUjgITlZstIkLD6ouRDwmR35Z9OJZ9daOQ6ZipzQ/mCnHTeoJf2v8x2+fmGyVrrHf9oaCWe8U/XW65onRlGg==", "license": "MIT", "dependencies": { "@yume-chan/async": "^4.0.2", "@yume-chan/no-data-view": "^1.0.0" } }, "node_modules/@zip.js/zip.js": { "node_modules/@zip.js/zip.js": { "version": "2.7.54", "version": "2.7.54", "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz", "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz", Loading
app/package.json +4 −0 Original line number Original line Diff line number Diff line Loading @@ -20,6 +20,10 @@ }, }, "dependencies": { "dependencies": { "@e/fastboot": "1.1.4", "@e/fastboot": "1.1.4", "@yume-chan/adb": "1.1.0", "@yume-chan/adb-daemon-webusb": "1.1.0", "@yume-chan/adb-credential-web": "1.1.0", "@yume-chan/stream-extra": "1.0.0", "@zip.js/zip.js": "^2.7.54", "@zip.js/zip.js": "^2.7.54", "ky": "^1.7.4" "ky": "^1.7.4" } } Loading
app/src/controller.manager.js +14 −15 Original line number Original line Diff line number Diff line Loading @@ -314,10 +314,9 @@ export class Controller { WDebug.log("Security patch Error"); WDebug.log("Security patch Error"); current_security_path_level = null; current_security_path_level = null; } } let this_model = this.deviceManager.adb.webusb.transport.banner.device; let this_model = this.deviceManager.adb.webusb.device; // https://gitlab.e.foundation/e/os/backlog/-/issues/2604#note_609234 // https://gitlab.e.foundation/e/os/backlog/-/issues/2604#note_609234 const model = this.deviceManager.adb.webusb.model; const model = this.deviceManager.adb.webusb.transport.banner.model; if (model.includes("Teracube") && model.includes("2e")) { if (model.includes("Teracube") && model.includes("2e")) { try { try { const serial = await this.deviceManager.adb.getSerialNumber(); const serial = await this.deviceManager.adb.getSerialNumber(); Loading @@ -329,31 +328,31 @@ export class Controller { } else { } else { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Cannot find device resource", id); throw new Error("Cannot find device resource", id); } } } catch { } catch { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Error on getting device resource", id); throw new Error("Error on getting device resource", id); } } } } Loading @@ -364,16 +363,16 @@ export class Controller { } catch { } catch { const id = const id = "model " + "model " + this.deviceManager.adb.webusb.model + this.deviceManager.adb.webusb.transport.banner.model + " " + " " + "product " + "product " + this.deviceManager.adb.webusb.product + this.deviceManager.adb.webusb.transport.banner.product + " " + " " + "name " + "name " + this.deviceManager.adb.webusb.name + this.deviceManager.adb.device.name + " " + " " + "device " + "device " + this.deviceManager.adb.webusb.device; this.deviceManager.adb.webusb.transport.banner.device; throw new Error("Error on getting devcice resource", id); throw new Error("Error on getting devcice resource", id); } } } } Loading
app/src/controller/device/adb.class.js +45 −16 Original line number Original line Diff line number Diff line import { Device } from "./device.class.js"; import { Device } from "./device.class.js"; import { WDebug } from "../../debug.js"; import { WDebug } from "../../debug.js"; import { AdbWebBackend, Adb2 } from "../../lib/webadb/adb.bundle.js"; import { AdbDaemonWebUsbDeviceManager } from "@yume-chan/adb-daemon-webusb"; import { Adb, AdbDaemonTransport } from "@yume-chan/adb"; import AdbWebCredentialStore from "@yume-chan/adb-credential-web"; export class ADB extends Device { export class ADB extends Device { static Manager = AdbDaemonWebUsbDeviceManager.BROWSER; constructor(device) { constructor(device) { super(device); super(device); this.webusb = null; this.webusb = null; Loading @@ -26,28 +31,52 @@ export class ADB extends Device { async connect() { async connect() { try { try { console.log("debug adb connect"); console.log("debug adb connect"); let adbWebBackend = await AdbWebBackend.requestDevice(); if (adbWebBackend) { let adbDaemonWebUsbDevice = let adbDevice = new Adb2(adbWebBackend, null); //adb.bundle.js await ADB.Manager.requestDevice(); /*AdbDaemonWebUsbDevice*/ await adbDevice.connect(); if (typeof adbDaemonWebUsbDevice == "undefined") { this.device = adbWebBackend._device; throw new Error("No device connected (1)"); this.webusb = adbDevice; } let connection; try { connection = await adbDaemonWebUsbDevice.connect(); /*AdbDaemonWebUsbConnection*/ } catch (err) { console.error(err); const devices = await ADB.Manager.getDevices(); if (!devices.length) { throw new Error("No device connected (2)"); } adbDaemonWebUsbDevice = devices[0]; /*AdbDaemonWebUsbDevice*/ } const credentialStore = new AdbWebCredentialStore(); const transport = await AdbDaemonTransport.authenticate({ serial: connection.deserial, connection, credentialStore: credentialStore, }); const adb = new Adb(transport); this.device = adbDaemonWebUsbDevice; this.webusb = adb; /*Adb*/ WDebug.log("----------------------------------"); WDebug.log("----------------------------------"); WDebug.log("Model", adbDevice.model); WDebug.log("Model", adb.transport.banner.model); WDebug.log("product", adbDevice.product); WDebug.log("product", adb.transport.banner.product); WDebug.log("Name", adbDevice.name); WDebug.log("Name", adbDaemonWebUsbDevice.name); WDebug.log(">Device (codename)", adbDevice.device); // codemane WDebug.log(">Device (codename)", adb.transport.banner.device); // codemane WDebug.log("----------------------------------"); WDebug.log("----------------------------------"); } } catch (e) { } catch (e) { console.error(e); this.device = null; this.device = null; throw new Error(`Cannot connect ADB ${e.message || e}`); throw new Error(`Cannot connect ADB ${e.message || e}`); } } } } getProductName() { getProductName() { return this.webusb.name; return this.device.name; } } async getAndroidVersion() { async getAndroidVersion() { Loading @@ -64,7 +93,7 @@ export class ADB extends Device { } } async reboot(mode) { async reboot(mode) { const res = await this.webusb.createStreamAndReadAll(`reboot:${mode}`); const res = await this.webusb.power.reboot(mode); return res; return res; } } } }