Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41bb8683 authored by Frank's avatar Frank
Browse files

The original developments used an older version of the webadbjs lib in static....

The original developments used an older version of the webadbjs lib in static. This commit covers the use of this library as a dependency, and the latest version. Removal of the static library and implementation of the modular version for mobile detection.
parent 2ebeb3c2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
    <link rel="stylesheet" href="/css/styles.css" />
    <link rel="stylesheet" href="/css/loader.css" />
    <title>/e/OS Installer</title>
    <script type="module" src="/src/lib/webadb/adb.bundle.js"></script>
    <!--<script type="module" src="/src/lib/webadb/adb.bundle.js"></script>-->
    <script type="module" src="/src/viewManager.js"></script>
    <script type="module" src="/src/before-leave-app.js"></script>
  </head>
+88 −0
Original line number Diff line number Diff line
@@ -10,11 +10,17 @@
      "license": "GPLv3",
      "dependencies": {
        "@e/fastboot": "1.1.4-dev",
        "@yume-chan/adb": "1.1.0",
        "@yume-chan/adb-credential-web": "1.1.0",
        "@yume-chan/adb-daemon-webusb": "1.1.0",
        "@zip.js/zip.js": "^2.7.54",
        "ky": "^1.7.4"
      },
      "devDependencies": {
        "@eslint/js": "^9.17.0",
        "@yume-chan/adb": "1.1.0",
        "@yume-chan/adb-credential-web": "1.1.0",
        "@yume-chan/adb-daemon-webusb": "1.1.0",
        "eslint": "^9.17.0",
        "globals": "^15.14.0",
        "prettier": "3.4.2",
@@ -334,6 +340,88 @@
      "dev": true,
      "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==",
      "dev": true
    },
    "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==",
      "dev": true,
      "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==",
      "dev": true,
      "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==",
      "dev": true,
      "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==",
      "dev": true
    },
    "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==",
      "dev": true,
      "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==",
      "dev": true
    },
    "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==",
      "dev": true,
      "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==",
      "dev": true,
      "dependencies": {
        "@yume-chan/async": "^4.0.2",
        "@yume-chan/no-data-view": "^1.0.0"
      }
    },
    "node_modules/@zip.js/zip.js": {
      "version": "2.7.54",
      "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.54.tgz",
+6 −0
Original line number Diff line number Diff line
@@ -12,6 +12,9 @@
  },
  "devDependencies": {
    "@eslint/js": "^9.17.0",
    "@yume-chan/adb": "1.1.0",
    "@yume-chan/adb-daemon-webusb": "1.1.0",
    "@yume-chan/adb-credential-web" : "1.1.0",
    "eslint": "^9.17.0",
    "globals": "^15.14.0",
    "prettier": "3.4.2",
@@ -20,6 +23,9 @@
  },
  "dependencies": {
    "@e/fastboot": "1.1.4-dev",
    "@yume-chan/adb": "1.1.0",
    "@yume-chan/adb-daemon-webusb": "1.1.0",
    "@yume-chan/adb-credential-web" : "1.1.0",
    "@zip.js/zip.js": "^2.7.54",
    "ky": "^1.7.4"
  }
+36 −17
Original line number Diff line number Diff line
import { Device } from "./device.class.js";
import { WDebug } from "../../debug.js";
import { AdbWebBackend, Adb2 } from "../../lib/webadb/adb.bundle.js";

import { AdbDaemonWebUsbDeviceManager, AdbDaemonWebUsbDevice } 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 {
  constructor(device) {
@@ -26,20 +29,36 @@ export class ADB extends Device {
  async connect() {
    try {
      console.log("debug adb connect");
      let adbWebBackend = await AdbWebBackend.requestDevice();
      if (adbWebBackend) {
        let adbDevice = new Adb2(adbWebBackend, null); //adb.bundle.js
        await adbDevice.connect();
        this.device = adbWebBackend._device;
        this.webusb = adbDevice;

      const Manager = AdbDaemonWebUsbDeviceManager.BROWSER;
      const devices = await Manager.getDevices();
      if (!devices.length) {
        throw new Error("No device connected");
      }
      
      const adbDaemonWebUsbDevice = devices[0]; /*AdbDaemonWebUsbDevice*/
      const connection = await adbDaemonWebUsbDevice.connect(); /*AdbDaemonWebUsbConnection*/  
      const credentialStore = new AdbWebCredentialStore();
      const transport = await AdbDaemonTransport.authenticate({
        serial: connection.deserial,
        connection,
        credentialStore: credentialStore
      });
      const adb = new Adb(transport);
      
      const version = await adb.getProp("ro.build.version.release");

      this.device = adbDaemonWebUsbDevice; 
      this.webusb = adb; /*Adb*/

      WDebug.log("----------------------------------");
        WDebug.log("Model", adbDevice.model);
        WDebug.log("product", adbDevice.product);
        WDebug.log("Name", adbDevice.name);
        WDebug.log(">Device (codename)", adbDevice.device); // codemane
      WDebug.log("Model", adb.transport.banner.model);
      WDebug.log("product", adb.transport.banner.product);
      WDebug.log("Name", adbDaemonWebUsbDevice.name);
      WDebug.log(">Device (codename)", adb.transport.banner.device); // codemane
      WDebug.log("----------------------------------");
      }


      } catch (e) {
        this.device = null;
        throw new Error(`Cannot connect ADB ${e.message || e}`);
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ import { MessageClass } from "../../lib/webadb/message.class.js";
import { MessageHeader } from "../../lib/webadb/message-header.class.js";
import { Device } from "./device.class.js";
import { WDebug } from "../../debug.js";
import { AdbWebBackend3, Adb3 } from "../../lib/webadb/adb.bundle.js";
//import { AdbWebBackend3, Adb3 } from "../../lib/webadb/adb.bundle.js";

export class Recovery extends Device {
  constructor(device) {
Loading