|
@samccone | |||||
|
With flash.android.com launching to the world today I would love to pull back the covers and tell you a little of how we made it possible to update your Android Phone's operation system through the browser! 📲
twitter.com/AndroidDev/sta…
|
||||||
|
||||||
|
Sam Saccone
@samccone
|
28. sij |
|
Almost four years ago @reillyeon pushed the first commit for the webusb spec
github.com/WICG/webusb/co… making it possible for websites to talk directly to USB devices.
when it launched it had minor fanfare but most people were unclear on the use-cases.
venturebeat.com/2017/09/05/chr…
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
Along the same time as @reillyeon pushed the initial version into chrome @sowbug created a new project called weblight
github.com/sowbug/weblight
As a playground example of what you can do with webusb. pic.twitter.com/nODvar1zCW
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
Me being me... decided to utilize Mike's work to show our tip of tree build status via a combination of Mike’s weblight board and some 3D printing foo...
This was the first time I dipped my toe into webusb land pic.twitter.com/mbd2f15Ul3
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
It was at this point that things got interesting. Android Platform developers always have needed a way to build their code and flash it to their device. This process classically required developers to run a magic sequence of adb commands to update their phone.
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
Recognizing the pain my manager in circa 2008~ wrote a wxpython application which ran on a few machines in the office where people could plug in their phone, press a button and "flash" their device without having to run local commands. pic.twitter.com/9MfPomlqhu
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
This application had many iterations and eventually could be run even on a developers local machine... but this approach had many problems..
wxpython needed special bits installed on the machine.. and those with chromebooks could not use it at all. :( pic.twitter.com/3qunuVD7Mb
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
In 2014~ an intern at google did a project where they utilized the chrome app's USB API to build a basic version of ADB in JavaScript developer.chrome.com/apps/usb
This project acted as an initial experimental proof of concept but never quite took off due to ACL limitations.
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
This brings us to late 2016~ where work started in earnest to utilize the emerging web USB standard to implement ADB developer.android.com/studio/command… in JavaScript and then recreating the flashing logic on top of it. In Sep of 2017 we were able to unlock the dream of a web based flow.
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
With the push to expose our internal ci.android.com ecosystem to the OSS community and partner ecosystem I am thrilled that a critical part of this (flash.android.com) is now live!
* Credential API
* Web USB API
* PWA (installable)
* @____lighthouse 100/100 pic.twitter.com/T98Ul5Vrlv
|
||
|
|
||
|
Sam Saccone
@samccone
|
28. sij |
|
(and yes you can flash a phone from another phone)
Congrats to the team that made this possible and thanks for the support @reillyeon and @ChromiumDev
/fin
|
||
|
|
||