Search code examples
androidgoogle-glass

Google Glass installing XE12 on a previously rooted XE8 Glass


I have (or rather had :( ) a Glass running the XE8 version of software. It did not receive any automatic updates since it was rooted (as expected).

I tried to update it to XE12 using the system image from https://developers.google.com/glass/tools-downloads/system, and now it won't boot.

I can see the screen light up for a moment when it tries to boot, but the Glass logo does not come up. Instead, it just reboots itself over and over. Sometimes the screen flashes white instead of the usual reddish-gray.

I can still boot to bootloader using the hardware method. I have tried flashing XE11 but the result is the same.

I have a couple of questions that I think could be related to the problem:

1) There is a note on the system image download page regarding a "firmware change" in XE10 that prevents installation of earlier system versions (which includes XE8). Could that be my problem? Does that refer to low-level firmware change? How is that update applied when using the OTA update mechanism and can I apply it manually?

2) There is a relatively large userdata.img file in the system image .zip, however it does not get flashed using the fastboot update method:

fastboot -w update glass_1-img-947604.zip 

archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
--------------------------------------------
Bootloader Version...: 0.5
Baseband Version.....: 
Serial Number........: [device serial]
--------------------------------------------
checking product...
OKAY [  0.002s]
sending 'boot' (4528 KB)...
OKAY [  0.208s]
writing 'boot'...
OKAY [  1.670s]
sending 'recovery' (5334 KB)...
OKAY [  0.243s]
writing 'recovery'...
OKAY [  1.797s]
sending 'system' (485525 KB)...
OKAY [ 21.414s]
writing 'system'...
OKAY [ 64.458s]
erasing 'userdata'...
OKAY [145.384s]
formatting 'userdata' partition...
Erase successful, but not automatically formatting.
File system type  not supported.
OKAY [  0.002s]
erasing 'cache'...
OKAY [102.827s]
formatting 'cache' partition...
Erase successful, but not automatically formatting.
File system type  not supported.
OKAY [  0.002s]
rebooting...

If I try to flash userdata.img explicitly I get the following error:

fastboot flash userdata userdata.img 

sending 'userdata' (137046 KB)...
OKAY [  6.049s]
writing 'userdata'...
FAILED (remote: : Sparsed Write)

Is the userdata image supposed to be written to the device?

3) Is there any way of getting the boot log using fastboot to determine what causes the crash?

Thanks.

UDPATE: I have flashed the XE8 image back and now the Glass is stuck on the empty battery screen despite being plugged in for a couple of hours. However I have had charging issues with this unit before, hopefully it gets resolved overnight.

UPDATE #2: Having been left to charge overnight the device was displaying the empty battery icon with a question mark when I got back to it in the morning, however after forced reboot it seems to have booted up fine into the old XE8 system. My next step will be to restore it to unrooted state and attempt to update it using the OTA update mechanism.


Solution

  • I have managed to get the update working.

    If you are still running a pre-XE10 system, chances are that straight reflashing of the system image to a post-XE10 version is not going to work. My best guess is that it has something to do with lower level firmware that cannot be updated simply through flashing the boot/system partition.

    So if you have a rooted pre-XE10 Glass, the way to get it to update to XE12 or later is to restore it to unrooted state by flashing the boot.img from an unrooted system image.

    If you have already flashed a post-XE10 version and the device won't boot, make it boot to the bootloader using the hardware method as described here: Having issues seeing GLASS in Fastboot

    and flash the whole system image of a pre-XE10 version.

    The links to old pre-X10 images are no longer available on the Glass developers page, however the files are still there and can be located with a bit of googling.

    I am not sure that restoring the oem lock after flashing the unrooted boot partition image is required, but I did that just in case:

    fastboot oem lock
    

    Reboot the Glass afterwards and it should be able to auto-update to the latest XE version. The check for updates can be triggered by plugging the USB cable in.

    When the update is complete, just repeat the original rooting steps if you need it rooted.