[FLASHER] [v1.3 - 2014-07-07] FlashCast: Quickly and easily mod your Chromecast

Search This thread

kyda75

Senior Member
Jun 23, 2010
62
1
Does this mean we cant get all the bug fixes from Google?

If I changed my mind can I do the reverse, ie have the device accepting OTA updates again?

What is a powered Micro-USB OTG cable?
 
Last edited:

bormeth

Senior Member
Jul 12, 2010
92
10
Does this mean we cant get all the bug fixes from Google?

If I changed my mind can I do the reverse, ie have the device accepting OTA updates again?

What is a powered Micro-USB OTG cable?

When a new updates releases, the guys here will make a zip for you to flash. :) And jeps you can go back if i would want that.

Its a cable so you can attach a USBkey to the chromecast :)
 

flinkisme

Senior Member
Jan 6, 2011
69
5
just flashed 13300 onto a new chromecast received yesterday from Amazon ;)

Sweet process. I wish rooting my phone had been that simple!

Thanks for you hard work. I sure appreciate it.
 

Saschwatch

Senior Member
Mar 4, 2011
93
14
Can this be done with an OTG cable that doesnt have the power socket, and using tv (if your hdmi port supports it) power to power the chromecast
 
Last edited:

tchebb

Inactive Recognized Developer
Jul 28, 2010
189
242
tchebb.me
Can this be done with an OTG cable that doesnt have the power socket, and using tv (if your hdmi port supports it) power to power the chromecast

If you can power your Chromecast without a USB cable, an unpowered OTG cable should work just fine. I'm interested to know the model of your TV though, since I was under the impression that the Chromecast wasn't compatible with any HDMI power standards.
 

kyda75

Senior Member
Jun 23, 2010
62
1
I have flashed 13300, it went through fine. Thanks

Question is how do we know the device is running custom ROM?
The information from the chromecast app has no indication of flashcast mods anywhere, maybe I didnt look closely enough.
 
Last edited:

ddggttff3

Inactive Recognized Developer
Dec 13, 2009
815
1,543
Minnesota
I have flashed 13300, it went through fine. Thanks

Question is how do we know the device is running custom ROM?
The information from the chromecast app has no indication of flashcast mods anywhere, maybe I didnt look closely enough.

Best way to test is to telnet, or ADB into the device. I may add a custom boot image to my future flashcast ROMS to help people verify it was flashed successfully.
 
  • Like
Reactions: kozmo2k4

tchebb

Inactive Recognized Developer
Jul 28, 2010
189
242
tchebb.me
Best way to test is to telnet, or ADB into the device. I may add a custom boot image to my future flashcast ROMS to help people verify it was flashed successfully.

Boot images are tricky. I was originally planning on having on-the-fly initramfs modification in FlashCast like there is for squashfs, but it turns out that just modifying the initramfs of and repacking the stock boot image will leave you with an unbootable device. This is because of some oddities with what happens on a vulnerable Chromecast when signature verification fails. Long story short: you can't provide a kernel command line from the boot image, so you have to recompile the kernel with your desired command line hardcoded. This in turn requires a kernel patch due to some sloppy coding on Marvell's part. If you ever do want to provide an alternate boot image, PM me and I can give you the details.
 

ddggttff3

Inactive Recognized Developer
Dec 13, 2009
815
1,543
Minnesota
Boot images are tricky. I was originally planning on having on-the-fly initramfs modification in FlashCast like there is for squashfs, but it turns out that just modifying the initramfs of and repacking the stock boot image will leave you with an unbootable device. This is because of some oddities with what happens on a vulnerable Chromecast when signature verification fails. Long story short: you can't provide a kernel command line from the boot image, so you have to recompile the kernel with your desired command line hardcoded. This in turn requires a kernel patch due to some sloppy coding on Marvell's part. If you ever do want to provide an alternate boot image, PM me and I can give you the details.

I thought the boot animation was located in /res/images for the rom. I am not talking about the kernel boot image, but the actual moving animation during boot when the OS is loaded.

Either way, please PM me the details.

EDIT: Yeah, changing the images in /res/images changes the boot image, just as I wanted. As for changing the model number though, that would require kernel work.
 
Last edited:

tchebb

Inactive Recognized Developer
Jul 28, 2010
189
242
tchebb.me
I thought the boot animation was located in /res/images for the rom. I am not talking about the kernel boot image, but the actual moving animation during boot when the OS is loaded.

Either way, please PM me the details.

EDIT: Yeah, changing the images in /res/images changes the boot image, just as I wanted. As for changing the model number though, that would require kernel work.

Oh, you meant a literal "image." I feel like an idiot now. I was thinking you were going to change ro.build.version.incremental in build.prop so that the Chromecast app showed something like "13300-rooted" as the version. No idea if a change like that would affect anything else, though.

EDIT: Instead of a PM, I'm going to type up everything I know about the Chromecast on a wiki (maybe the GTVHacker one, maybe one on GitHub) when I get the time so it's easily accessible for everyone. In the meanwhile, stop by #gtvhacker on freenode if you have any questions. It's much easier to explain stuff over IRC than through a long series of PMs. :)
 
Last edited:

hearnia_2K

Member
May 29, 2007
20
1
I want to know, if I flash the 13300 image with this then will it flash a new bootloader, or will I keep the original vulnerable one? Additionally, would I be able to reflash the original GTV image or other older images after using this to flash the 13300 image?

Thanks!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 82
    VaHvwVY.png


    What is it?

    FlashCast is a USB image that provides a standardized way to mod your Chromecast. Think of it like a recovery which runs off of a USB drive. No more struggling with the limitations of the GTVHacker image, which is hard to modify and can only flash the /system partition. FlashCast is based on shell scripts, so it you can use it to do anything you can do with a root shell. It also comes with a comprehensive suite of helper functions, so many tasks actually become much easier than they would be using a regular shell.

    How do I use it?

    If you prefer to follow a video tutorial, @ddggttff3 has made one here. Otherwise, read on for written instructions.

    Preparation

    Before you begin, you'll need some materials:
    • A Chromecast with a vulnerable bootloader. (For the bootloader to be vulnerable, the Chromecast must have never been connected to the internet and have a rootable serial number.)
    • The latest version of FlashCast (the download link is at the bottom of this post).
    • A USB drive (minimum size 256MB) which you are willing to have erased.
    • A powered Micro-USB OTG cable such as this one. (Alternatively, an unpowered USB hub and unpowered OTG cable can be used as shown here. I have not tested this method and cannot help you if your USB drive is not detected.)

    Installation

    Once you've gathered everything required, you can install FlashCast to your USB drive. To do so, you need to write the .bin file contained in the FlashCast .zip file you've downloaded to your drive. Simply using a file explorer to drag the .bin file to your USB drive is not correct and will not work. The specifics of doing a low-level write differ depending on OS, but, in general, Linux and OS X users should use dd and Windows users should use Win32DiskImager. This operation will erase your flash drive.

    After you've written the .bin file to your USB drive, your computer will no longer recognize a filesystem on it. This is normal. In order for FlashCast to set up the drive's filesystem, you need to boot your Chromecast from the drive. To do this, perform the following steps:
    1. Connect the male end of your Micro-USB OTG cable to your Chromecast.
    2. Plug your USB drive into the USB-A female connector of the OTG cable.
    3. Simultaneously hold the button on your Chromecast and connect the Micro-USB power connector to the female Micro-USB port of the OTG cable.
    The power must be connected last. If it is not, your Chromecast may fail to detect the USB drive and boot up normally. If this happens, simply repeat the process, making sure to perform the steps in the correct order.

    If FlashCast was copied correctly, you will see a red light on your Chromecast for approximately 9 seconds. It will then turn white and your TV will display a screen containing the FlashCast logo (shown at the top of this post) and various instructions. Once you see this screen, you may release the button. The screen will appear for another 9 seconds or so, after which your Chromecast will reboot on its own to the stock image. After it has rebooted (you may disconnect the power when it starts to boot into the stock image if you're worried about it updating), FlashCast is installed on your USB drive and ready for use. Your device is NOT rooted at this point and can still be updated by Google. To root, you need to flash a mod such as Team Eureka's Eureka-ROM. When you plug the drive into your computer, it should appear as an empty drive which you can copy files to.

    Usage

    FlashCast-compatible mods are distributed as .zip files. To flash a mod, simply copy it to the USB drive with the name eureka_image.zip. Do NOT use dd as you did in the previous section. If you do, you will have to repeat the whole process. Instead, just copy it onto the drive's filesystem as you would any other file. FlashCast is also capable of flashing a GTVHacker-style raw system image; if there are no native FlashCast mods present and the system image is in a file called Chromecast-Rooted-System-GTVHacker-cj_000-July27-635PM.bin, it will be flashed. This method of flashing is very inflexible and is not recommended.

    How do I develop for it?

    If you are interested in creating mods for FlashCast, please see the developer thread.

    Who made it?

    FlashCast is based on a generic Buildroot Linux image. Its mod framework was written entirely by me, but I couldn't have done it without the help of various individuals. Thanks, @cj_000, for helping me and putting up with my stupid questions in IRC. And thank you, @tvall, for releasing your update-free images so promptly up until now. Without those, FlashCast would have a much smaller potential user base.

    Where do I get it?

    Downloads and source code are available at FlashCast's GitHub repository. The latest version is currently v1.3.
    10
    How do I know if I have A Chromecast with a vulnerable bootloader ?

    The initial software which the Chromecast shipped with, build 12072, had a vulnerable bootloader. In all following software versions (12840, 12940, and 13300), the vulnerability is patched and FlashCast can't be used. If your Chromecast has been allowed to access the internet, it will have updated itself and will not be vulnerable. If you have not set up your Chromecast and it still has the software from the factory, it may or may not be vulnerable, depending on when you bought it. To check, you can plug it in (but not set it up), and check its "Build" in the Chromecast app. Alternatively, you can simply try to boot FlashCast on it. If it's patched, nothing bad will happen; the USB drive will simply fail to boot.
    5
    The problem is Windows' poor handling of flash drive partitions. @ddggttff3 figured out how to force Windows to reformat a FlashCast drive from the command line the other day. When he wakes up tomorrow, I'll see if I can get him to post instructions. Sorry for the inconvenience.

    Have a Tutorial Video:
    http://www.youtube.com/watch?v=NRsUuiuWQMM

    Not my best work, but was somewhat rushed. Hope that's OK.

    Commands Used in CMD:
    Code:
    diskpart
    list disk
    select disk * (where * is your jump drive disk number)
    clean
    convert mbr
    create partition primary

    Like I said in the video, make sure you select the drive letter of your jump drive! If you select the wrong disk you can accidentally wipe all of the data from your computer. Me, XDA, and team eureka are NOT responsible for any data loss.
    5
    I have just released FlashCast version 1.1. A changelog and downloads are available on GitHub here.
    5
    So by using this, OTA updates would no longer be pushed to the device and you wouldn't get new features/fixes, correct?

    If so, how does one keep root and still get the latest updates?

    This is just a flashing tool, so all of your questions depend on the ROM you flash. If you flash the 13300 package I made, it will disable updates and enable telnet/adb. If you want updates in the future, just wait for me,or someone else to release a new image once a new update rolls out.

    So does this mean it will be possible to get at the hard-coded Google DNS server in the Chromecast for those of us wanting better Netflix outside of the US?

    Yes, it means you can change the DNS server chromecast uses. I actually plan on making a flashable zip to do just that in the next few days.

    EDIT: Posted the flashable zip in its own thread. http://xdaforums.com/showthread.php?t=2455888