Chromecast hacked: uses Google TV code, stripped of Android features
Google described its new Chromecast HDMI web streaming device as running a slimmed down version of ChromeOS, but hackers have discovered it's really Google TV without the Android features.
Google's ChromeOS is essentially a Linux distribution aimed at netbooks and PCs, but designed to only run a version of the company's Chrome web browser. Other features are implemented as rich web apps within the desktop-like browser environment.
Google described its new Chromecast as running ChromeOS without the Chrome user interface, or essentially Linux. But according a report by Google TV enthusiast site GTVHacker, "No, it's not."
The hacker group exploited bugs in the device the same day they received one, allowing them to modify the system and activate shell access "to better investigate the environment as well as give developers a chance to build and test software on their Chromecasts."
Google TV, minus the Android
In examining the device, the group "concluded that itâs more Android than ChromeOS," adding, "to be specific, itâs actually a modified Google TV release, but with all of the Bionic / Dalvik stripped out and replaced with a single binary for Chromecast."
Bionic is Google's replacement standard C library for Android, which replaces the GPL-licensed code in Linux to avoid entangling Android software in GPL-related licensing issues. It's also optimized for running on lower end devices than the original distributions of Linux aimed at PCs and servers.
"Itâs actually a modified Google TV release, but with all of the Bionic / Dalvik stripped out and replaced with a single binary for Chromecast" - GTVHacker
Dalvik is the higher-level Virtual Machine of Android that runs apps. Android's Dalvik is essentially a rewritten, optimized variant of Sun's Java VM, an issue that has spawned a legal fight between Google and Oracle after the latter acquired Sun and accused Android of infringing its intellectual property.
Developers creating software for Android devices can target Dalvik with Java-like apps packaged as JAR files, or write low level C-code using Google's Native Development Kit, targeting the lower level Bionic. But neither of these are supported on Chromecast, unlike Google's previous attempts to target the living room with Google TV devices and its own Nexus Q.
(As an aside, third party apps for iOS are native Objective-C code targeting Apple's Cocoa Touch frameworks; Apple doesn't support a Java or a Java-like VM on iOS, so there's no need for a separate NDK to finagle performance from the platform.)
Google's shift from Android to Chrome on TV
Their discovery that "most of the Google TV code was reused" for Chromecast, specifically that "the bootloader, kernel, init scripts, binaries, are all from the Google TV," lends credence to a report by the Wall Street Journal that described an Android TV prototype developed under Andy Rubin and shown in private at CES at the beginning of this year.
That project was reportedly abandoned this spring around the same time Rubin was demoted from running Google's Android platform. He was replaced by Sundar Pichai, who had previously worked on Google's Chrome browser.
Google's Chrome-related branding for the new device makes sense, now that Android is under the direction of Pichai rather than Rubin. But it also signals the beginning of something much larger, detailed here.