How to bypass account login/firmware update page

The main problem is that the official OUYA server is totally down now (DNS for devs.ouya.tv cannot be resolved anymore), and that the connectivity check during setup tries to open a socket to devs.ouya.tv on port 80, without taking the config file into account.

I found a way to get around that check without modifying router DNS settings, and this is by mapping the dead ouya hostnames directly on the OUYA in the /system/etc/hosts file:

  1. On your PC, run adb shell
  2. Type su to become the root user
  3. Make the system partition writable:
    mount -o rw,remount -t ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
  4. Open the hosts file:
    vi /system/etc/hosts
  5. Press the “down arrow” key until your are at the end
  6. Press i to get into “insert mode”
  7. paste/write that line:
    83.169.45.222 devs.ouya.tv status.ouya.tv
  8. Press return to add a final newline
  9. Press escape
  10. Type :wq (commmand, write, quit)
  11. Press return to exit the vi editor

The connectivity check should work now without rebooting.

Also on http://ouya.cweiske.de/#hosts

3 Likes

Sorry, just a typo in my post, doesn’t appear in the config file. Whit the ouya-world config it works but the it’s terrible slow. That’s why I wanted to test your server.

OK I will try this method.

I get this message, it’s dutch but I means it can’t find the IP.

Deze site is niet bereikbaar

Het IP-adres van de server van ouya.cweiske.de kan niet worden gevonden.

DNS_PROBE_FINISHED_NXDOMAIN

Reset the DNS entry of your router to the default. Also let your OUYA use DHCP again if you used a static IP, so that it gets the normal DNS server again.

Works like a charm! Thanks for this. On this ouya your server works OK. I will check what’s wrong with the other one.

1 Like

Hi folks. First of all many thanks for your efforts to keep the little box of fun alive :slight_smile:

[1-sentence summary]
I can’t get past the network connection screen of the OOBE.

[What should be happening]
I should be able to get to the regular menu.

[What is happening]
I cannot get past “Cannot establish a connection with the OUYA Servers. To turn on Wi-Fi, unplug your Ethernet cable and proceed. To retry ethernet, please check your connection and then unplug and re-plug your cable.”

[What I’ve tried already]
I ran CM11 for a while and followed https://www_s-config_com/uninstall-cyanogen-and-restore-ouya-firmware/ just fine. Afterwards I followed the instructions here.

ADB seems to work:

X:\Users\marce\Downloads\ouya>adb shell getprop ro.ouya.version
1.2.1427-r1

1|shell@android:/ $ ping 45.79.49.220
PING 45.79.49.220 (45.79.49.220) 56(84) bytes of data.
^C
— 45.79.49.220 ping statistics —
2 packets transmitted, 0 received, 100% packet loss, time 999ms

1|shell@android:/ $ ping 83.169.45.222
PING 83.169.45.222 (83.169.45.222) 56(84) bytes of data.
64 bytes from 83.169.45.222: icmp_seq=1 ttl=54 time=40.4 ms
64 bytes from 83.169.45.222: icmp_seq=2 ttl=54 time=39.7 ms
^C
— 83.169.45.222 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 39.789/40.125/40.462/0.391 ms

Thus, as 45.79.49.220 presently seems unavailable (reproduced on Windows) I edited the hosts file:

shell@android:/ # cat /etc/hosts
127.0.0.1 localhost
83.169.45.222 devs.ouya_tv
83.169.45.222 status.ouya_tv
shell@android:/ # cat /system/etc/hosts
127.0.0.1 localhost
83.169.45.222 devs.ouya_tv
83.169.45.222 status.ouya_tv
shell@android:/ # ping status.ouya_tv
PING status.ouya.tv (83.169.45.222) 56(84) bytes of data.
64 bytes from devs.ouya_tv (83.169.45.222): icmp_seq=1 ttl=54 time=40.3 ms
64 bytes from devs.ouya_tv (83.169.45.222): icmp_seq=2 ttl=54 time=40.2 ms
^C
— status_ouya_tv ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 40.253/40.320/40.387/0.067 ms
shell@android:/ # ping devs_ouya_tv
PING devs.ouya.tv (83.169.45.222) 56(84) bytes of data.
64 bytes from devs_ouya_tv (83.169.45.222): icmp_seq=1 ttl=54 time=41.9 ms
64 bytes from devs_ouya_tv (83.169.45.222): icmp_seq=2 ttl=54 time=38.6 ms
^C
— devs_ouya_tv ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 38.665/40.292/41.919/1.627 ms

These ping as well on Windows and the respective pages load in the browser, too

One weird thing I noticed is that the screen always shows 255.0.0.0 as the subnet mask, even with a /24 mask entered manually. This persists through reboots.

adb netcfg shows
eth0 UP 192.168.0.234/24 0x00001043 b8:5a:f7:01:60:clock730:
so that should be fine…

I even tried the ettercap method (with and without hosts modified):

Activating dns_spoof plugin…

dns_spoof: A [devs_ouya_tv] spoofed to [45.79.49.220]
DHCP: [B8:5A:F7:01:60:73] DISCOVER
DHCP: [B8:5A:F7:01:60:73] REQUEST 192.168.0.234
dns_spoof: A [devs_ouya_tv] spoofed to [45.79.49.220]
dns_spoof: A [status_ouya_tv] spoofed to [45.79.49.220]

&

Activating dns_spoof plugin…

DHCP: [B8:5A:F7:01:60:73] REQUEST 192.168.0.234
DHCP: [B8:5A:F7:81:56:D7] REQUEST 192.168.0.73
dns_spoof: A [status_ouya_tv] spoofed to [83.169.45.222]
dns_spoof: A [devs_ouya_tv] spoofed to [83.169.45.222]

Always the same - “Checking for active connection”, then “Checking for software update” and finally “Please check your internet connection and try again. [OK]”

In paranoid mode I disconnected the keyboard and disabled bluetooth on other deives in the room.
The only connections on the OUYA are power, network and HDMI.

Unfortunately I can’t edit DNS on my router - it doesn’t have that feature.

I have a pi acting as NAS that I can run some stuff on if needed.
I’m really at my wits end here - is it possible to replace the OOBE APK maybe?

edit: [URLs broken with '_; due to limitation for new users]

Thanks for the descriptive issue. Note: client.ouya.world is that 45.79.49.220. It does not reply to public ping, but powershell shows it running as normal:

Invoke-Webrequest client.ouya.world

Respone data:
StatusCode : 204
StatusDescription : No Content

Assuming that works fine and returns a 204, then you’re able to reach it fine.

On to your specific issue: Your hosts should be status.ouya.tv. Not “status.ouya_tv”

Same for “devs.ouya_tv” which should be devs.ouya.tv

Fix those and try it all again and tell us if its all fixed or not. Should be it though.

Thanks for the quick reply. I’m getting a 204 through PoSH as well, so both IPs are suitable of course.
I added the underscore to be able to post devs.ouya.tv & ‘http://status.ouya.tv’ - limitation fo new users is 2 URLs max per post.

Ooh, didn’t realize that was the case. Ok, so what the heck is going on. I assume that you are using ethernet ONLY, right? If not, factory reset it (adb reboot recovery) again and don’t type in any wifi creds.

Maybe wouldn’t hurt to have ettercap running and do a factory reset again anyway…

Cheers, but that’s still the same result:

  • started ettercap
  • ran adb reboot recovery

OOBE on OUYA - ethernet only

dns_spoof: A [status.ouya.tv] spoofed to [83.169.45.222]
dns_spoof: A [devs.ouya.tv] spoofed to [83.169.45.222]
DHCP: [B8:5A:F7:01:60:73] REQUEST 192.168.0.234
dns_spoof: A [status.ouya.tv] spoofed to [83.169.45.222]
dns_spoof: A [devs.ouya.tv] spoofed to [83.169.45.222]

and the same for the other IP:

DHCP: [B8:5A:F7:01:60:73] REQUEST 192.168.0.234
dns_spoof: A [status.ouya.tv] spoofed to [45.79.49.220]
DHCP: [B8:5A:F7:81:56:D7] REQUEST 192.168.0.73
dns_spoof: A [devs.ouya.tv] spoofed to [45.79.49.220]
DHCP: [B8:5A:F7:81:56:D7] REQUEST 192.168.0.73
DHCP: [B8:5A:F7:01:60:73] REQUEST 192.168.0.234
dns_spoof: A [status.ouya.tv] spoofed to [45.79.49.220]
dns_spoof: A [devs.ouya.tv] spoofed to [45.79.49.220]

I’ve encountered two problems (note: all urls use commas instead of periods to avoid the url limit on these forums):

Original Instructions
I’m getting a network error when connecting via ouya,world (in the original instructions).

It looks like the server at 45.79.49.220 is not responding properly, as my local machine, my ouya, and online ping tools all report 100% packet loss from ping.

Cweiske,de
When connecting to cweiske,de, everything seems to work fine, but I get a certificate error on “Discover” store. The full error is:
javax,net,ssl,SSLException: hostname in certificate does not match: <devs,ouya,tv> != <mail,cweiske,de> OR <mail,cweiske,de>

I haven’t done anything to encourage the ouya to use SSL, just followed the instructions exactly. I modified the /etc/hosts file to point to 83.169.45.222, and I placed the ouya_config.properties file in the root directory (when connected via adb over wifi), then rebooted.

Pinging devs,ouya,tv and status,ouya,tv both work from the ouya, and no other error messages pop up, except when going to Discover.

Console Info
Ouya 1.0
Build: 1.2.1427_r1
Software: 1.0.13
Android: 4.1.2

Is there any way to get the Discover store to work? Thank you guys for all the hard work! It’s nice being able to use this again!

Follow the instructions at http://ouya.cweiske.de/#usage

@Avranu, did you reboot your OUYA after adding the overrides? Cause you need to in order to flush its DNS cache for that APK (even if it works correctly when pinging from adb shell).

Also, client.ouya.world at 45.79.49.220 doesn’t reply to public pings, but I’ve verified that it is up and running.

Thanks for the incredibly quick reply. I did that. Just ran through the process again. The only thing I’m doing differently is connecting via adb wirelessly, because I seem to be having some kind of driver issue connecting via usb. For others with that issue:

  1. Turn on Ouya

  2. Make sure the Ouya is connected to my WIFI network.

  3. Go to Manage > System > Development > ADB OVER NETWORK
    — turn that to ON
    — record the “CONNECT TO ADDRESS” for later.

  4. On a computer, install Android Studio

  5. Open a command prompt with administrative privileges

  6. Connect to the previously recorded ip, open a shell, and remount root with write permissions:

    adb connect 192.168.1.9:555
    adb shell
    su
    mount -o rw,remount /
    mount -o rw,remount -t ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP

  7. Follow the instructions about changing the hosts file. e.g.

    echo “83.169.45.222 devs.ouya.tv” >> /etc/hosts
    echo “83.169.45.222 status.ouya.tv” >> /etc/hosts

  8. Add the properties file to /sdcard/. e.g.

    echo “OUYA_SERVER_URL=http://ouya.cweiske.de” >> /sdcard/ouya_config.properties
    echo “OUYA_STATUS_SERVER_URL=http://ouya.cweiske.de/api/v1/status” >> /sdcard/ouya_config.properties

    ----EDIT: I originally placed this in /ouya_config.properties, but per the discussion below, it needs to be in /sdcard/ouya_config.properties. The commands above now reflect that.

  9. Remount root as write-only:

    mount -o ro,remount /

  10. Reboot the Ouya

After these steps, everything works fine, EXCEPT for Discover. When clicking on Discover, I get the aforementioned SSL exception. I’ve triple checked the ouya_config.properties file to be sure I absolutely typed http, and not https.

Any clever ideas?

I have not factory reset my ouya, and I haven’t done a firmware upgrade in years. Outside of that, everything should be normal.

–EDIT: After the conversation below, Discover now works fine. I’ve updated my instructions above to reflect what worked for me. I ended up using the ouya.world ip addresses, instead of the cweiske.de ones.

Szeraax: Thanks for the extremely quick response. Yes, I rebooted after. Turned it off, unplugged, waited several seconds, and then booted up again. I also was NOT able to correctly ping it from adb shell, or anywhere else. (I understand you’re saying that’s normal). I ran through the instructions twice before posting, and ran into connection errors no matter what I tried. I’ll do it again, and let you know exactly what error I’m getting.

Try using the other discover server hosted at http://client.ouya.world then (nuke the existing ouya_config.properties file and write)

OUYA_SERVER_URL=http://client.ouya.world
OUYA_STATUS_SERVER_URL=http://client.ouya.world/api/v1/status

Wait! Did you write the file to /ouya_config.properties or to /sdcard/ouya_config.properties, cause it should be in /sdcard/

The former. Maybe that’s the problem. Let me give it a shot!

Look at that! Great catch! I saw it written somewhere that it needed to be in root, but you’re absolutely right, placing it in /sdcard/ did the trick.

Thanks so much for your help! You’re lovely.

The “root” note on my page referred to the MTP-mounted directory if you connect it via USB. I did not expect that anyone would to that on the root directory via adb shell :slight_smile: