I have created a custom ROM (based on latest Eureka mod version 44433.01) that will let you play local media files without any wifi or other devices to control it.
It essentially becomes a self contained media player.
Media files can be stored either locally on the internal flash, or from an attached USB memory.
Playback is controlled by the button on the device.
What it does:
#1 - Getting the device to start up without network
Google has made a lot of checks to ensure the device is connected to the internet before it lets you start up.
- cast_shell and net_mgr makes http requests to google servers. I have patched those binaries so they make requests to the local web server instead.
- The device make a dns lookup sent to server 18.104.22.168. I have worked around that by creating an alias for 22.214.171.124 on the local host and run a dns server.
- The device will not finish booting until it has received an updated time from pool.ntp.org. This is fixed by adding pool.ntp.org as 127.0.0.1 in the hosts file, and locally running a sntp server.
Those workarounds will let the device start up normally even when network is missing.
The scripts are made so they only do something when we do not have internet. For normal connected usage none of the above is performed.
When we have detected that there is no internet (if we fail to get a new time from NTP server), the above fixes are performed.
After this the system may have a "brain freeze", but wait until the idle screen is back up again and it will be finished.
#2 - A cast sender that talks to the device and tells it what media to play.
To actually play any media files I have created a media player with a cast protocol implementation that talks to the device locally, and a cast sender implementation.
In addition there is a cast receiver app on the local web server.
An FTP server is also started at boot to make it easier to load media onto the internal flash.
1: Before you start you should set the Whitelist Provider to "Locally Stored" in the Eureka ROM Device settings.
A custom whitelist is required so we can have a local idle screen and also for the media player to work
2: Flash the zip-file like any other flashcast zip, and wait until it reboots.
Now the device is prepared with all the rCast files, but it's not yet activated. So far it is almost identical to the Eureka ROM, except for patches to cast_shell, net_mgr and a fix to launch user scripts during boot.
3: Login to the CC using telnet and run the following commands
busybox cp /system/rcast/apps.conf.template /data/eureka/apps.conf busybox cp /system/rcast/user_boot_script.sh.template /data/user_boot_script.sh chmod 755 /data/user_boot_script.sh
You should now be good to go.
To remove rCast features, remove or edit /data/user_boot_script.sh. This is the file that actually launches all the rCast features
HOWTO Control Media playback
The device only has one button so it is used for all control. Every command is a sequence of long and short presses.
a short press is < 1 second, a long press is > 1 second.
When there has not been any button pressings for 1 second the command times out and is executed.
Play/Pause: 1 short press.
Next video: 2 short presses
Previous video: 3 short presses.
Stop playback: 1 long press
HOWTO upload media files
Find out the ip-address of the device and connect with a FTP client.
All videos are placed in /data/rcast/videos are included in the playlist.
Reboot the device. The playlist is created during the start phase.
Currently only mp4 files are supported.
rCast 1.1.1 based on Eureka ROM 44433.01 available HERE
This version does not work properly when there is no wifi. It works when there is wifi, but no internet.
v1.0 based on Eureka ROM 27946.002 available HERE
This version has no restrictions for wifi.
Sources are available at https://github.com/rundgong
Thanks to @tchebb and @ddggttff3 for answering some questions I had about the Eureka ROM, and of course the entire Eureka team for making their ROM.