18 Commits

Author SHA1 Message Date
Danny Lin
cdafb40dd6 web-install: Implement flashing progress callbacks 2021-01-31 00:10:26 -05:00
Danny Lin
dfc01e016e Update fastboot.js for live progress updates 2021-01-31 00:10:26 -05:00
Danny Lin
a96bb87e12 Update fastboot.js to fix fastbootd flashing from Android
The fastbootd flashing path was missing a reconnect callback.
2021-01-29 22:32:16 -05:00
Daniel Micay
cee89f384c avoid inline CSS to fix CSP issue 2021-01-29 22:21:38 -05:00
Danny Lin
e582d6ca45 web-install: Implement Android reconnection callback
On Android, Chromium does not support automatic reconnection. The user
must manually pair the device after every reboot in order for
fastboot.js to reconnect to it. Unfortunately, this requires the user of
the library to get involved because USB device connction requests are
only allowed as the result of explicit user action, so we need to add a
reconnect request callback for the user to handle.
2021-01-29 22:15:04 -05:00
Danny Lin
b0b811f167 Update fastboot.js for AVB key flashing fix 2021-01-29 17:47:40 -05:00
Danny Lin
c11249d678 web-install: Remove stray log message
This was never meant to be shipped.
2021-01-27 20:24:49 -05:00
Danny Lin
cc976583a6 web-install: Handle bootloader lock/unlock errors 2021-01-27 20:24:49 -05:00
Danny Lin
e5a7ae8ec0 web-install: Rethrow errors after handling
After handling errors and showing them to the user, we can rethrow them
to make them show up in the console. This helps greatly with debugging.
2021-01-27 20:24:49 -05:00
Danny Lin
890abfdaff Update web installer for fastboot.js updates
Some of the API and paths have changed, so this needs to be updated
accordingly. The most prominent change is the removal of BlobStore and
downloading support from fastboot.js, because a fastboot library should
not be responsible for downloading files.
2021-01-27 20:24:49 -05:00
Danny Lin
dff5a750d1 Switch to new bundled fastboot.js
This simplifies cache busting greatly without needing to do further
processing on any fastboot.js code before deploying. It also removes the
need for a non-module script with global scope.
2021-01-23 23:08:12 -05:00
Danny Lin
b88a4bcb88 Update web install for fastboot.js and zip.js updates 2021-01-23 21:10:18 -05:00
Danny Lin
713b4ef564 Implement web install using fastboot.js
This implements the WebUSB-based web installer using fastboot.js to
act as a fastboot client. A bare minimum UI with a plain-text
status/progress caption for each step is included, as well as a plain
button to trigger it and basic error handling.

WebADB has been removed now that we are only using fastboot.js.

Initial features:

- Unlocking and locking the bootloader
- Downloading the latest GrapheneOS release available for the device
- Flashing the factory images zip
- Reusing USB connections
2021-01-23 03:28:02 -05:00
Daniel Micay
3f6de4a482 simpler to avoid using adb like the current guide 2021-01-16 17:28:51 -05:00
Daniel Micay
d78ceb1e9b add stub download implementation 2021-01-05 09:46:56 -05:00
Daniel Micay
ebfef1f23b add locking to web install proof of concept 2021-01-05 08:57:15 -05:00
Daniel Micay
f63c74c8bd add structure to WebUSB proof of concept page 2021-01-05 07:44:57 -05:00
Daniel Micay
fe063f50fe add foundation for WebUSB-based install page 2021-01-05 05:34:45 -05:00