64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT
|
|
|
|
async function adbRebootBootloader() {
|
|
const webusb = await Adb.open("WebUSB");
|
|
|
|
if (!webusb.isAdb()) {
|
|
console.log("error: not in adb mode");
|
|
return;
|
|
}
|
|
|
|
console.log("connecting with adb");
|
|
|
|
const adb = await webusb.connectAdb("host::");
|
|
await adb.reboot("bootloader");
|
|
}
|
|
|
|
async function unlockBootloader() {
|
|
const webusb = await Adb.open("WebUSB");
|
|
|
|
if (!webusb.isFastboot()) {
|
|
console.log("error: not in fastboot mode");
|
|
}
|
|
|
|
console.log("connecting with fastboot");
|
|
|
|
const fastboot = await webusb.connectFastboot();
|
|
await fastboot.send("flashing unlock");
|
|
await fastboot.receive();
|
|
}
|
|
|
|
async function lockBootloader() {
|
|
const webusb = await Adb.open("WebUSB");
|
|
|
|
if (!webusb.isFastboot()) {
|
|
console.log("error: not in fastboot mode");
|
|
}
|
|
|
|
console.log("connecting with fastboot");
|
|
|
|
const fastboot = await webusb.connectFastboot();
|
|
await fastboot.send("flashing lock");
|
|
await fastboot.receive();
|
|
}
|
|
|
|
if ("usb" in navigator) {
|
|
console.log("WebUSB available");
|
|
|
|
const adbRebootBootloaderButton = document.getElementById("adb-reboot-bootloader");
|
|
adbRebootBootloaderButton.disabled = false;
|
|
adbRebootBootloaderButton.onclick = adbRebootBootloader;
|
|
|
|
const unlockBootloaderButton = document.getElementById("unlock-bootloader");
|
|
unlockBootloaderButton.disabled = false;
|
|
unlockBootloaderButton.onclick = unlockBootloader;
|
|
|
|
const lockBootloaderButton = document.getElementById("lock-bootloader");
|
|
lockBootloaderButton.disabled = false;
|
|
lockBootloaderButton.onclick = lockBootloader;
|
|
} else {
|
|
console.log("WebUSB unavailable");
|
|
}
|
|
|
|
// @license-end
|