Installing Custom Recovery (Gen 2 Only)
About
This custom recovery currently exploits a secure boot flaw in the second generation of Google TV devices to allow booting an unsigned kernel on the Google TV. Below we allow users to install a custom recovery on the Google TV which allows full read write access to the device as well as an automated process for installing updates (of which we do not check the signature.)
Devices
- ASUS Cube
- Hisense Pulse
- Sony NSZ-GS7/GS8
Warnings
- This will definitely void your warranty, if you want to keep your warranty please do not do any of the steps in this guide.
- This may brick your GTV. It shouldn't, but it still might!
Tools Needed
- Linux Live CD or Linux Installed
- A vulnerable Google TV device.
- 1 USB Drive (to be formatted)
- 1 USB Keyboard
Pre-Setup
- Boot Linux (Live CD or Install)
- Download Custom Recovery Package for Device
- Download GTVHacker SecureBoot update.zip
- Unzip Custom Recovery Package
Custom Recovery Steps (Cube and Pulse)
- Format a drive NTFS, and mount it.
- cd to the drive, and issue the following commands:
- The major and minor hash for these commands is pulled from an "ls -l" on /dev/mtd for the recovery mtd.
mknod gtvhacker-recovery c 90 32
- Then, copy over our files for your specific box, to the root of your NTFS flash drive
- nandwrite
- flash_erase
- CustomRecovery-VENDOR-MODEL-GTVHACKER.bin
- Unmount the drive, and insert it into your Google TV.
- Connect via adb, and issue the shell command.
- To find out what USB drive you plugged in, issue this command:
ls /mnt/media/
cd /mnt/media/usb.LABEL (where label = the rest from above)
- Now, issue these commands:
cp flash_erase /data/local/tmp
- cp nandwrite /data/local/tmp
- chmod 755 /data/local/tmp/flash_erase
- chmod 755 /data/local/tmp/nandwrite
cd /data/local/tmp
- Finally, to install the recovery (where usb.LABEL is the name of your usb drive from above):
./flash_erase /mnt/media/usb.LABEL/gtvhacker-recovery 0 0
./nandwrite -p /mnt/media/usb.LABEL/gtvhacker-recovery /mnt/media/usb.LABEL/CustomRecovery-VENDOR-MODEL-GTVHACKER.bin
- Now the recovery is installed, but to prevent it from being overwritten and to add su you MUST do the following.
- Disconnect from adb and format a FAT32 drive.
- Copy GTVHacker-secureboot-update.zip to root of FAT32 drive.
- Rename GTVHacker-secureboot-update.zip to update.zip
- Unmount and eject FAT32 drive.
- Plug FAT32 Drive and USB Keyboard into Google TV
- On host PC enter in the following to boot GoogleTV into recovery mode.
adb reboot recovery
- After entering GTVHacker recovery press 1 to install from update.zip.
- If install is successful, you will be prompted to press Q to exit.
Developers Only (CUBE, PULSE) (UART console required)
We are preparing a update package to be installed from the recovery GUI which will automate the custom bootloader install. To install the uboot custom bootloader (developers only, UART console required):
- Format a drive NTFS, and mount it.
- cd to the drive, and issue the following commands:
- The major and minor hash for these commands is pulled from an "ls -l" on /dev/mtd for the kernel mtd.
mknod gtvhacker-kernel c 90 16
- Then, copy over our files for your specific box, to the root of your NTFS flash drive
- nandwrite
- flash_erase
- uboot-VENDOR-MODEL-GTVHACKER.bin
- Unmount the drive, and insert it into your Google TV.
- Connect via adb, and issue the shell command.
- To find out what USB drive you plugged in, issue this command:
ls /mnt/media/
cd /mnt/media/usb.LABEL (where label = the rest from above)
- Now, issue these commands:
cp flash_erase /data/local/tmp
- cp nandwrite /data/local/tmp
- chmod 755 /data/local/tmp/flash_erase
- chmod 755 /data/local/tmp/nandwrite
cd /data/local/tmp
- Finally, to install the custom bootloader (where usb.LABEL is the name of your usb drive from above):
./flash_erase /mnt/media/usb.LABEL/gtvhacker-kernel 0 0
./nandwrite -p /mnt/media/usb.LABEL/gtvhacker-kernel /mnt/media/usb-LABEL/uboot-VENDOR-MODEL-GTVHACKER.bin
- Issue an adb reboot, and you have a custom DEVELOPER ONLY bootloader.
- To then boot from USB (try other ports if its not detected):
usb start; fatload usb 0:1 0x01308000 zImage 20568700; go 0x01308000
- 0x01308000 is the load address, zImage is the name of the file on a vfat formatted USB drive, and 20568700 is it's filesize
Custom Recovery Steps (Sony)
- Format a drive NTFS, and mount it.
- cd to the drive, and issue the following commands:
- The major and minor hash for these commands is pulled from an "ls -l" on /dev/block for the recovery block.
mknod gtvhacker-recovery b 179 10
- Then, copy over our files for your specific box, to the root of your NTFS flash drive
- CustomRecovery-VENDOR-MODEL-GTVHACKER.bin
- Unmount the drive, and insert it into your Google TV.
- Connect via adb, and issue the shell command.
- To find out what USB drive you plugged in, issue this command:
ls /mnt/media/
cd /mnt/media/usb.LABEL (where label = the rest from above)
- Install the recovery (where usb.LABEL is the name of your usb drive from above):
cp /mnt/media/usb.LABEL/CustomRecovery-VENDOR-MODEL-GTVHACKER.bin /mnt/media/usb.LABEL/gtvhacker-recovery
- Now the recovery is installed, but to prevent it from being overwritten and to add su you MUST do the following.
- Disconnect from adb and format a FAT32 drive.
- Copy GTVHacker-secureboot-update.zip to root of FAT32 drive.
- Rename GTVHacker-secureboot-update.zip to update.zip
- Unmount and eject FAT32 drive.
- Plug FAT32 Drive and USB Keyboard into Google TV
- On host PC enter in the following to boot GoogleTV into recovery mode.
adb reboot recovery
- After entering GTVHacker recovery press 1 to install from update.zip.
- If install is successful, you will be prompted to press Q to exit.
Developers Only (SONY) (UART console required)
We are preparing a update package to be installed from the recovery GUI which will automate the custom bootloader install. To install the uboot custom bootloader (developers only, UART console required):
- Format a drive NTFS, and mount it.
- cd to the drive, and issue the following commands:
- The major and minor hash for these commands is pulled from an "ls -l" on /dev/mtd for the kernel mtd.
mknod gtvhacker-kernel b 179 7
- Then, copy over our files for your specific box, to the root of your NTFS flash drive
- uboot-VENDOR-MODEL-GTVHACKER.bin
- Unmount the drive, and insert it into your Google TV.
- Connect via adb, and issue the shell command.
- Install the custom bootloader (where usb.LABEL is the name of your usb drive from above):
cp /mnt/media/usb-LABEL/uboot-VENDOR-MODEL-GTVHACKER.bin /mnt/media/usb.LABEL/gtvhacker-kernel
- Issue an adb reboot, and you have a custom DEVELOPER ONLY bootloader.
- To then boot from USB (try other ports if its not detected):
usb start; fatload usb 0:1 0x01308000 zImage 20568700; go 0x01308000
- 0x01308000 is the load address, zImage is the name of the file on a vfat formatted USB drive, and 20568700 is it's filesize
Troubleshooting
- Help! By recovery doesn't persist after a reboot?!
- You must use the custom recovery to install the Secure Boot update.zip file for recovery to persist, otherwise it will be overwritten on the first normal boot. Installing this .zip puts a su binary on the box, installs the flash content bypass, kills OTA updates, and persists the recovery.
- Recovery is saying that the update.zip file cannot be found.
- You must have the USB drive plugged in prior to booting the box and the USB drive must be FAT32 formatted. Use "fdisk -l" to verify the device has a correctly structured partition table.
- You can get help from us or other users at:
- or you can chat with us on IRC at:
irc.freenode.net #Exploiteers
(Someone may not be around right away to help, make sure to be willing to wait for a response)
Download
GTVHacker SecureBoot update.zip
Custom Recovery: