Echo & Alexa Forums
General Category => Alexa Software Development & Technical Discussion => Topic started by: jwlv on February 25, 2015, 08:45:19 pm
-
Did Amazon just quietly leak the Echo source code? The download is 256MB (interesting size), but I have yet to make out what the heck I'm looking at here.
If anyone else is interested, the source code is here:
http://www.amazon.com/gp/help/customer/display.html?nodeId=201626480
There are five versions of source code listed, and each corresponds to each of the Echo software (firmware) versions with the latest being version 2332.
-
It's pretty much a stripped Linux Kernel. You will not find much in it without a lot of digging. (I will look at it tomorrow night) Most of the heavy lifting is done server side, so we won't be getting much insight there.
-
I took a quick glance at it and it looks like only the linux/GNU parts of the software they run on-board, I think they have some proprietary code they didnt include, but I may be wrong.
-
I expect that they did this to comply with the open source license Linux - they only have to release the parts they modify or change. Any new applications not part of the OS itself they can keep private.
-
How do I use the source code? I downloaded it, but its just a whole bunch of files, How do i take advantage of this? Should i use linux? or windows? I can use either.
-
Learn to program, then re-write all the custom code that has been left out of this release, then re-create AWS and all the backend code too.
-
Learn to program, then re-write all the custom code that has been left out of this release, then re-create AWS and all the backend code too.
Yep, very likely just GPL compliance here. Indeed if much of the user space code is proprietary one won't get much/any insight. You might be able to learn a bit more about the hardware as the device drivers are part of the kernel and are probably included. However, it is possible to package device drivers as modules, and if done in the right way (using only non-GPL kernel symbols) could avoid GPL source obligations. So, no guarantee on that even. It would be interesting to just diff this kernel against upstream to see what they have changed.
The other issue is deployment of any changes you make to the device. That would need to be reverse engineered as well.