yashsingh1/xdaforums huggingface dataset:
[Google Chromecast] enboig:
Same problem. I tried to update, but it stuck al "Chromecast..." (for 6 hours). I tried to reflash eureka rom but after apearing the flashcast it screen went dark and red light on chromecast. I rebooted and now my options are:

- Normal boot shows "Chromecast..." forever

- Trying to reflash shows dark screen (with some grey pixels) on screen and red light on chromecast.

What can I try?
[Google Chromecast] WuNgUn:
Flashed thru Juice using telnet... Success..

Downloaded Google OTA... Rebooted, saw Chrome spinning logo, rebooted again with Eureka logo and updating... Had white LED. Took about 5 minutes then rebooted again.

Now I have Chromecast... Logo in white and that's it! Did I kill my CC??
[Google Chromecast] morchu:
Anyone knows the sha1sum of the OTA version: 84838 ?

Or if anyone knows the exact google OTA link for that version of file please do send it.

something like.......

http://redirector.gvt1.com/edgedl/googletv-eureka/stable-channel/ota.84838.stable-channel.eureka-b3.<FILL_THE_BLANKS_HERE>.zip

or

http://cache.pack.google.com/edgedl/googletv-eureka/stable-channel/ota.84838.stable-channel.eureka-b3.<FILL_THE_BLANKS_HERE>.zip
[Google Chromecast] morchu:
Nevermind. Found what I was searching for.

58634c32e910f395736070dfd0d4146a86d1450d

http://redirector.gvt1.com/edgedl/g....58634c32e910f395736070dfd0d4146a86d1450d.zip
[Google Chromecast] morchu:
It does not seem like any nand layout changes were made.

By the way, if anyone experimenting with compling kernel or re-packing boot images, isn't it a lot easier to flash flashcastrecovery to mtd@kernel and your experimental kernel to mtd@recovery, so that you check your experiments via "reboot recovery"? And once you got screwed with your experment kernel let it boot normal to your flashcast in mtd, without using usb. Probably can avoid the hassle of using usb-boots, when you may have to get to flashcast recovery boot many times during the process.

I am yet to try that because I am not sure whether there is any restrictions put by bootloader before booting regular boot image making it impossible to flash recovery from regular boot.
[Google Chromecast] gdude:
Stuck on "Chromecast..." [SOLVED]

My Chromecast updated after the Autoroot and I got stuck at the "Chromecast..." screen. No luck using Flashcash or Hubcap, even when I dragged out my old Teensy 2.0 and tried at least a dozen times to get it to take. I was close to giving up and assuming my Chromecast was cooked.

Then I tried a long-shot idea described elsewhere on this thread: power up and down fast many times, and eventually I got into recovery with the Flashcast logo on screen. I was able to ssh into the recovery partition, and then manually load up the stock Google image by using scp to copy each of the 3 image files to /tmp and flash them manually using:

flash_mtd_partition 'rootfs' ./system.img

flash_mtd_partition 'kernel' ./boot.img

flash_mtd_partition 'recovery' ./recovery.img

clear_data

It need to take an update from Google and reboot before being fully functional.

It's back to a stock unrooted Chromecast, but at least it works.
[Google Chromecast] morchu:
For folks who are interested to keep the root in the latest version, I was able to get it boot successfully. I made some random unnecessary changes. But the only change required (on top of the regular rooting changes) are

1. Do not use dmsetup to mount /system. This does check integrity of system partition and will fail.

Essentially in init.rc remove lines

exec /sbin/dmsetup create system -r /dmtable

mount squashfs /dev/mapper/system /system ro nodev noatime

and replace with the old way of mounting system

mount squashfs mtd@rootfs /system ro nodev noatime

2. Do not start process_monitor service

Delete line "start process_monitor" in init.rc

You can just delete /bin/process_monitor from system partition, and it should not execute the init.rc service as well.

3. I also changed the dump_msg service to oneshot in init.rc. But I don't think it matters.

I also did some other random changes, which are unnecessary. I will revert those changes when I get some time, but for now it is booting without any issues for me.
[Google Chromecast] Johan1976:
Can you possibly make a flashcast image for this?

Is this with autoroot?

Or have you just disabled updates?
[Google Chromecast] KenMacD:
Hi [MENTION=1635564]morchu[/MENTION]. I've been trying to follow your work here, but with 104827. Have you tried this one? I haven't managed to make a boot image that'll actually boot.

When you have time could you post more on what you did to get this working? Or post your boot.img and system.img and I can probably figure it out from there.
[Google Chromecast] Idontwantausername:
How were you able to SSH? Does flashcast connect to WiFi?
[Google Chromecast] danielg4:
Since the Chromecast was already set up for my Wi-Fi network, Flashcast somehow read the settings and connected to it.
[Google Chromecast] ghostd0g:
If you create a flashcast 1.3 usb and copy the 44433.001 - 2015-11-15 Eureka-ROM into the root of the new flashcast partion ... using a OTG cable .. my Chromecast did re flash the older firmware

just follow the 44433.001 - 2015-11-15 Eureka-ROM - Based on OTA 44433 instructions after creating a flashcast 1.3 usb
[Google Chromecast] ImCoKeMaN:
Do you have the system.img to play with? It seems like copying a new init.rc and maybe deleting the update file would be an easy to create flashcast mod. I was curious about making a sed script even that could mod new versions, but seems nobody is developing because few are interested too with all the newer toys.

Edit:

I looked at the system.img file from the newest OTA and I don't see where the init.rc is, I was planning to modify as you mentioned, but don't know where to find it while in flashcast to make a mod.

Edit2: looks like it's in boot.img and that is harder to modify, from what i'm seeing in this thread including the issue above. Is this the right steps to make a boot.img: https://github.com/team-eureka/Eureka-ROM/tree/master/initramfs and has anyone been successful with this?

Edit3: Tested with that info and info from this link posted in post 254: https://hackmd.io/vGr8L1LZRiuiITVoHwzeHg?both#

I was able to get it to boot back to Chromecast... after some failed boot.img creations so I think I mangled it back properly this time, but I still can't see how morchu made this version work and it looked like ddggttff3 said it was more than just init.rc in the newer kernel that wasn't working.
[Google Chromecast] prefect472:
Stupid me flashed this without reading the whole thread for possible issues :) ... I also got the "First block failed verification..." error and now my Chromecast (1st gen) is stuck on the "chromecast..." black screen and I can't ssh or telnet to it.

Since I was trying to get as close to non-rooted as I can I might as well unroot. Is there a way to trigger it to reflash the Google OTA? Or how would I do it? I rooted this years ago and barely succeeded so it might just be easier to go and buy a new one if extra hardware is required to unroot.

Edit: I can ssh and also get the "SETUP FAILED: Unsupported Mode! This version of Flashcast can only be ran from the recovery parition of the Chromecast."
[Google Chromecast] KenMacD:
Okay. I managed to get an image that would work by building the older eureka_linux kernel and putting it together with a modified initramfs and system from 124602. It seems to work for me, but I make no guarantees. I started a new thread to discuss it at https://xdaforums.com/android-tv/chromecast/rom-unnamed-test-t3834330.
[Google Chromecast] davidj7479:
I did the same thing, can't get flashcast to take on the usb stick, I'm stuck..
[Google Chromecast] cancunia:
I'm a bit late to this party, up til now my CC was working fine with my limited use of the Eureka ROM but I noticed that I couldn't cast from a tab in my laptop's Chrome browser. The Flashcast-AutoRoot method gives the same problems as above on the second reboot after the OTA update so I'm guessing there's an incompatibility with the downloaded OTA & the real OTA. I've had to revert back to stock firmware via this thread (post 58).

https://xdaforums.com/showpost.php?p=72094986&postcount=58
[Google Chromecast] morchu:
I wish I documented the exact things I did on the boot image and system image last time. I failed to do that at that time and just tried to redo the same to document it for you folks. And ...... I bricked my toy (I guess I was overconfident, since I had done it before).

Essentially there is a chain of trust established from bootloader to bootimage to system image, and if you miss a small step anywhere in that chain.... the chain is broken and you have a brick. It is doable, but very risky, since the exact methods of this chain of trust may change from one image to other. Bootloader does not get modified much. But bootimage does, and with every new bootimage we have to assume there is a new method/too much risk.

So maybe at the top of this thread put a big warning in RED letters. Anyway most of us lost interest in this topic from 2015, and there are so much newer toys to play with now in 2019.
[Google Chromecast] KenMacD:
Hey Morchu, thanks for trying. Provided you always delete the bootloader from updates then it should be impossible to completely brick it, as you can always fall back to booting from USB. Breaking the chain anywhere else fortunately just prevents it from booting.

If you want to see what's up with it you could try soldering on a serial connection (pins: https://www.exploitee.rs/images/2/29/Chromecast_UART.jpg)

I agree though, I know a lot of people are flashing back to stock.
[Google Chromecast] morchu:
By the way if anyone is still keeping their rooted chromecast and want to get to the latest system and still keep it rooted you can do a loop mount of a system squashfs image and initrd and restart the cast_receiver. This way there is no chance of bricking it since a reboot will just get it back to the way it was. If anyone is interested I can get the image files for this. Since chromecast kernel only supports squshfs,vfat and yaffs2 the image files are going to be in squashfs format.

=============================

sample loopmount script

=============================

#!/bin/sh

/chrome/cast_cli stop cast

mkdir -p /initrd

busybox mount -o loop,ro /cache/initrd.sqfs /initrd

busybox mount -o bind /initrd/lib /lib

busybox mount -o loop,ro /cache/system.sqfs /system

busybox mount -o bind /initrd/sbin /sbin

# cp -a /initrd/root/* /. #### this step is optional

start cast_receiver

=============================

---------- Post added at 08:40 PM ---------- Previous post was at 08:34 PM ----------

If anyone is still interested I can post the files for you to test. Unfortunately I don't have old chromecasts anymore. But good thing is that the above method only makes temporary changes and wont survive a reboot. So no risk of bricking.

Essentially you would need the below files. I already posted one of the file above (the script).

busybox (for loopmount support)

loopmount script

initrd.sqfs (mainly for the /lib from new boot image)

system.sqfs (rooted new system image)

Let me know if anyone still interested.
[Google Chromecast] bhiga:
Oooh, this is interesting!

I do still have some root-friendly Chromecasts I've been holding onto, but I'm lacking time/knowledge to really test this out without some pretty major hand-holding and patience. :o
[Google Chromecast] morchu:
I downloaded and looked through the "ota.159268" kernel and system and compared it with "ota.80438".

Essentially they are mostly compatable kernels, but the /libc (which is part of initrd) need to be updated for the new system executables to function.

The risk of bricking is mainly due to the chain of trust established from bootloader to kernel and then from kernel to system. So the issue of all bricking was probably due to the attempt to modify the initird, which in turn breaks the chain of trust. of boot.img.

So we let it boot using the already trusted ota.80438 kernel and initrd (boot.img) and then as part of the init, we could loop mount a new ota.159268 rooted /system and /lib , as long as we still have a way to get the image files to either /cache or /data partitions (via adb or ssh or telnet). Once we prove the concept, we can automate this loopmount as part of our userscripts at early init (without touching the initrd of 80438 boot).

Just for fun I already created the files system.sqfs and initrd.sqfs. But not posting it yet to wide public before someone can try it manually via adb.
[Google Chromecast] morchu:
By the way, according to google product page (https://support.google.com/chromecast/answer/7124014)

the latest production firmware version is 1.36.157768

But using the curl method, I am always getting the link for downloading Firmware version 1.36.159268​ , which is apparently a " Preview Program firmware version".

If anyone has the link for 1.36.157768 please let me know. (or just the sha1sum of the file, since we know the download link if we lnow the sha1sum).
[Google Chromecast] metterschling:
Thank you [MENTION=1635564]morchu[/MENTION] for your work! A recent firmware would bring new life to my rooted Chromecast, so I'd be interested to try things out. I think I understood your explanations above, but still would need step-by-step instructions to perform the testing.
[Google Chromecast] morchu:
Before I send you the files/instruction, do you know whether you have adb enabled on regular boot on your rooted chromecast? That would be the easiest way to transfer the needed files to your rooted chromecast's /data/ folder.

Another method is to reboot to flashcast and transfer it while in flashcast.
[Google Chromecast] extrem0:
What white chromecast?

How long did you wait in recovery (flashcast)?

This new method is taking 5-10 minutes inside the recovery in order to flash an update. It used to take less than a minute, but I this auto-root method is more demanding.
[Google Chromecast] ImCoKeMaN:
I never unplugged in recovery, it did it's own rebooting. I set up a flashcast usb reverted to stock eureka and am trying again with a better power configuration, it is now in flashcast again we'll see if it's better this time =)

Update: booted, saw the chrome logo, looks to be all good now. Glad it was easy enough to recover for anyone that has already rooted with a power USB OTG, but might not be bad to have a warning for others that might be using tv power that a real power supply would be a good idea.
[Google Chromecast] extrem0:
I have three chromecasts powered by TV USB ports and updated them successfully. It's really odd what happened to yours. At least it was easy to recover it. That's one of the best features of rooted chromecasts. Having a modified recovery.
[Google Chromecast] ImCoKeMaN:
I'm sure some tvs supply more power than others too, anyway glad it's up and maybe this will help others.
[Google Chromecast] Asphyx:
Nah....5Volts is 5 Volts! LOL

The issue is the risk involved with using the TV which has a remote and can EASILY be shut off accidentally while it's in the process of an update.
[Google Chromecast] ImCoKeMaN:
I think you are joking but just to be clear for others reading. I definitely mean amps not volts and there is a difference. I know the raspberry pi would not run off this port and there is tons of info about those power supplies. My TV was not at risk of being turned off by remote as it wasn't the main one either =)
[Google Chromecast] ghowse:
Has anyone managed to get the latest update booting into the web interface? I'm wary of messing around with telnet as root.
[Google Chromecast] Pietplezier:
For the record:

Currently on Eureka rom 44433.001

Telnet with PuTTY and execute these 3 commands one by one:

busybox wget http://pdl.team-eureka.com/recovery/install.sh -O /cache/install.sh

busybox chmod +x /cache/install.sh

/cache/install.sh

That should be sufficient? Also i try'd SSH instead of Telnet, bus whats the username/pass?

A web-interface should be rocking awesome, sadly enough i have not that much coding skills, i guess someone else have? :)

ddggttff3 and other teamEureka members, you are the best!
[Google Chromecast] extrem0:
Actually the latest Google Ota is later than that. I don't recall exactly but it is something like 46xxx.

Yes, only these 3 commands are needed in order to update.

Ssh credentials are:

login: root

no password.

But once you use this auto-root method you'll only be able to access your chromecast via telnet (no ssh nor Web panel for now).
[Google Chromecast] ghowse:
Thanks. I've done the update successfully. As mentioned in the OP, SSH is no longer available in the new version, only Telnet.

OP also says:

Q: How do I setup the EurekaROM Web Panel?

A: By default this ROM has no Web Panel, but this can be added by bootstrapping onto the custom startup script, but I will leave this up to you.

This is where I have ground to a halt because I can't find a text editor for use within Telnet. Also, I'm too scared to edit a script offline and copy back to the CC. Fear of bricking!

So ..... any ideas how to bootstrap the WebPanel?

Cheers

Geoff
[Google Chromecast] ghowse:
So far, I have discovered that vi is in fact registered with Busybox, so at least I now have an editor. My problem now is to find out how to enable the webserver, and then create a script to load it at boot.

Or maybe there is an existing script with the command #commented out? I don't know and it's driving me crazy.

If you are out there ddggttff3, I hope you are following this clumsy story.

Cheers

---------- Post added at 03:32 PM ---------- Previous post was at 03:06 PM ----------

Another piece of the puzzle? https://github.com/team-eureka/Eureka-Panel

Should I try a busybox wget https://github.com/team-eureka/Eureka-Panel ?
[Google Chromecast] Asphyx:
I may be wrong here....

But it's my understanding that there is no Web Panel so to enable one first you would have to create it (I suppose you could lift is from Eureka Source), and then find some way of putting it on the Device to be called on boot.
[Google Chromecast] ddggttff3:
Exactly this, the web panel was based around EurekaROM, so to get it working not only would binaries need to be added (and linked) but you would need to re-compile and modify the Eureka Panel to work with the new binary locations, and new DNS settings configuration on this ROM.

No one ever said it was an easy task. :angel:
[Google Chromecast] ghowse:
I was hoping the web panel was just hidden away by TE guys having a bit of fun, similar to an "Easter egg". I can see why it is not so easy to implement.

No problem. I can live without the web panel. Many thanks to TeamEureka for their great work.

Cheers

Geoff
[Google Chromecast] manotroll:
da pra usar na rom mais recente ?

no caso a 46278
[Google Chromecast] extrem0:
Please English only.

No, you can't. You must have rooted or rootable device.
[Google Chromecast] tdhite:
Works like a champ. Expect to get a read error notice during the flash process; the issue is innocuous so no worries. There is a post above noting that others saw it as well.

Thanks also for the custom bootstrap script ability. Fits the bill for pulling and starting all the other toys I wanted up and running (e.g., small dnsmasq daemon and whatnot).
[Google Chromecast] cantenna:
Anyone figure out who's to update Chromecast and keep the eureka web interface yet?
[Google Chromecast] stangri:
Thanks, successfully transitioned from the eureka-rom!

Is there any way to check the current ROM version from command line?
[Google Chromecast] zando2712:
[MENTION=2212097]ddggttff3[/MENTION] you made this transition so easy for us. :good:
[Google Chromecast] metterschling:
Yes, ADB is enabled in the rooted CC (still at last Eureka release 44433.001) and I can successfully connect and adb shell into it.

Update: ADB is not really required if you start from the Eureka 44433 release as you can always easily set up a http server with for example "python3 -m http.server 8000" somewhere on a PC and then use "busybox wget ..." (busybox is included on that release) to pull the files on your CC.

In the meanwhile I copied your loopmount.sh script to /cache on the CC, then downloaded the 159268 OTA to a PC and extracted it ... now waiting for your instructions to get/build the modified initrd.sqfs and system.sqfs. I'd prefer a script to create them myself rather than binaries, but that is your choice.

Update2: Played around a bit, generating unmodified system and initrd sqashfs images on my PC to test the process:

# prereqs
sudo apt install abootimg
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk/
sudo python3 ./setup.py install
# real stuff
mkdir -p ~/tmp/chromecast
cd ~/tmp/chromecast
./adb push ~/tmp/loopmount.sh /cache/
wget http://redirector.gvt1.com/edgedl/googletv-eureka/stable-channel/ota.159268.stable-channel.eureka-b3.adf9f4e6b7ad7068e5f85dbb375236d5d933031b.zip
binwalk -e ota.159268.stable-channel.eureka-b3.adf9f4e6b7ad7068e5f85dbb375236d5d933031b.zip
cd _ota.159268.stable-channel.eureka-b3.adf9f4e6b7ad7068e5f85dbb375236d5d933031b.zip.extracted/
# get the system image
file system.img
binwalk -e system.img
cd _system.img.extracted/squashfs-root/
mksquashfs . ~/tmp/chromecast/system.sqfs -all-root
# test system image
sudo mount -t squashfs -o loop ~/tmp/system.sqfs /mnt/
sudo umount /mnt/
# Now get the initrd
binwalk -e boot.img
dd bs=256 skip=1 if=boot.img of=~/tmp/chromecast/aboot.img
cd ~/tmp/chromecast/
abootimg -x aboot.img
file initrd.img
mkdir rd
cd rd/
xz -d -c ../initrd.img | cpio -i -d -H newc --no-absolute-filenames
mksquashfs . ~/tmp/chromecast/initrd.sqfs -all-root
# test initrd image
sudo mount -t squashfs -o loop initrd.sqfs /mnt/
sudo umount /mnt/

Copied the images to the CC and executed the loopback.sh script. At first run I recognized that the sequence is wrong, as soon as system mount is overloaded, busybox is no longer available. So corrected loopmount.sh looks like:

#!/bin/sh
/chrome/cast_cli stop cast
mkdir -p /initrd
busybox mount -o loop,ro /cache/initrd.sqfs /initrd
busybox mount -o bind /initrd/lib /lib
busybox mount -o bind /initrd/sbin /sbin
busybox mount -o loop,ro /cache/system.sqfs /system
# cp -a /initrd/root/* /. #### this step is optional
start cast_receiver

Result: CC was still working a minute or so after the script ran, but then the screen turned black and CC was no longer reachable from Google Home app. Shell login (here: adb shell) still was there, so issued a reboot to verify that nothing is broken. After reboot CC came back up successfully so indeed nothing is broken permanently as expected.

So finally I only need your tweaks to the squashfs images for another attempt ;)
[Google Chromecast] morchu:
Try this :

https://drive.google.com/file/d/14zOVskgL4Eo_hxIbl3LJe9VHb9HOXZV5/view

https://drive.google.com/file/d/1HPKz5oRtJ4rWduINUkZCc54dEUFxEW8J/view

Second file is a readme. You want to upload (via adb is easiest) and untar the first file which contains the modified system squashfs and initird squashfs into /data/. This should create a directory /data/newsys in the chromecast. All needed files are in there. The script you want to execute is /data/newsys/newsys.sh

Let me know how it works out.

If this works and gives a stable chromecast in latest system for at least 30 minutes, then we can always restart other services.

One thing to note is that probably the dropbear executable compiled with Eureka may not be compatable with the new libc files. So you may want to execute the dropbear/ssh before executing the loopmount script, if you ever make the script execution automatic. But this is not an issue when doing the script execution manually.