<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.exploitee.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KernelJayOmega</id>
	<title>Exploitee.rs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.exploitee.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KernelJayOmega"/>
	<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Special:Contributions/KernelJayOmega"/>
	<updated>2026-05-06T21:23:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.0-alpha</generator>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=605</id>
		<title>GTv-OS (AndroidTV)</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=605"/>
		<updated>2011-08-04T02:07:29Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* SDK/Toolchain Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Google TV operating system is based on Android 2.1 on a [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Linux 2.6.23 based kernel]. The system enables security such as an NX (Non eXecutable) Stack and a [http://en.wikipedia.org/wiki/Chroot chrooted] chrome. Also making things difficult is the Operating Systems ability to push automatic updates without user intervention.&lt;br /&gt;
&lt;br /&gt;
The Operating System currently provides the following &amp;quot;stock&amp;quot; applications&lt;br /&gt;
 &lt;br /&gt;
*CNBC Real-Time&lt;br /&gt;
*Gallery&lt;br /&gt;
*Google Chrome&lt;br /&gt;
*Logitech Help Assistant (Logitech Only)&lt;br /&gt;
*Logitech Media Player (Logitech Only)&lt;br /&gt;
*Logitech Vid HD (Logitech Only)&lt;br /&gt;
*Napster&lt;br /&gt;
*NBA Game Time&lt;br /&gt;
*Netflix&lt;br /&gt;
*Pandora&lt;br /&gt;
*Settings&lt;br /&gt;
*TV&lt;br /&gt;
*Twitter&lt;br /&gt;
&lt;br /&gt;
Gpl&#039;d portions of the GoogleTV source can be found [http://code.google.com/p/googletv-mirrored-source/ here]&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*gawk -- Please note that some Ubuntu installs have mawk rather than the GNU awk (gawk); mawk is not compatible with the awk scripts in the Intel SDK&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, [[craigdroid]] created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-cm-linux-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Support For USB Serial Converters ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This configuration has been verified via the proc.gz file of a Logitech Revue at its latest firmware revision (using the BreakVue hack).  Here is the [http://pastie.org/1437422 complete kernel configuration].&lt;br /&gt;
&lt;br /&gt;
Please note however that by default init does not appear to run a shell on this console.  This is the only adapter which we have identified to have built-in driver support.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=528</id>
		<title>GTv-OS (AndroidTV)</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=528"/>
		<updated>2011-02-11T18:04:56Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* SDK/Toolchain Support */ fixed export&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Google TV operating system is based on Android 2.1 on a [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Linux 2.6.23 based kernel]. The system enables security such as an NX (Non eXecutable) Stack and a [http://en.wikipedia.org/wiki/Chroot chrooted] chrome. Also making things difficult is the Operating Systems ability to push automatic updates without user intervention.&lt;br /&gt;
&lt;br /&gt;
The Operating System currently provides the following &amp;quot;stock&amp;quot; applications&lt;br /&gt;
 &lt;br /&gt;
*CNBC Real-Time&lt;br /&gt;
*Gallery&lt;br /&gt;
*Google Chrome&lt;br /&gt;
*Logitech Help Assistant (Logitech Only)&lt;br /&gt;
*Logitech Media Player (Logitech Only)&lt;br /&gt;
*Logitech Vid HD (Logitech Only)&lt;br /&gt;
*Napster&lt;br /&gt;
*NBA Game Time&lt;br /&gt;
*Netflix&lt;br /&gt;
*Pandora&lt;br /&gt;
*Settings&lt;br /&gt;
*TV&lt;br /&gt;
*Twitter&lt;br /&gt;
&lt;br /&gt;
Gpl&#039;d portions of the GoogleTV source can be found [http://code.google.com/p/googletv-mirrored-source/ here]&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*gawk -- Please note that some Ubuntu installs have mawk rather than the GNU awk (gawk); mawk is not compatible with the awk scripts in the Intel SDK&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-cm-linux-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Support For USB Serial Converters ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This configuration has been verified via the proc.gz file of a Logitech Revue at its latest firmware revision (using the BreakVue hack).  Here is the [http://pastie.org/1437422 complete kernel configuration].&lt;br /&gt;
&lt;br /&gt;
Please note however that by default init does not appear to run a shell on this console.  This is the only adapter which we have identified to have built-in driver support.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=493</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=493"/>
		<updated>2011-02-05T00:00:21Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader, etc wrapped around vmlinux.bin.gz which has its gzip header 0x37f5 bytes into the composite kernel image we have examined.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
Refer to [https://opensource.logitech.com opensource.logitech.com] for the complete Logitech Revue GPL release.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Running Modules ===&lt;br /&gt;
The following is lsmod output from a rooted Revue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	alsa_shim 12092 0 - Live 0xad1bc000 (PF)&lt;br /&gt;
	snd_usb_audio 84480 0 - Live 0xad3e1000&lt;br /&gt;
	snd_usb_lib 17280 1 snd_usb_audio, Live 0xac4fa000&lt;br /&gt;
	snd_rawmidi 22016 1 snd_usb_lib, Live 0xad1b5000&lt;br /&gt;
	snd_seq_device 8332 1 snd_rawmidi, Live 0xad1a9000&lt;br /&gt;
	snd_pcm 74888 2 alsa_shim,snd_usb_audio, Live 0xad2c1000&lt;br /&gt;
	snd_page_alloc 11400 1 snd_pcm, Live 0xad1a5000&lt;br /&gt;
	snd_hwdep 8708 1 snd_usb_audio, Live 0xad1a1000&lt;br /&gt;
	snd_timer 23172 1 snd_pcm, Live 0xad031000&lt;br /&gt;
	snd 48820 8 alsa_shim,snd_usb_audio,snd_usb_lib,snd_rawmidi,snd_seq_device,snd_pcm,snd_hwdep,snd_timer, Live 0xad071000&lt;br /&gt;
	pvrsrvkm 120532 14 - Live 0xad001000 (F)&lt;br /&gt;
	edl_audio_dac_drv_linux 11264 0 - Live 0xac374000 (F)&lt;br /&gt;
	edl_thermal 7688 0 - Live 0xac2dc000 (F)&lt;br /&gt;
	vidcap_ce4X00 39132 0 - Live 0xac4e1000 (F)&lt;br /&gt;
	ismdavcap_shim 29888 0 - Live 0xac4b1000 (F)&lt;br /&gt;
	avcap_synthetic 14016 0 - Live 0xac2c7000 (F)&lt;br /&gt;
	avcap_core 10004 7 vidcap_ce4X00,ismdavcap_shim,avcap_synthetic, Live 0xac2cc000&lt;br /&gt;
	ismdbufmon 28612 0 - Live 0xac2d0000 (F)&lt;br /&gt;
	ismdaudio 5976696 1 alsa_shim, Live 0xbd9d5000 (F)&lt;br /&gt;
	ismdvidrend 115456 0 - Live 0xac481000 (F)&lt;br /&gt;
	ismdvidpproc 769908 1 ismdvidrend, Live 0xbd40f000 (F)&lt;br /&gt;
	ismdviddec_v2 386552 0 - Live 0xae701000 (F)&lt;br /&gt;
	ismddemux_v2 350816 0 - Live 0xad701000 (F)&lt;br /&gt;
	ismdclock_recovery 12552 4 ismdavcap_shim,ismdbufmon,ismdaudio,ismddemux_v2, Live 0xac279000 (F)&lt;br /&gt;
	ismdclock 22184 0 - Live 0xac269000 (F)&lt;br /&gt;
	ismdcore 6714528 11 alsa_shim,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock, Live 0xac57b000 (F)&lt;br /&gt;
	ioctl_module 5012 14 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore, Live 0xac243000&lt;br /&gt;
	gdl_mm 59212 40 ismdaudio,ismdvidrend, Live 0xac248000 (F)&lt;br /&gt;
	sec_kernel 21348 6 - Live 0xac231000 (F)&lt;br /&gt;
	hst_ccmp 6912 0 - Live 0xac21d000&lt;br /&gt;
	wlan 583560 1 hst_ccmp, Live 0xac2df000 (P)&lt;br /&gt;
	intel_ce_pm 14368 4 pvrsrvkm,vidcap_ce4X00,ismdvidpproc,gdl_mm, Live 0xac238000 (F)&lt;br /&gt;
	clock_control 21932 5 ismdaudio,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm, Live 0xac216000 (F)&lt;br /&gt;
	idl_spi 8524 1 edl_audio_dac_drv_linux, Live 0xac209000 (F)&lt;br /&gt;
	idl_gpio 23980 2 - Live 0xac0f2000 (F)&lt;br /&gt;
	idl_i2c 16540 3 vidcap_ce4X00,gdl_mm,clock_control, Live 0xac0f9000 (F)&lt;br /&gt;
	sven_linux 28648 13 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,sec_kernel,clock_control, Live 0xac0da000 (F)&lt;br /&gt;
	system_utils_linux 3712 8 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2, Live 0xac02c000 (F)&lt;br /&gt;
	platform_config 13316 15 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,intel_ce_pm,clock_control,sven_linux,system_utils_linux, Live 0xac0ea000&lt;br /&gt;
	pal_linux 20228 14 pvrsrvkm,edl_thermal,ismdaudio,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux, Live 0xac03a000 (F)&lt;br /&gt;
	osal_linux 23568 25 alsa_shim,pvrsrvkm,edl_audio_dac_drv_linux,edl_thermal,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux,system_utils_linux,pal_linux, Live 0xac0e3000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Serial Adapter Support ===&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.  This option is also enabled in the kernel configuration of the Logitech Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Although the driver has been verified to load, there is unfortunately no shell attached to the console in the default configuration.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel, use dd to copy starting at the gzip header:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;br /&gt;
[[Category:Kernels|Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=400</id>
		<title>Craigdroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=400"/>
		<updated>2011-01-25T03:21:52Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added Android device list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Member Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*XDA/GTVHacker Name: Craigdroid&lt;br /&gt;
*Wiki/Blog Handle: KernelJayOmega &lt;br /&gt;
*Real Name: Craig Young&lt;br /&gt;
*Email: craig @ gtvhacker.com&lt;br /&gt;
*Twitter: [http://www.twitter.com/craigtweets craigtweets]&lt;br /&gt;
*Area of expertise: Build systems, Linux kernel development, network analysis, microelectronics, security research&lt;br /&gt;
*Android Devices: T-Mobile G1 (HTC Dream), Nexus One, 2xLogitech Revue (1 rooted and one stock)&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=397</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=397"/>
		<updated>2011-01-23T18:32:57Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: FTDI notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader, etc wrapped around vmlinux.bin.gz which has its gzip header 0x37f5 bytes into the composite kernel image we have examined.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Running Modules ===&lt;br /&gt;
The following is lsmod output from a rooted Revue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	alsa_shim 12092 0 - Live 0xad1bc000 (PF)&lt;br /&gt;
	snd_usb_audio 84480 0 - Live 0xad3e1000&lt;br /&gt;
	snd_usb_lib 17280 1 snd_usb_audio, Live 0xac4fa000&lt;br /&gt;
	snd_rawmidi 22016 1 snd_usb_lib, Live 0xad1b5000&lt;br /&gt;
	snd_seq_device 8332 1 snd_rawmidi, Live 0xad1a9000&lt;br /&gt;
	snd_pcm 74888 2 alsa_shim,snd_usb_audio, Live 0xad2c1000&lt;br /&gt;
	snd_page_alloc 11400 1 snd_pcm, Live 0xad1a5000&lt;br /&gt;
	snd_hwdep 8708 1 snd_usb_audio, Live 0xad1a1000&lt;br /&gt;
	snd_timer 23172 1 snd_pcm, Live 0xad031000&lt;br /&gt;
	snd 48820 8 alsa_shim,snd_usb_audio,snd_usb_lib,snd_rawmidi,snd_seq_device,snd_pcm,snd_hwdep,snd_timer, Live 0xad071000&lt;br /&gt;
	pvrsrvkm 120532 14 - Live 0xad001000 (F)&lt;br /&gt;
	edl_audio_dac_drv_linux 11264 0 - Live 0xac374000 (F)&lt;br /&gt;
	edl_thermal 7688 0 - Live 0xac2dc000 (F)&lt;br /&gt;
	vidcap_ce4X00 39132 0 - Live 0xac4e1000 (F)&lt;br /&gt;
	ismdavcap_shim 29888 0 - Live 0xac4b1000 (F)&lt;br /&gt;
	avcap_synthetic 14016 0 - Live 0xac2c7000 (F)&lt;br /&gt;
	avcap_core 10004 7 vidcap_ce4X00,ismdavcap_shim,avcap_synthetic, Live 0xac2cc000&lt;br /&gt;
	ismdbufmon 28612 0 - Live 0xac2d0000 (F)&lt;br /&gt;
	ismdaudio 5976696 1 alsa_shim, Live 0xbd9d5000 (F)&lt;br /&gt;
	ismdvidrend 115456 0 - Live 0xac481000 (F)&lt;br /&gt;
	ismdvidpproc 769908 1 ismdvidrend, Live 0xbd40f000 (F)&lt;br /&gt;
	ismdviddec_v2 386552 0 - Live 0xae701000 (F)&lt;br /&gt;
	ismddemux_v2 350816 0 - Live 0xad701000 (F)&lt;br /&gt;
	ismdclock_recovery 12552 4 ismdavcap_shim,ismdbufmon,ismdaudio,ismddemux_v2, Live 0xac279000 (F)&lt;br /&gt;
	ismdclock 22184 0 - Live 0xac269000 (F)&lt;br /&gt;
	ismdcore 6714528 11 alsa_shim,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock, Live 0xac57b000 (F)&lt;br /&gt;
	ioctl_module 5012 14 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore, Live 0xac243000&lt;br /&gt;
	gdl_mm 59212 40 ismdaudio,ismdvidrend, Live 0xac248000 (F)&lt;br /&gt;
	sec_kernel 21348 6 - Live 0xac231000 (F)&lt;br /&gt;
	hst_ccmp 6912 0 - Live 0xac21d000&lt;br /&gt;
	wlan 583560 1 hst_ccmp, Live 0xac2df000 (P)&lt;br /&gt;
	intel_ce_pm 14368 4 pvrsrvkm,vidcap_ce4X00,ismdvidpproc,gdl_mm, Live 0xac238000 (F)&lt;br /&gt;
	clock_control 21932 5 ismdaudio,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm, Live 0xac216000 (F)&lt;br /&gt;
	idl_spi 8524 1 edl_audio_dac_drv_linux, Live 0xac209000 (F)&lt;br /&gt;
	idl_gpio 23980 2 - Live 0xac0f2000 (F)&lt;br /&gt;
	idl_i2c 16540 3 vidcap_ce4X00,gdl_mm,clock_control, Live 0xac0f9000 (F)&lt;br /&gt;
	sven_linux 28648 13 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,sec_kernel,clock_control, Live 0xac0da000 (F)&lt;br /&gt;
	system_utils_linux 3712 8 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2, Live 0xac02c000 (F)&lt;br /&gt;
	platform_config 13316 15 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,intel_ce_pm,clock_control,sven_linux,system_utils_linux, Live 0xac0ea000&lt;br /&gt;
	pal_linux 20228 14 pvrsrvkm,edl_thermal,ismdaudio,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux, Live 0xac03a000 (F)&lt;br /&gt;
	osal_linux 23568 25 alsa_shim,pvrsrvkm,edl_audio_dac_drv_linux,edl_thermal,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux,system_utils_linux,pal_linux, Live 0xac0e3000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== USB Serial Adapter Support ===&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.  This option is also enabled in the kernel configuration of the Logitech Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: Although the driver has been verified to load, there is unfortunately no shell attached to the console in the default configuration.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel, use dd to copy starting at the gzip header:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;br /&gt;
[[Category:Kernels|Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=396</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=396"/>
		<updated>2011-01-23T18:27:38Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added category Kernels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader, etc wrapped around vmlinux.bin.gz which has its gzip header 0x37f5 bytes into the composite kernel image we have examined.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Running Modules ===&lt;br /&gt;
The following is lsmod output from a rooted Revue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	alsa_shim 12092 0 - Live 0xad1bc000 (PF)&lt;br /&gt;
	snd_usb_audio 84480 0 - Live 0xad3e1000&lt;br /&gt;
	snd_usb_lib 17280 1 snd_usb_audio, Live 0xac4fa000&lt;br /&gt;
	snd_rawmidi 22016 1 snd_usb_lib, Live 0xad1b5000&lt;br /&gt;
	snd_seq_device 8332 1 snd_rawmidi, Live 0xad1a9000&lt;br /&gt;
	snd_pcm 74888 2 alsa_shim,snd_usb_audio, Live 0xad2c1000&lt;br /&gt;
	snd_page_alloc 11400 1 snd_pcm, Live 0xad1a5000&lt;br /&gt;
	snd_hwdep 8708 1 snd_usb_audio, Live 0xad1a1000&lt;br /&gt;
	snd_timer 23172 1 snd_pcm, Live 0xad031000&lt;br /&gt;
	snd 48820 8 alsa_shim,snd_usb_audio,snd_usb_lib,snd_rawmidi,snd_seq_device,snd_pcm,snd_hwdep,snd_timer, Live 0xad071000&lt;br /&gt;
	pvrsrvkm 120532 14 - Live 0xad001000 (F)&lt;br /&gt;
	edl_audio_dac_drv_linux 11264 0 - Live 0xac374000 (F)&lt;br /&gt;
	edl_thermal 7688 0 - Live 0xac2dc000 (F)&lt;br /&gt;
	vidcap_ce4X00 39132 0 - Live 0xac4e1000 (F)&lt;br /&gt;
	ismdavcap_shim 29888 0 - Live 0xac4b1000 (F)&lt;br /&gt;
	avcap_synthetic 14016 0 - Live 0xac2c7000 (F)&lt;br /&gt;
	avcap_core 10004 7 vidcap_ce4X00,ismdavcap_shim,avcap_synthetic, Live 0xac2cc000&lt;br /&gt;
	ismdbufmon 28612 0 - Live 0xac2d0000 (F)&lt;br /&gt;
	ismdaudio 5976696 1 alsa_shim, Live 0xbd9d5000 (F)&lt;br /&gt;
	ismdvidrend 115456 0 - Live 0xac481000 (F)&lt;br /&gt;
	ismdvidpproc 769908 1 ismdvidrend, Live 0xbd40f000 (F)&lt;br /&gt;
	ismdviddec_v2 386552 0 - Live 0xae701000 (F)&lt;br /&gt;
	ismddemux_v2 350816 0 - Live 0xad701000 (F)&lt;br /&gt;
	ismdclock_recovery 12552 4 ismdavcap_shim,ismdbufmon,ismdaudio,ismddemux_v2, Live 0xac279000 (F)&lt;br /&gt;
	ismdclock 22184 0 - Live 0xac269000 (F)&lt;br /&gt;
	ismdcore 6714528 11 alsa_shim,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock, Live 0xac57b000 (F)&lt;br /&gt;
	ioctl_module 5012 14 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore, Live 0xac243000&lt;br /&gt;
	gdl_mm 59212 40 ismdaudio,ismdvidrend, Live 0xac248000 (F)&lt;br /&gt;
	sec_kernel 21348 6 - Live 0xac231000 (F)&lt;br /&gt;
	hst_ccmp 6912 0 - Live 0xac21d000&lt;br /&gt;
	wlan 583560 1 hst_ccmp, Live 0xac2df000 (P)&lt;br /&gt;
	intel_ce_pm 14368 4 pvrsrvkm,vidcap_ce4X00,ismdvidpproc,gdl_mm, Live 0xac238000 (F)&lt;br /&gt;
	clock_control 21932 5 ismdaudio,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm, Live 0xac216000 (F)&lt;br /&gt;
	idl_spi 8524 1 edl_audio_dac_drv_linux, Live 0xac209000 (F)&lt;br /&gt;
	idl_gpio 23980 2 - Live 0xac0f2000 (F)&lt;br /&gt;
	idl_i2c 16540 3 vidcap_ce4X00,gdl_mm,clock_control, Live 0xac0f9000 (F)&lt;br /&gt;
	sven_linux 28648 13 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,sec_kernel,clock_control, Live 0xac0da000 (F)&lt;br /&gt;
	system_utils_linux 3712 8 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2, Live 0xac02c000 (F)&lt;br /&gt;
	platform_config 13316 15 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,intel_ce_pm,clock_control,sven_linux,system_utils_linux, Live 0xac0ea000&lt;br /&gt;
	pal_linux 20228 14 pvrsrvkm,edl_thermal,ismdaudio,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux, Live 0xac03a000 (F)&lt;br /&gt;
	osal_linux 23568 25 alsa_shim,pvrsrvkm,edl_audio_dac_drv_linux,edl_thermal,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux,system_utils_linux,pal_linux, Live 0xac0e3000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel, use dd to copy starting at the gzip header:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;br /&gt;
[[Category:Kernels|Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=395</id>
		<title>CONFIG DEVMEM PROTECT</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=395"/>
		<updated>2011-01-23T18:26:57Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added category Kernels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
Although we have not found a specific implementation for this kernel configuration item, it is most likely similar in nature to CONFIG_NONPROMISC_DEVMEM or CONFIG_STRICT_DEVMEM options in other kernel distributions.  The purpose of this parameter would be to restrict user space applications from accessing kernel space (i.e. ring 0) memory via the /dev/mem character device.  Preliminary testing reveals that requests to read from where the kernel is loaded (i.e. above 1MB) fail with EACCES even while root and with properly set permissions on the device.  Without this protection in place it would be possible to modify kernel structures and subvert other security mechanisms such as the [[CONFIG_MODULE_SIG]] protection.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|CONFIG_DEVMEM_PROTECT]]&lt;br /&gt;
[[Category:Kernels|CONFIG_DEVMEM_PROTECT]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Category:Kernels&amp;diff=394</id>
		<title>Category:Kernels</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Category:Kernels&amp;diff=394"/>
		<updated>2011-01-23T18:25:54Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Initial Contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is for any information pertinent to the kernels used in various Google TV devices.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=393</id>
		<title>CONFIG MODULE SIG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=393"/>
		<updated>2011-01-23T18:24:47Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added category Kernels&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The &#039;&#039;&#039;CONFIG_MODULE_SIG&#039;&#039;&#039; parameter implements cryptographic signing of all [http://tldp.org/HOWTO/Module-HOWTO/ loadable kernel modules (LKM)]. With this option configured the kernel will use compiled in public keys to verify the authenticity of the module.  As per [http://lkml.org/lkml/2007/2/14/169 David Howells LKML post]:&lt;br /&gt;
&lt;br /&gt;
There are several reasons why these patches are useful, amongst which are:&lt;br /&gt;
&lt;br /&gt;
(1) to protect against accidentally-corrupted modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(2) to protect against maliciously modified modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(3) to allow a sysadmin (or more likely an IT department) to enforce a policy that only known and approved modules shall be loaded onto machines which they&#039;re expected to support;&lt;br /&gt;
&lt;br /&gt;
(4) to allow other support providers to do likewise, or at least to _detect_ the fact that unsupported modules are loaded;&lt;br /&gt;
&lt;br /&gt;
(5) to allow the detection of modules replaced by a second-order distro or a preloaded Linux purveyor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The patch attached to the referenced [http://lkml.org LKML] [http://lkml.org/lkml/2007/2/14/169 post] is not entirely consistent with the implementation on the Revue.  Since Logitech has not made a GPL drop, we can not verify the specific implementation at this time.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Logitech Implementation ===&lt;br /&gt;
The CONFIG_MODULE_SIG option is enabled in the kernel used under normal operation. It is not enabled when in (the initial) recovery mode.  Analysis of modules from the Logitech Revue gives an indication of how Logitech has likely modified the standard Linux kernel patch.  Using objdump to inspect the ELF sections reveals that the Revue appears to use a section called &#039;.signature&#039; rather than &#039;.module_sig&#039;.&lt;br /&gt;
&lt;br /&gt;
This is seen in index 11 of the &#039;objdump -h&#039; output provided below from a module used by the Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	sec_kernel.ko:     file format elf32-i386&lt;br /&gt;
&lt;br /&gt;
	Sections:&lt;br /&gt;
	Idx Name          Size      VMA       LMA       File off  Algn&lt;br /&gt;
	  0 .text         00002960  00000000  00000000  00000040  2**4&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE&lt;br /&gt;
	  1 .rodata       000002bc  00000000  00000000  000029a0  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA&lt;br /&gt;
	  2 .rodata.str1.1 00000199  00000000  00000000  00002c5c  2**0&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  3 .rodata.str1.4 00000478  00000000  00000000  00002df8  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  4 .modinfo      000000ba  00000000  00000000  00003280  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  5 __versions    00000580  00000000  00000000  00003340  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  6 .data         000000c4  00000000  00000000  000038c0  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA&lt;br /&gt;
	  7 .gnu.linkonce.this_module 00000280  00000000  00000000  00003a00  2**7&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD&lt;br /&gt;
	  8 .bss          00000664  00000000  00000000  00003c80  2**5&lt;br /&gt;
					  ALLOC&lt;br /&gt;
	  9 .comment      0000006c  00000000  00000000  00003c80  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 10 .note.GNU-stack 00000000  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 11 .signature    00000200  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Logitech Revue|CONFIG_MODULE_SIG]]&lt;br /&gt;
[[Category:Kernels|CONFIG_MODULE_SIG]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=392</id>
		<title>CONFIG MODULE SIG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=392"/>
		<updated>2011-01-23T18:23:37Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Logitech Implementation */  note about recovery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The &#039;&#039;&#039;CONFIG_MODULE_SIG&#039;&#039;&#039; parameter implements cryptographic signing of all [http://tldp.org/HOWTO/Module-HOWTO/ loadable kernel modules (LKM)]. With this option configured the kernel will use compiled in public keys to verify the authenticity of the module.  As per [http://lkml.org/lkml/2007/2/14/169 David Howells LKML post]:&lt;br /&gt;
&lt;br /&gt;
There are several reasons why these patches are useful, amongst which are:&lt;br /&gt;
&lt;br /&gt;
(1) to protect against accidentally-corrupted modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(2) to protect against maliciously modified modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(3) to allow a sysadmin (or more likely an IT department) to enforce a policy that only known and approved modules shall be loaded onto machines which they&#039;re expected to support;&lt;br /&gt;
&lt;br /&gt;
(4) to allow other support providers to do likewise, or at least to _detect_ the fact that unsupported modules are loaded;&lt;br /&gt;
&lt;br /&gt;
(5) to allow the detection of modules replaced by a second-order distro or a preloaded Linux purveyor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The patch attached to the referenced [http://lkml.org LKML] [http://lkml.org/lkml/2007/2/14/169 post] is not entirely consistent with the implementation on the Revue.  Since Logitech has not made a GPL drop, we can not verify the specific implementation at this time.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Logitech Implementation ===&lt;br /&gt;
The CONFIG_MODULE_SIG option is enabled in the kernel used under normal operation. It is not enabled when in (the initial) recovery mode.  Analysis of modules from the Logitech Revue gives an indication of how Logitech has likely modified the standard Linux kernel patch.  Using objdump to inspect the ELF sections reveals that the Revue appears to use a section called &#039;.signature&#039; rather than &#039;.module_sig&#039;.&lt;br /&gt;
&lt;br /&gt;
This is seen in index 11 of the &#039;objdump -h&#039; output provided below from a module used by the Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	sec_kernel.ko:     file format elf32-i386&lt;br /&gt;
&lt;br /&gt;
	Sections:&lt;br /&gt;
	Idx Name          Size      VMA       LMA       File off  Algn&lt;br /&gt;
	  0 .text         00002960  00000000  00000000  00000040  2**4&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE&lt;br /&gt;
	  1 .rodata       000002bc  00000000  00000000  000029a0  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA&lt;br /&gt;
	  2 .rodata.str1.1 00000199  00000000  00000000  00002c5c  2**0&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  3 .rodata.str1.4 00000478  00000000  00000000  00002df8  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  4 .modinfo      000000ba  00000000  00000000  00003280  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  5 __versions    00000580  00000000  00000000  00003340  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  6 .data         000000c4  00000000  00000000  000038c0  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA&lt;br /&gt;
	  7 .gnu.linkonce.this_module 00000280  00000000  00000000  00003a00  2**7&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD&lt;br /&gt;
	  8 .bss          00000664  00000000  00000000  00003c80  2**5&lt;br /&gt;
					  ALLOC&lt;br /&gt;
	  9 .comment      0000006c  00000000  00000000  00003c80  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 10 .note.GNU-stack 00000000  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 11 .signature    00000200  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Logitech Revue|CONFIG_MODULE_SIG]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=391</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=391"/>
		<updated>2011-01-23T18:21:06Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader, etc wrapped around vmlinux.bin.gz which has its gzip header 0x37f5 bytes into the composite kernel image we have examined.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Running Modules ===&lt;br /&gt;
The following is lsmod output from a rooted Revue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	alsa_shim 12092 0 - Live 0xad1bc000 (PF)&lt;br /&gt;
	snd_usb_audio 84480 0 - Live 0xad3e1000&lt;br /&gt;
	snd_usb_lib 17280 1 snd_usb_audio, Live 0xac4fa000&lt;br /&gt;
	snd_rawmidi 22016 1 snd_usb_lib, Live 0xad1b5000&lt;br /&gt;
	snd_seq_device 8332 1 snd_rawmidi, Live 0xad1a9000&lt;br /&gt;
	snd_pcm 74888 2 alsa_shim,snd_usb_audio, Live 0xad2c1000&lt;br /&gt;
	snd_page_alloc 11400 1 snd_pcm, Live 0xad1a5000&lt;br /&gt;
	snd_hwdep 8708 1 snd_usb_audio, Live 0xad1a1000&lt;br /&gt;
	snd_timer 23172 1 snd_pcm, Live 0xad031000&lt;br /&gt;
	snd 48820 8 alsa_shim,snd_usb_audio,snd_usb_lib,snd_rawmidi,snd_seq_device,snd_pcm,snd_hwdep,snd_timer, Live 0xad071000&lt;br /&gt;
	pvrsrvkm 120532 14 - Live 0xad001000 (F)&lt;br /&gt;
	edl_audio_dac_drv_linux 11264 0 - Live 0xac374000 (F)&lt;br /&gt;
	edl_thermal 7688 0 - Live 0xac2dc000 (F)&lt;br /&gt;
	vidcap_ce4X00 39132 0 - Live 0xac4e1000 (F)&lt;br /&gt;
	ismdavcap_shim 29888 0 - Live 0xac4b1000 (F)&lt;br /&gt;
	avcap_synthetic 14016 0 - Live 0xac2c7000 (F)&lt;br /&gt;
	avcap_core 10004 7 vidcap_ce4X00,ismdavcap_shim,avcap_synthetic, Live 0xac2cc000&lt;br /&gt;
	ismdbufmon 28612 0 - Live 0xac2d0000 (F)&lt;br /&gt;
	ismdaudio 5976696 1 alsa_shim, Live 0xbd9d5000 (F)&lt;br /&gt;
	ismdvidrend 115456 0 - Live 0xac481000 (F)&lt;br /&gt;
	ismdvidpproc 769908 1 ismdvidrend, Live 0xbd40f000 (F)&lt;br /&gt;
	ismdviddec_v2 386552 0 - Live 0xae701000 (F)&lt;br /&gt;
	ismddemux_v2 350816 0 - Live 0xad701000 (F)&lt;br /&gt;
	ismdclock_recovery 12552 4 ismdavcap_shim,ismdbufmon,ismdaudio,ismddemux_v2, Live 0xac279000 (F)&lt;br /&gt;
	ismdclock 22184 0 - Live 0xac269000 (F)&lt;br /&gt;
	ismdcore 6714528 11 alsa_shim,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock, Live 0xac57b000 (F)&lt;br /&gt;
	ioctl_module 5012 14 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore, Live 0xac243000&lt;br /&gt;
	gdl_mm 59212 40 ismdaudio,ismdvidrend, Live 0xac248000 (F)&lt;br /&gt;
	sec_kernel 21348 6 - Live 0xac231000 (F)&lt;br /&gt;
	hst_ccmp 6912 0 - Live 0xac21d000&lt;br /&gt;
	wlan 583560 1 hst_ccmp, Live 0xac2df000 (P)&lt;br /&gt;
	intel_ce_pm 14368 4 pvrsrvkm,vidcap_ce4X00,ismdvidpproc,gdl_mm, Live 0xac238000 (F)&lt;br /&gt;
	clock_control 21932 5 ismdaudio,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm, Live 0xac216000 (F)&lt;br /&gt;
	idl_spi 8524 1 edl_audio_dac_drv_linux, Live 0xac209000 (F)&lt;br /&gt;
	idl_gpio 23980 2 - Live 0xac0f2000 (F)&lt;br /&gt;
	idl_i2c 16540 3 vidcap_ce4X00,gdl_mm,clock_control, Live 0xac0f9000 (F)&lt;br /&gt;
	sven_linux 28648 13 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,sec_kernel,clock_control, Live 0xac0da000 (F)&lt;br /&gt;
	system_utils_linux 3712 8 alsa_shim,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2, Live 0xac02c000 (F)&lt;br /&gt;
	platform_config 13316 15 ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,intel_ce_pm,clock_control,sven_linux,system_utils_linux, Live 0xac0ea000&lt;br /&gt;
	pal_linux 20228 14 pvrsrvkm,edl_thermal,ismdaudio,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux, Live 0xac03a000 (F)&lt;br /&gt;
	osal_linux 23568 25 alsa_shim,pvrsrvkm,edl_audio_dac_drv_linux,edl_thermal,vidcap_ce4X00,ismdavcap_shim,ismdbufmon,ismdaudio,ismdvidrend,ismdvidpproc,ismdviddec_v2,ismddemux_v2,ismdclock_recovery,ismdclock,ismdcore,gdl_mm,sec_kernel,intel_ce_pm,clock_control,idl_spi,idl_gpio,idl_i2c,sven_linux,system_utils_linux,pal_linux, Live 0xac0e3000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel, use dd to copy starting at the gzip header:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GoogleTV_-_Version_Numbers&amp;diff=390</id>
		<title>GoogleTV - Version Numbers</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GoogleTV_-_Version_Numbers&amp;diff=390"/>
		<updated>2011-01-23T18:17:23Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Logitech Revue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Google TV Version numbers are unique per device.&lt;br /&gt;
&lt;br /&gt;
== How to determine my Version Number ==&lt;br /&gt;
&lt;br /&gt;
== Known Released Version Numbers ==&lt;br /&gt;
=== Logitech Revue ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Version number&lt;br /&gt;
! ID&lt;br /&gt;
! Date first seen&lt;br /&gt;
! Update link&lt;br /&gt;
! Announcement&lt;br /&gt;
|-&lt;br /&gt;
| [[ Revue Update b39389 | b39389 ]]&lt;br /&gt;
|&lt;br /&gt;
| unknown&lt;br /&gt;
| http://android.clients.google.com/packages/ota/logitech_ka/439c26f6af05.mp-signed-ota_update-b39389.zip&lt;br /&gt;
|&lt;br /&gt;
|- &lt;br /&gt;
| [[ Revue Update b39953| b39953]] &lt;br /&gt;
|&lt;br /&gt;
| unknown&lt;br /&gt;
| http://android.clients.google.com/packages/ota/logitech_ka/52057d168e2b.mp-signed-ota_update-b39953.zip&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| [[ Revue Update b42449| b42449]] &lt;br /&gt;
| 2.1-Update1&lt;br /&gt;
| 12-15-10&lt;br /&gt;
| http://android.clients.google.com/packages/ota/logitech_ka/c9914396d183.mp-signed-ota_update-b42449.zip&lt;br /&gt;
| [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-December-15-2010/td-p/537980 Logitech Forums]&lt;br /&gt;
|-&lt;br /&gt;
| [[ Revue Update b42732 | b42732]]&lt;br /&gt;
| 2.1-Update1&lt;br /&gt;
| 01-12-11&lt;br /&gt;
| http://android.clients.google.com/packages/ota/logitech_ka/9504d579bade.mp-signed-ota_update-b42732.zip&lt;br /&gt;
| [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 Logitech Forums]&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Logitech Revue|Version Numbers]]&lt;br /&gt;
&lt;br /&gt;
=== Sony Blu Ray Player X ===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
! Version number&lt;br /&gt;
! ID&lt;br /&gt;
! Date first seen&lt;br /&gt;
! Update link&lt;br /&gt;
! Announcement&lt;br /&gt;
|-&lt;br /&gt;
| [[ Sony Update 164108| 164108]]&lt;br /&gt;
| 2.1-update1&lt;br /&gt;
| 01-10-11&lt;br /&gt;
| ogm_2.1_2010121503ON.164108&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sony GoogleTV X===&lt;br /&gt;
== Known Development/Beta Vesion Numbers ==&lt;br /&gt;
&lt;br /&gt;
== Core GoogleTV Versions == &lt;br /&gt;
These Version Numbers relate to GoogleTV Versions, which may or may not see release to the individual devices.  Think of the difference between ASOP releases and device-specific releases.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=LogitechRevueUpdates&amp;diff=389</id>
		<title>LogitechRevueUpdates</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=LogitechRevueUpdates&amp;diff=389"/>
		<updated>2011-01-23T18:16:40Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Removed category since this is just a place holder&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Logitech Revue Version information and Update information has been moved to the [[GoogleTV_-_Version_Numbers | Google TV Version page]].&lt;br /&gt;
{{Revue toc Inline}}&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=388</id>
		<title>CONFIG DEVMEM PROTECT</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=388"/>
		<updated>2011-01-23T18:15:53Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
Although we have not found a specific implementation for this kernel configuration item, it is most likely similar in nature to CONFIG_NONPROMISC_DEVMEM or CONFIG_STRICT_DEVMEM options in other kernel distributions.  The purpose of this parameter would be to restrict user space applications from accessing kernel space (i.e. ring 0) memory via the /dev/mem character device.  Preliminary testing reveals that requests to read from where the kernel is loaded (i.e. above 1MB) fail with EACCES even while root and with properly set permissions on the device.  Without this protection in place it would be possible to modify kernel structures and subvert other security mechanisms such as the [[CONFIG_MODULE_SIG]] protection.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|CONFIG_DEVMEM_PROTECT]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=387</id>
		<title>CONFIG MODULE SIG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=387"/>
		<updated>2011-01-23T18:15:11Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The &#039;&#039;&#039;CONFIG_MODULE_SIG&#039;&#039;&#039; parameter implements cryptographic signing of all [http://tldp.org/HOWTO/Module-HOWTO/ loadable kernel modules (LKM)]. With this option configured the kernel will use compiled in public keys to verify the authenticity of the module.  As per [http://lkml.org/lkml/2007/2/14/169 David Howells LKML post]:&lt;br /&gt;
&lt;br /&gt;
There are several reasons why these patches are useful, amongst which are:&lt;br /&gt;
&lt;br /&gt;
(1) to protect against accidentally-corrupted modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(2) to protect against maliciously modified modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(3) to allow a sysadmin (or more likely an IT department) to enforce a policy that only known and approved modules shall be loaded onto machines which they&#039;re expected to support;&lt;br /&gt;
&lt;br /&gt;
(4) to allow other support providers to do likewise, or at least to _detect_ the fact that unsupported modules are loaded;&lt;br /&gt;
&lt;br /&gt;
(5) to allow the detection of modules replaced by a second-order distro or a preloaded Linux purveyor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The patch attached to the referenced [http://lkml.org LKML] [http://lkml.org/lkml/2007/2/14/169 post] is not entirely consistent with the implementation on the Revue.  Since Logitech has not made a GPL drop, we can not verify the specific implementation at this time.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Logitech Implementation ===&lt;br /&gt;
Analysis of modules from the Logitech Revue gives an indication of how Logitech has likely modified the standard Linux kernel patch.  Using objdump to inspect the ELF sections reveals that the Revue appears to use a section called &#039;.signature&#039; rather than &#039;.module_sig&#039;.&lt;br /&gt;
&lt;br /&gt;
This is seen in index 11 of the &#039;objdump -h&#039; output provided below from a module used by the Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	sec_kernel.ko:     file format elf32-i386&lt;br /&gt;
&lt;br /&gt;
	Sections:&lt;br /&gt;
	Idx Name          Size      VMA       LMA       File off  Algn&lt;br /&gt;
	  0 .text         00002960  00000000  00000000  00000040  2**4&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE&lt;br /&gt;
	  1 .rodata       000002bc  00000000  00000000  000029a0  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA&lt;br /&gt;
	  2 .rodata.str1.1 00000199  00000000  00000000  00002c5c  2**0&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  3 .rodata.str1.4 00000478  00000000  00000000  00002df8  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  4 .modinfo      000000ba  00000000  00000000  00003280  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  5 __versions    00000580  00000000  00000000  00003340  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  6 .data         000000c4  00000000  00000000  000038c0  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA&lt;br /&gt;
	  7 .gnu.linkonce.this_module 00000280  00000000  00000000  00003a00  2**7&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD&lt;br /&gt;
	  8 .bss          00000664  00000000  00000000  00003c80  2**5&lt;br /&gt;
					  ALLOC&lt;br /&gt;
	  9 .comment      0000006c  00000000  00000000  00003c80  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 10 .note.GNU-stack 00000000  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 11 .signature    00000200  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Logitech Revue|CONFIG_MODULE_SIG]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=386</id>
		<title>CONFIG DEVMEM PROTECT</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=386"/>
		<updated>2011-01-23T18:14:03Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added a note about CONFIG_MODULE_SIG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
Although we have not found a specific implementation for this kernel configuration item, it is most likely similar in nature to CONFIG_NONPROMISC_DEVMEM or CONFIG_STRICT_DEVMEM options in other kernel distributions.  The purpose of this parameter would be to restrict user space applications from accessing kernel space (i.e. ring 0) memory via the /dev/mem character device.  Preliminary testing reveals that requests to read from where the kernel is loaded (i.e. above 1MB) fail with EACCES even while root and with properly set permissions on the device.  Without this protection in place it would be possible to modify kernel structures and subvert other security mechanisms such as the [[CONFIG_MODULE_SIG]] protection.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=385</id>
		<title>CONFIG DEVMEM PROTECT</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_DEVMEM_PROTECT&amp;diff=385"/>
		<updated>2011-01-23T18:11:28Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Initial Contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
Although we have not found a specific implementation for this kernel configuration item, it is most likely similar in nature to CONFIG_NONPROMISC_DEVMEM or CONFIG_STRICT_DEVMEM options in other kernel distributions.  The purpose of this parameter would be to restrict user space applications from accessing kernel space (i.e. ring 0) memory via the /dev/mem character device.  Preliminary testing reveals that requests to read from where the kernel is loaded (i.e. above 1MB) fail with EACCES even while root and with properly set permissions on the device.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=384</id>
		<title>CONFIG MODULE SIG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=CONFIG_MODULE_SIG&amp;diff=384"/>
		<updated>2011-01-23T18:02:14Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Initial Contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The &#039;&#039;&#039;CONFIG_MODULE_SIG&#039;&#039;&#039; parameter implements cryptographic signing of all [http://tldp.org/HOWTO/Module-HOWTO/ loadable kernel modules (LKM)]. With this option configured the kernel will use compiled in public keys to verify the authenticity of the module.  As per [http://lkml.org/lkml/2007/2/14/169 David Howells LKML post]:&lt;br /&gt;
&lt;br /&gt;
There are several reasons why these patches are useful, amongst which are:&lt;br /&gt;
&lt;br /&gt;
(1) to protect against accidentally-corrupted modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(2) to protect against maliciously modified modules causing damage;&lt;br /&gt;
&lt;br /&gt;
(3) to allow a sysadmin (or more likely an IT department) to enforce a policy that only known and approved modules shall be loaded onto machines which they&#039;re expected to support;&lt;br /&gt;
&lt;br /&gt;
(4) to allow other support providers to do likewise, or at least to _detect_ the fact that unsupported modules are loaded;&lt;br /&gt;
&lt;br /&gt;
(5) to allow the detection of modules replaced by a second-order distro or a preloaded Linux purveyor.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: The patch attached to the referenced [http://lkml.org LKML] [http://lkml.org/lkml/2007/2/14/169 post] is not entirely consistent with the implementation on the Revue.  Since Logitech has not made a GPL drop, we can not verify the specific implementation at this time.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Logitech Implementation ===&lt;br /&gt;
Analysis of modules from the Logitech Revue gives an indication of how Logitech has likely modified the standard Linux kernel patch.  Using objdump to inspect the ELF sections reveals that the Revue appears to use a section called &#039;.signature&#039; rather than &#039;.module_sig&#039;.&lt;br /&gt;
&lt;br /&gt;
This is seen in index 11 of the &#039;objdump -h&#039; output provided below from a module used by the Revue:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	sec_kernel.ko:     file format elf32-i386&lt;br /&gt;
&lt;br /&gt;
	Sections:&lt;br /&gt;
	Idx Name          Size      VMA       LMA       File off  Algn&lt;br /&gt;
	  0 .text         00002960  00000000  00000000  00000040  2**4&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE&lt;br /&gt;
	  1 .rodata       000002bc  00000000  00000000  000029a0  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA&lt;br /&gt;
	  2 .rodata.str1.1 00000199  00000000  00000000  00002c5c  2**0&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  3 .rodata.str1.4 00000478  00000000  00000000  00002df8  2**2&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  4 .modinfo      000000ba  00000000  00000000  00003280  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  5 __versions    00000580  00000000  00000000  00003340  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, READONLY, DATA&lt;br /&gt;
	  6 .data         000000c4  00000000  00000000  000038c0  2**5&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA&lt;br /&gt;
	  7 .gnu.linkonce.this_module 00000280  00000000  00000000  00003a00  2**7&lt;br /&gt;
					  CONTENTS, ALLOC, LOAD, RELOC, DATA, LINK_ONCE_DISCARD&lt;br /&gt;
	  8 .bss          00000664  00000000  00000000  00003c80  2**5&lt;br /&gt;
					  ALLOC&lt;br /&gt;
	  9 .comment      0000006c  00000000  00000000  00003c80  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 10 .note.GNU-stack 00000000  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
	 11 .signature    00000200  00000000  00000000  00003cec  2**0&lt;br /&gt;
					  CONTENTS, READONLY&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=383</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=383"/>
		<updated>2011-01-23T17:17:57Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* GTVHACKER&amp;#039;S Guide to installing applications and rooting your Logitech Revue */  -- Added steps for installing applications for the n00bs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
=== 2011 January 21: CONFIG_MODULE_SIG on the Revue ===&lt;br /&gt;
I have finally identified why my attempts at loading my own modules onto the Revue have all failed (outside of recovery).  As shown in /proc/config.gz, the Revue kernel was built with CONFIG_MODULE_SIG=y which means that any module will require a signature that can be verified with the public signatures compiled into the kernel.  Anybody out there up for patching /dev/mem to remove the signature checking or perhaps add a new signature? If so, please contact us!&lt;br /&gt;
--[http://gtvhacker.com/index.php/Craigdroid Craig]&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 16: FAT file systems and DOS line endings ===&lt;br /&gt;
I have received a few emails now from people having problems with the manual update script due to line endings and FAT file systems.  If you do not understand what this means it is best to stick with using an extended (ext2) file system on your USB drive and extract everything under Linux rather than Windows.&lt;br /&gt;
--[http://gtvhacker.com/index.php/Craigdroid Craig]&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: Breaking OTA Updates ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: Avoiding an unexpected reboot ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: Logitech&#039;s Statement on Rooting ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: Do I really need a virgin? ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L (On the revue keyboard, not through the console) until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Installing Apps===&lt;br /&gt;
After reboot, the Logitech Revue will now be running the [[Android Development Bridge (adb)]] daemon to allow remote connections on port 5555.  If you already have the Android SDK tools installed you are ready to begin installing applications with the standard &#039;adb install&#039; commands or accessing shell via &#039;adb shell&#039;.&lt;br /&gt;
In case you are not familiar with using the [[Android Development Bridge (adb)]], the following steps will help you get started:&lt;br /&gt;
&lt;br /&gt;
1.) Follow the steps outlined [http://developer.android.com/sdk/index.html here] to install the Android 2.1 SDK to the computer you wish to install apps from. Don&#039;t worry about USB drivers as you will not be using this with the Revue.  (Newer SDK tools should work also, but keep in mind that the Revue is at SDK 7 when building apps.)&lt;br /&gt;
&lt;br /&gt;
2.) Determine the IP address of your Revue by checking with your DHCP server or viewing &#039;Network Information&#039; in the Revue Settings app.  This will be referred to as &amp;lt;GTV-IP&amp;gt; in subsequent steps.&lt;br /&gt;
&lt;br /&gt;
3.) Open a shell (i.e. bash/cygwin/dos/etc) on the machine with the SDK installed.&lt;br /&gt;
&lt;br /&gt;
4.) Verify that the sdk tools directory is in your PATH (Google can help if you don&#039;t understand this step.)&lt;br /&gt;
&lt;br /&gt;
5.) Run &#039;adb connect &amp;lt;GTV-IP&amp;gt;:5555&#039; and you should see:&lt;br /&gt;
   $ adb connect 10.10.10.50:5555&lt;br /&gt;
   connected to 10.10.10.50:5555&lt;br /&gt;
&lt;br /&gt;
6.) Change to the directory containing the Android packages (APK) you wish to install and run &#039;adb install app.apk&#039;  (where app.apk is the app&#039;s filename)&lt;br /&gt;
   $ adb install Maps.apk&lt;br /&gt;
        pkg: /data/local/tmp/Maps.apk&lt;br /&gt;
   Success&lt;br /&gt;
   1062 KB/s (3993846 bytes in 3.672s)&lt;br /&gt;
&lt;br /&gt;
7.) If adb did not report any errors, your app should now be available in your Logitech Revue applications list.  Please note that some Android apps make use of native code which runs outside of the [http://en.wikipedia.org/wiki/Dalvik_(software) DalvikVM].  These native pieces will need to be rebuilt for the Revue&#039;s x86 architecture.  Refer to the [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support Toolchain Support] page for help rebuilding native code.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support documented here].&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip Beta1] or [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer-beta2.zip Beta2] &lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=382</id>
		<title>Logitech Revue Technical</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=382"/>
		<updated>2011-01-23T16:13:00Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Kernel Revisions */ updated link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Update Procedure ==&lt;br /&gt;
&lt;br /&gt;
Place new update labelled &amp;quot;update.zip&amp;quot; on a USB drive, with a single partition (ie, 1st partition on a USB disk, so say &amp;quot;/dev/sdc1&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
Insert into Revue in the Right most USB port (if looking at the back, closest to the power jack)&lt;br /&gt;
&lt;br /&gt;
Boot into recovery mode:&lt;br /&gt;
&lt;br /&gt;
#Plug in the box, once the fan goes low, hold the sync button. Box should reboot, keep the sync button held until image on screen.&lt;br /&gt;
#Once you see the Arrow on your screen, using your keyboard press Alt+L - usually once or twice until Formatting DATA: shows on the screen, and does not go away&lt;br /&gt;
#You can then update the box, with a newer update. Downgrading fails however due to a date check.&lt;br /&gt;
&lt;br /&gt;
== Firmware Links ==&lt;br /&gt;
&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/439c26f6af05.mp-signed-ota_update-b39389.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/52057d168e2b.mp-signed-ota_update-b39953.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/c9914396d183.mp-signed-ota_update-b42449.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/9504d579bade.mp-signed-ota_update-b42732.zip&lt;br /&gt;
&lt;br /&gt;
== Kernel Revisions ==&lt;br /&gt;
For details of the Revue kernel, refer to [[Logitech Revue Kernel]]&lt;br /&gt;
&lt;br /&gt;
*Initial kernel observed on the Revue (?): 2.6.23.18-gc0a9a5fb (richard@sayan) (gcc version 4.1.2) #3 PREEMPT Sat Jul 31 15:32:56 PDT 2010&lt;br /&gt;
*439c26f6af05.mp-signed-ota_update-b39389: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*52057d168e2b.mp-signed-ota_update-b39953: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*c9914396d183.mp-signed-ota_update-b42449: 2.6.23.18-g5bba1a13 (sameer@sayan) #24 PREEMPT Fri Nov 19 11:13:31 PST 2010&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*awk&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Flash Hard Drive ==&lt;br /&gt;
&lt;br /&gt;
The Revue has an internal hard drive stored on an sdram chip (flash memory).  It contains the complete file system for the Revue as well as the user data (if their is not external storage provided).  More information about the layout of this file system can be found [[ GTV_FileSystem | File System Details.]]&lt;br /&gt;
&lt;br /&gt;
== Serial Output ==&lt;br /&gt;
&lt;br /&gt;
The logitech revue board contains a UART1 port on the front of the board which before receiving the boxes initial updates is active. In order to communicate with UART port you will need a USB to TTL adapter (or board that does a similar conversion). &lt;br /&gt;
&lt;br /&gt;
The pins operate at 3.3v and the port at 9600 baud with the following pinout:&lt;br /&gt;
&lt;br /&gt;
[http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
&lt;br /&gt;
Serial output&lt;br /&gt;
&lt;br /&gt;
via: http://googletv.pastebin.com/233dZqZx&lt;br /&gt;
[[Pasted Locally]]&lt;br /&gt;
&lt;br /&gt;
== PIC Access ==&lt;br /&gt;
*There is a standard PIC access port to the right of the UART1 port. It can be accessed via a standard PIC Kit Debug board (Tested with version 2). The port has read/write access but the code is pulled from the chip as .hex file and is unreadable thus far.&lt;br /&gt;
&lt;br /&gt;
*The pinout starting from the left (pin with white square around it) corresponds to pin 1 or Vpp.The remaining pins follow the same layout. [http://www.ianstedman.co.uk/Projects/TK3_PICKit2_adaptor/Pickit2_pinout.png PIC Pinout]&lt;br /&gt;
&lt;br /&gt;
[http://googletv.pastebin.com/PBWRCAqB PIC Hex Dump] [[Local PIC Hex Dump]]&lt;br /&gt;
&lt;br /&gt;
[http://dl.dropbox.com/u/217678/Bootloader%20from%20PIC.TXT PIC Disassembly]&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
The updates contain a full set of system files (changed and unchanged), including a boot.img and a recovery.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boot.img&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The thread at [http://forum.xda-developers.com/showpost.php?p=8844074&amp;amp;postcount=80 xda-developer] has the process to extract from the .img files (thx bftb0):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;the &amp;quot;boot.img&amp;quot; file is in (little-endian) &amp;quot;squashfs&amp;quot; format and unpacks just fine using &amp;quot;unsquashfs&amp;quot; from the (Ubuntu 8.0.04 LTS) squashfs-tools package.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; recovery.img&lt;br /&gt;
&lt;br /&gt;
system/boot/recovery.img is a standard Android boot image with some extra garbage (0x580 bytes) at the front. Remove it like so:&lt;br /&gt;
  dd if=system/boot/recovery.img bs=1408 skip=1 &amp;gt; recovery-ungarbaged.img&lt;br /&gt;
Unpack that like a normal Android boot image. Something like [http://android-dls.com/files/linux/split_bootimg.zip this Perl script] works well.&lt;br /&gt;
&lt;br /&gt;
The kernel (system/boot/kernel) is also a boot image with the same extra garbage at the front.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Odex files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The .odex files can be extracted by using the following guide [http://code.google.com/p/smali/wiki/DeodexInstructions Deodex Instructions]&lt;br /&gt;
&lt;br /&gt;
== Open Ports ==&lt;br /&gt;
List nmap ports&lt;br /&gt;
&lt;br /&gt;
Normal Mode, hooked to a Dish Network DVR (622) via WiFi:&lt;br /&gt;
&lt;br /&gt;
*Nmap scan report for LogitechRevue (192.168.1.142)&lt;br /&gt;
*Host is up (0.060s latency).&lt;br /&gt;
*Not shown: 65528 closed ports&lt;br /&gt;
*PORT      STATE SERVICE&lt;br /&gt;
*53/tcp    open  domain&lt;br /&gt;
*1100/tcp  open  unknown&lt;br /&gt;
*5222/tcp  open  unknown -- [http://xmpp.org/ Extensible Messaging and Presence Protocol (XMPP) Service (http://xmpp.org/)]&lt;br /&gt;
*5223/tcp  open  unknown -- SSL port for [http://xmpp.org/ XMPP]&lt;br /&gt;
*9551/tcp  open  unknown -- [[AnyMote]] Pairing Service through IpRemoteControlService -- SSL handshake requests cert and logs show errors from [[AnyMote]]&lt;br /&gt;
*9552/tcp  open  unknown -- [[AnyMote]] Connection Port&lt;br /&gt;
*35832/tcp open  unknown&lt;br /&gt;
&lt;br /&gt;
Also of course, with root - port 5555, for ADB!&lt;br /&gt;
&lt;br /&gt;
== Available Pinouts ==&lt;br /&gt;
*UART1 --&amp;gt; [http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
*J3 --&amp;gt; PIC Chip Access (Pin 1 = VPP/MCLR, Pin 2 = VDD, Pin 3 = VSS, Pin 4 = ICSPDAT/PGD, Pin 5 = ICSPCLK/PGC, Pin 6 = Auxiliary)&lt;br /&gt;
*SW1 --&amp;gt; Push Button Switch (Use is unknown)&lt;br /&gt;
*J20 --&amp;gt; I2C (Top left - GND Top right - ? Bottom left - SDA Bottom right - SCL)&lt;br /&gt;
*J69 --&amp;gt; USB Pinout&lt;br /&gt;
*SATA1 --&amp;gt; SATA Pinout (Pin 1 = GND, Pin 2 = TXP / A+ , Pin 3 = TXN / A-, Pin 4 = GND , Pin 5 = RXN / B-, Pin 6 = RXP / B+ , Pin 7 = GND)&lt;br /&gt;
*J24 --&amp;gt; Unknown (Pin 1 = 3.3, Pin 2 = ?, Pin 3 = ?, Pin 4 = GND)&lt;br /&gt;
*J13 --&amp;gt; Unknown (Power for SATA?) - (Pin 1 = ?, Pin 2 = GND, Pin 3 = GND, Pin 4 = 5v)&lt;br /&gt;
*J67 --&amp;gt; USB (Pin 1 = GND, Pin 2 = D-, Pin 3 = D+, Pin 4 = FREE, Pin 5 = VCC +5V) used for RF daughter board. [http://www.chrispix.com/googleTV.jpg IMG]&lt;br /&gt;
*XDP1 --&amp;gt; Intel XDP Debug Adapter [http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf Information on XDP Debugging] [ftp://download.intel.com/design/Pentium4/guides/31337301.pdf Page 23 Pinout]&lt;br /&gt;
[[Category:Logitech Revue]]&lt;br /&gt;
&lt;br /&gt;
== Volume Management Configuration ==&lt;br /&gt;
Similar to other android based products, external storage can be attached and the device will attempt to mount it to /sdcard as per the following vold.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volume_sdcard {&lt;br /&gt;
    # NOTE: This path is overbroad and will capture any device on the&lt;br /&gt;
    # tatung3/tatung4 external PCI bus.  This needs to be fixed, in conjunction&lt;br /&gt;
    # with vold changes to handle logical device names (DEVPATH names are not&lt;br /&gt;
    # static, unfortunately.)&lt;br /&gt;
    media_path     /devices/pci0000:00/0000:00:01.0/0000:01:0d.1/usb2/&lt;br /&gt;
    media_type     scsi&lt;br /&gt;
    mount_point    /sdcard&lt;br /&gt;
    read_only      true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the interesting comment about the media_path as well as the read_only=true attribute.&lt;br /&gt;
[[Category:Logitech Revue|Technical]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=379</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=379"/>
		<updated>2011-01-22T21:21:43Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: changed wording about gzip header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader, etc wrapped around vmlinux.bin.gz which has its gzip header 0x37f5 bytes into the composite kernel image we have examined.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel, use dd to copy starting at the gzip header:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=378</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=378"/>
		<updated>2011-01-22T21:15:13Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added note about config.gz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Kernel Configuration ===&lt;br /&gt;
Fortunately the Revue&#039;s kernel provides /proc/config.gz which allows a glimpse into the kernel in advance of a proper GPL release from Logitech.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=377</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=377"/>
		<updated>2011-01-22T21:06:31Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added section on extracting vmlinux.bin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
=== Examining the Kernel Image ===&lt;br /&gt;
The kernel lives in /system/boot/kernel which can be extracted from an OTA update file or from a rooted Revue. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.&lt;br /&gt;
&lt;br /&gt;
To extract vmlinux.bin.gz from /system/boot/kernel:&lt;br /&gt;
     dd if=./ota_update/system/boot/kernel of=vmlinux.bin.gz bs=$((0x37f5)) skip=1&lt;br /&gt;
Now you can decompress the vmlinux.bin.gz&lt;br /&gt;
     gzip -d vmlinux.bin.gz&lt;br /&gt;
&lt;br /&gt;
At this point you have the vmlinux.bin which is essentially vmlinux minus the ELF headers and symbols.&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=376</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=376"/>
		<updated>2011-01-22T20:49:28Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Removed space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=375</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=375"/>
		<updated>2011-01-22T20:45:51Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: removed toc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=374</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=374"/>
		<updated>2011-01-22T20:45:07Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added toc&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=373</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=373"/>
		<updated>2011-01-22T20:43:38Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Initial Contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
The Logitech Revue&#039;s Operating System is based around Linux kernel based on 2.6.23.18 code.  The kernel lives in /system/boot/kernel which can be extracted from an OTA update file. The kernel file appears to contain bootstrap loader (and possibly some other data) piggy-backed to vmlinux.bin.gz which has been observed to reside about 0x37f5 bytes into the composite kernel image.  Several security measures have been put in place ensuring that many attacks commonly used against other operating systems are not applicable.&lt;br /&gt;
&lt;br /&gt;
It should also be noted that reading through this Wiki page should illustrate that the [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 kernel source posted on Google&#039;s mirrored source site] is not a complete representation of the Logitech Revue&#039;s kernel.&lt;br /&gt;
&lt;br /&gt;
=== Security Measures ===&lt;br /&gt;
Several security precautions have been made in the Logitech Revue with the intent of limiting system control even after root access has been obtained.&lt;br /&gt;
* The /system partition is configured as read-only by the flash layout compiled into the kernel&lt;br /&gt;
* [[CONFIG_MODULE_SIG]]=y : Module signatures are enabled.  Logitech&#039;s included kernel modules contain a .signature section which is checked against public keys compiled into the kernel.  This effectively limits execution of new code at privilege level 0 even once root access is achieved.  (This is an option which is not implemented in the released GPL sources.)&lt;br /&gt;
* [[CONFIG_DEVMEM_PROTECT]]=y : This most likely enables a patch which filters access to the /dev/mem character device which could otherwise be used to create a rootkit by directly patching the running kernel. (This is another option which indicates that the Logitech Revue kernel has been patched in ways that the available GPL source code was not.)&lt;br /&gt;
&lt;br /&gt;
=== Virtual Kernel Memory Layout ===&lt;br /&gt;
Memory: 700640k/712704k available (2633k kernel code, 11008k reserved, 955k data, 196k init, 0k highmem)&lt;br /&gt;
virtual kernel memory layout:&lt;br /&gt;
     fixmap  : 0xffffa000 - 0xfffff000   (  20 kB)&lt;br /&gt;
     vmalloc : 0xac000000 - 0xffff8000   (1343 MB)&lt;br /&gt;
     lowmem  : 0x80000000 - 0xab800000   ( 696 MB)&lt;br /&gt;
       .init : 0x80484000 - 0x804b5000   ( 196 kB)&lt;br /&gt;
       .data : 0x803925b8 - 0x80481398   ( 955 kB)&lt;br /&gt;
       .text : 0x80100000 - 0x803925b8   (2633 kB)&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=LogitechRevueUpdates&amp;diff=372</id>
		<title>LogitechRevueUpdates</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=LogitechRevueUpdates&amp;diff=372"/>
		<updated>2011-01-22T20:11:53Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added updates sort key.  We should consider pruning this article though&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Logitech Revue Version information and Update information has been moved to the [[GoogleTV_-_Version_Numbers | Google TV Version page]].&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Updates]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Revue_Update_b42732&amp;diff=371</id>
		<title>Revue Update b42732</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Revue_Update_b42732&amp;diff=371"/>
		<updated>2011-01-22T20:10:52Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: added sort key &amp;#039;Updates&amp;#039; in Logitech Revue category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes update b42732 for the Logitech Revue, first appearing on 1/12/2010.&lt;br /&gt;
&lt;br /&gt;
===Update Official Release Notes ===&lt;br /&gt;
Purpose: Security Updates per [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 Logitech Release]&lt;br /&gt;
&lt;br /&gt;
=== Build Properties Diff ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
3,5c3,5&lt;br /&gt;
&amp;lt; ro.build.id=KA1X-20101208.224639&lt;br /&gt;
&amp;lt; ro.build.display.id=KA1X-20101208.224639.user-b42449&lt;br /&gt;
&amp;lt; ro.build.version.incremental=user-b42449&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; ro.build.id=KA1X-20101215.164651&lt;br /&gt;
&amp;gt; ro.build.display.id=KA1X-20101215.164651.user-b42732&lt;br /&gt;
&amp;gt; ro.build.version.incremental=user-b42732&lt;br /&gt;
9,10c9,10&lt;br /&gt;
&amp;lt; ro.build.date=Wed Dec  8 22:47:18 MST 2010&lt;br /&gt;
&amp;lt; ro.build.date.utc=1291873638&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; ro.build.date=Wed Dec 15 16:47:55 MST 2010&lt;br /&gt;
&amp;gt; ro.build.date.utc=1292456875&lt;br /&gt;
29,30c29,30&lt;br /&gt;
&amp;lt; ro.build.description=ka-user 2.1-update1 KA1X-20101208.224639 user-b42449 release-keys&lt;br /&gt;
&amp;lt; ro.build.fingerprint=logitech/ka/ka/:2.1-update1/KA1X-20101208.224639/user-b42449:user/release-keys&lt;br /&gt;
---&lt;br /&gt;
&amp;gt; ro.build.description=ka-user 2.1-update1 KA1X-20101215.164651 user-b42732 release-keys&lt;br /&gt;
&amp;gt; ro.build.fingerprint=logitech/ka/ka/:2.1-update1/KA1X-20101215.164651/user-b42732:user/release-keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update Changeset===&lt;br /&gt;
&lt;br /&gt;
*Plaintext Files:*&lt;br /&gt;
META-INF/CERT.SF&lt;br /&gt;
&lt;br /&gt;
META-INF/MANIFEST.MF&lt;br /&gt;
&lt;br /&gt;
Binary (or JAR) files:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Differences of note ===&lt;br /&gt;
&lt;br /&gt;
system/bin/create_fses&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11,12c11,12&lt;br /&gt;
&amp;lt;     CACHE_PARTITION=/dev/sda1&lt;br /&gt;
&amp;lt;     CHROME_PARTITION=/dev/sda2&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;     CACHE_PARTITION=/dev/disk/by-topology/internal-usb0-part1&lt;br /&gt;
&amp;gt;     CHROME_PARTITION=/dev/disk/by-topology/internal-usb0-part2&lt;br /&gt;
16,17c16,17&lt;br /&gt;
&amp;lt;     CACHE_PARTITION=/dev/sda1&lt;br /&gt;
&amp;lt;     CHROME_PARTITION=/dev/sda2&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;     CACHE_PARTITION=/dev/disk/by-topology/internal-usb0-part1&lt;br /&gt;
&amp;gt;     CHROME_PARTITION=/dev/disk/by-topology/internal-usb0-part2&lt;br /&gt;
21,22c21,22&lt;br /&gt;
&amp;lt;     CACHE_PARTITION=/dev/sda1&lt;br /&gt;
&amp;lt;     CHROME_PARTITION=/dev/sda2&lt;br /&gt;
---&lt;br /&gt;
&amp;gt;     CACHE_PARTITION=/dev/disk/by-topology/internal-usb0-part1&lt;br /&gt;
&amp;gt;     CHROME_PARTITION=/dev/disk/by-topology/internal-usb0-part2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Libraries to inspect ===&lt;br /&gt;
&lt;br /&gt;
===How to dump libraries ===&lt;br /&gt;
objdump -Sdl libname.so &amp;gt; libname.so.dumpc99&#039; &lt;br /&gt;
&#039;objdump -Sdl libname.so.dump950&lt;br /&gt;
then start diffing the dumps for internal library changes&lt;br /&gt;
&lt;br /&gt;
=== Inspection Results ===&lt;br /&gt;
*keep in mind however that checksums can change without a functional change just due to a different build system being used*&lt;br /&gt;
libprotobuf.so  - Changes: [ http://dl.dropbox.com/u/1886948/updates.diff ]&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Updates]]&lt;br /&gt;
[[Category:Contribute]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=370</id>
		<title>Logitech Revue Technical</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=370"/>
		<updated>2011-01-22T20:10:04Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added sort key&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Update Procedure ==&lt;br /&gt;
&lt;br /&gt;
Place new update labelled &amp;quot;update.zip&amp;quot; on a USB drive, with a single partition (ie, 1st partition on a USB disk, so say &amp;quot;/dev/sdc1&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
Insert into Revue in the Right most USB port (if looking at the back, closest to the power jack)&lt;br /&gt;
&lt;br /&gt;
Boot into recovery mode:&lt;br /&gt;
&lt;br /&gt;
#Plug in the box, once the fan goes low, hold the sync button. Box should reboot, keep the sync button held until image on screen.&lt;br /&gt;
#Once you see the Arrow on your screen, using your keyboard press Alt+L - usually once or twice until Formatting DATA: shows on the screen, and does not go away&lt;br /&gt;
#You can then update the box, with a newer update. Downgrading fails however due to a date check.&lt;br /&gt;
&lt;br /&gt;
== Firmware Links ==&lt;br /&gt;
&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/439c26f6af05.mp-signed-ota_update-b39389.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/52057d168e2b.mp-signed-ota_update-b39953.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/c9914396d183.mp-signed-ota_update-b42449.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/9504d579bade.mp-signed-ota_update-b42732.zip&lt;br /&gt;
&lt;br /&gt;
== Kernel Revisions ==&lt;br /&gt;
For details of the Revue kernel, refer to [[Kernels_Revue]]&lt;br /&gt;
&lt;br /&gt;
*Initial kernel observed on the Revue (?): 2.6.23.18-gc0a9a5fb (richard@sayan) (gcc version 4.1.2) #3 PREEMPT Sat Jul 31 15:32:56 PDT 2010&lt;br /&gt;
*439c26f6af05.mp-signed-ota_update-b39389: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*52057d168e2b.mp-signed-ota_update-b39953: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*c9914396d183.mp-signed-ota_update-b42449: 2.6.23.18-g5bba1a13 (sameer@sayan) #24 PREEMPT Fri Nov 19 11:13:31 PST 2010&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*awk&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Flash Hard Drive ==&lt;br /&gt;
&lt;br /&gt;
The Revue has an internal hard drive stored on an sdram chip (flash memory).  It contains the complete file system for the Revue as well as the user data (if their is not external storage provided).  More information about the layout of this file system can be found [[ GTV_FileSystem | File System Details.]]&lt;br /&gt;
&lt;br /&gt;
== Serial Output ==&lt;br /&gt;
&lt;br /&gt;
The logitech revue board contains a UART1 port on the front of the board which before receiving the boxes initial updates is active. In order to communicate with UART port you will need a USB to TTL adapter (or board that does a similar conversion). &lt;br /&gt;
&lt;br /&gt;
The pins operate at 3.3v and the port at 9600 baud with the following pinout:&lt;br /&gt;
&lt;br /&gt;
[http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
&lt;br /&gt;
Serial output&lt;br /&gt;
&lt;br /&gt;
via: http://googletv.pastebin.com/233dZqZx&lt;br /&gt;
[[Pasted Locally]]&lt;br /&gt;
&lt;br /&gt;
== PIC Access ==&lt;br /&gt;
*There is a standard PIC access port to the right of the UART1 port. It can be accessed via a standard PIC Kit Debug board (Tested with version 2). The port has read/write access but the code is pulled from the chip as .hex file and is unreadable thus far.&lt;br /&gt;
&lt;br /&gt;
*The pinout starting from the left (pin with white square around it) corresponds to pin 1 or Vpp.The remaining pins follow the same layout. [http://www.ianstedman.co.uk/Projects/TK3_PICKit2_adaptor/Pickit2_pinout.png PIC Pinout]&lt;br /&gt;
&lt;br /&gt;
[http://googletv.pastebin.com/PBWRCAqB PIC Hex Dump] [[Local PIC Hex Dump]]&lt;br /&gt;
&lt;br /&gt;
[http://dl.dropbox.com/u/217678/Bootloader%20from%20PIC.TXT PIC Disassembly]&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
The updates contain a full set of system files (changed and unchanged), including a boot.img and a recovery.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boot.img&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The thread at [http://forum.xda-developers.com/showpost.php?p=8844074&amp;amp;postcount=80 xda-developer] has the process to extract from the .img files (thx bftb0):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;the &amp;quot;boot.img&amp;quot; file is in (little-endian) &amp;quot;squashfs&amp;quot; format and unpacks just fine using &amp;quot;unsquashfs&amp;quot; from the (Ubuntu 8.0.04 LTS) squashfs-tools package.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; recovery.img&lt;br /&gt;
&lt;br /&gt;
system/boot/recovery.img is a standard Android boot image with some extra garbage (0x580 bytes) at the front. Remove it like so:&lt;br /&gt;
  dd if=system/boot/recovery.img bs=1408 skip=1 &amp;gt; recovery-ungarbaged.img&lt;br /&gt;
Unpack that like a normal Android boot image. Something like [http://android-dls.com/files/linux/split_bootimg.zip this Perl script] works well.&lt;br /&gt;
&lt;br /&gt;
The kernel (system/boot/kernel) is also a boot image with the same extra garbage at the front.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Odex files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The .odex files can be extracted by using the following guide [http://code.google.com/p/smali/wiki/DeodexInstructions Deodex Instructions]&lt;br /&gt;
&lt;br /&gt;
== Open Ports ==&lt;br /&gt;
List nmap ports&lt;br /&gt;
&lt;br /&gt;
Normal Mode, hooked to a Dish Network DVR (622) via WiFi:&lt;br /&gt;
&lt;br /&gt;
*Nmap scan report for LogitechRevue (192.168.1.142)&lt;br /&gt;
*Host is up (0.060s latency).&lt;br /&gt;
*Not shown: 65528 closed ports&lt;br /&gt;
*PORT      STATE SERVICE&lt;br /&gt;
*53/tcp    open  domain&lt;br /&gt;
*1100/tcp  open  unknown&lt;br /&gt;
*5222/tcp  open  unknown -- [http://xmpp.org/ Extensible Messaging and Presence Protocol (XMPP) Service (http://xmpp.org/)]&lt;br /&gt;
*5223/tcp  open  unknown -- SSL port for [http://xmpp.org/ XMPP]&lt;br /&gt;
*9551/tcp  open  unknown -- [[AnyMote]] Pairing Service through IpRemoteControlService -- SSL handshake requests cert and logs show errors from [[AnyMote]]&lt;br /&gt;
*9552/tcp  open  unknown -- [[AnyMote]] Connection Port&lt;br /&gt;
*35832/tcp open  unknown&lt;br /&gt;
&lt;br /&gt;
Also of course, with root - port 5555, for ADB!&lt;br /&gt;
&lt;br /&gt;
== Available Pinouts ==&lt;br /&gt;
*UART1 --&amp;gt; [http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
*J3 --&amp;gt; PIC Chip Access (Pin 1 = VPP/MCLR, Pin 2 = VDD, Pin 3 = VSS, Pin 4 = ICSPDAT/PGD, Pin 5 = ICSPCLK/PGC, Pin 6 = Auxiliary)&lt;br /&gt;
*SW1 --&amp;gt; Push Button Switch (Use is unknown)&lt;br /&gt;
*J20 --&amp;gt; I2C (Top left - GND Top right - ? Bottom left - SDA Bottom right - SCL)&lt;br /&gt;
*J69 --&amp;gt; USB Pinout&lt;br /&gt;
*SATA1 --&amp;gt; SATA Pinout (Pin 1 = GND, Pin 2 = TXP / A+ , Pin 3 = TXN / A-, Pin 4 = GND , Pin 5 = RXN / B-, Pin 6 = RXP / B+ , Pin 7 = GND)&lt;br /&gt;
*J24 --&amp;gt; Unknown (Pin 1 = 3.3, Pin 2 = ?, Pin 3 = ?, Pin 4 = GND)&lt;br /&gt;
*J13 --&amp;gt; Unknown (Power for SATA?) - (Pin 1 = ?, Pin 2 = GND, Pin 3 = GND, Pin 4 = 5v)&lt;br /&gt;
*J67 --&amp;gt; USB (Pin 1 = GND, Pin 2 = D-, Pin 3 = D+, Pin 4 = FREE, Pin 5 = VCC +5V) used for RF daughter board. [http://www.chrispix.com/googleTV.jpg IMG]&lt;br /&gt;
*XDP1 --&amp;gt; Intel XDP Debug Adapter [http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf Information on XDP Debugging] [ftp://download.intel.com/design/Pentium4/guides/31337301.pdf Page 23 Pinout]&lt;br /&gt;
[[Category:Logitech Revue]]&lt;br /&gt;
&lt;br /&gt;
== Volume Management Configuration ==&lt;br /&gt;
Similar to other android based products, external storage can be attached and the device will attempt to mount it to /sdcard as per the following vold.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volume_sdcard {&lt;br /&gt;
    # NOTE: This path is overbroad and will capture any device on the&lt;br /&gt;
    # tatung3/tatung4 external PCI bus.  This needs to be fixed, in conjunction&lt;br /&gt;
    # with vold changes to handle logical device names (DEVPATH names are not&lt;br /&gt;
    # static, unfortunately.)&lt;br /&gt;
    media_path     /devices/pci0000:00/0000:00:01.0/0000:01:0d.1/usb2/&lt;br /&gt;
    media_type     scsi&lt;br /&gt;
    mount_point    /sdcard&lt;br /&gt;
    read_only      true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the interesting comment about the media_path as well as the read_only=true attribute.&lt;br /&gt;
[[Category:Logitech Revue|Technical]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Hardware&amp;diff=369</id>
		<title>Logitech Revue Hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Hardware&amp;diff=369"/>
		<updated>2011-01-22T20:08:55Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added sort key&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|left|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
This page will be dedicated to the hardware specifications, descriptions, and information related to the Logitech Revue.&lt;br /&gt;
&lt;br /&gt;
The Revue was initially released October 21st 2010 (with official availability on the 25th) in the United States.  The Revue was released initially as a pass-through device meant to  augment your initial set top box connection to your display device.  For customers using the &amp;quot;DISH Network&amp;quot; Satellite subscription television service, integration was available that allowed the Revue to communicate directly with the satellite receiver/set top box.  For all other devices, an IR blaster was used to simulate remote control commands as a means to communicate between the Revue and the STB hardware.&lt;br /&gt;
&lt;br /&gt;
== Specs ==&lt;br /&gt;
*Intel Atom CE4150 1.2 GHz processor, with a 400 MHz GPU   &lt;br /&gt;
*Gigabyte GA-SBKAN2 motherboard&lt;br /&gt;
*Samsung K9F8G08U0M 1 GB NAND Flash (Single Level Cell) [http://www.samsung.com/global/system/business/semiconductor/product/2007/6/11/NANDFlash/SLC_LargeBlock/8Gbit/K9F8G08U0M/ds_k9f8g08x0m_rev10.pdf Datasheet] [http://zenosec.com/gtv/revue/ds_k9f8g08x0m_rev10.pdf Mirror]&lt;br /&gt;
*Hynix H27UBG8T2ATR 4 GB NAND Flash (Multiple Level Cell) [http://www.szyuda88.com/uploadfile/cfile/201061714220663.pdf Datasheet]&lt;br /&gt;
*Silicon Image Sil9135 HDMI 1.3 Receiver [http://dl.dropbox.com/u/217678/Silicon%20Image%20Sil9135%20Info.pdf  Chip Information] [http://focus.tij.co.jp/jp/lit/an/spraav4/spraav4.pdf Datasheet from TI]&lt;br /&gt;
*Nanya NT5CB128M8CN-CG 1 GB DDR3 SDRAM (1 Gb X 8) [http://dl.dropbox.com/u/217678/NTC-DDR3-1G-C-V58B-12-12-5.pdf Datasheet]&lt;br /&gt;
*Realtek Semiconductor RTL8201N 10/100M PHYceiver [http://realtek.info/pdf/RTL8201N_1-1.pdf Datasheet]&lt;br /&gt;
*Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller [http://ww1.microchip.com/downloads/en/DeviceDoc/39881c.pdf Datasheet]&lt;br /&gt;
*Phison S2251-50 USB to Flash Controller (Datasheet not available to end users according to manufacture)&lt;br /&gt;
*IDT ICS9LPRS525AGLF Clock for CPU [http://dl.dropbox.com/u/217678/9LPRS525.pdf Datasheet]&lt;br /&gt;
&lt;br /&gt;
The Logitech Revue was recently torndown and had its [http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1 inners revealed].&lt;br /&gt;
Direct link to the higher resolution picture of the [http://guide-images.ifixit.net/igi/5jWUcNNOrDvXZqEy.huge motherboard].&lt;br /&gt;
&lt;br /&gt;
SemiAccurate has a populated board similar to the one in the Revue: http://www.semiaccurate.com/2010/06/04/gigabyte-has-google-tv-ready-motherboard/&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Samsung K9F8G08U0M 1 GB NAND Flash&lt;br /&gt;
*Used for storage of bootloader, kernel, boot flash graphics, Linux OS etc..&lt;br /&gt;
&lt;br /&gt;
Hynix H27UBG8T2ATR 4 GB NAND Flash (Long Term Storage)&lt;br /&gt;
*Used for persistent storage, device is /dev/sda - possible to override with an external USB drive&lt;br /&gt;
&lt;br /&gt;
Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller &lt;br /&gt;
*Used to handle IR input/output for remotes/IR blasters and possible interface with wireless keyboard&lt;br /&gt;
*System reboot/powerdown&lt;br /&gt;
*Possibly HDMI CEC &lt;br /&gt;
&lt;br /&gt;
Silicon Image Sil9135 HDMI 1.3 Receiver&lt;br /&gt;
*Used to process video to and from HDMI ports as well as audio over HDMI and SPDIF&lt;br /&gt;
*Supports DTS even though the Revue does not (An update can probably enable this feature)&lt;br /&gt;
&lt;br /&gt;
IDT ICS9LPRS525AGLF Clock for CPU&lt;br /&gt;
*Provides a clock for the Intel Atom CPU&lt;br /&gt;
[[Category:Logitech Revue|Hardware]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=368</id>
		<title>Logitech Revue Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Kernel&amp;diff=368"/>
		<updated>2011-01-22T20:08:24Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Created page with &amp;quot;=== Overview ===  Kernel&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Overview ===&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue|Kernel]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=367</id>
		<title>Logitech Revue Technical</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_Technical&amp;diff=367"/>
		<updated>2011-01-22T20:03:41Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added link to kernel section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Update Procedure ==&lt;br /&gt;
&lt;br /&gt;
Place new update labelled &amp;quot;update.zip&amp;quot; on a USB drive, with a single partition (ie, 1st partition on a USB disk, so say &amp;quot;/dev/sdc1&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
Insert into Revue in the Right most USB port (if looking at the back, closest to the power jack)&lt;br /&gt;
&lt;br /&gt;
Boot into recovery mode:&lt;br /&gt;
&lt;br /&gt;
#Plug in the box, once the fan goes low, hold the sync button. Box should reboot, keep the sync button held until image on screen.&lt;br /&gt;
#Once you see the Arrow on your screen, using your keyboard press Alt+L - usually once or twice until Formatting DATA: shows on the screen, and does not go away&lt;br /&gt;
#You can then update the box, with a newer update. Downgrading fails however due to a date check.&lt;br /&gt;
&lt;br /&gt;
== Firmware Links ==&lt;br /&gt;
&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/439c26f6af05.mp-signed-ota_update-b39389.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/52057d168e2b.mp-signed-ota_update-b39953.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/c9914396d183.mp-signed-ota_update-b42449.zip&lt;br /&gt;
*http://android.clients.google.com/packages/ota/logitech_ka/9504d579bade.mp-signed-ota_update-b42732.zip&lt;br /&gt;
&lt;br /&gt;
== Kernel Revisions ==&lt;br /&gt;
For details of the Revue kernel, refer to [[Kernels_Revue]]&lt;br /&gt;
&lt;br /&gt;
*Initial kernel observed on the Revue (?): 2.6.23.18-gc0a9a5fb (richard@sayan) (gcc version 4.1.2) #3 PREEMPT Sat Jul 31 15:32:56 PDT 2010&lt;br /&gt;
*439c26f6af05.mp-signed-ota_update-b39389: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*52057d168e2b.mp-signed-ota_update-b39953: 2.6.23.18-g5fd8f46f (richard@mtdoom) #249 PREEMPT Tue Oct 5 09:55:20 BST 2010&lt;br /&gt;
*c9914396d183.mp-signed-ota_update-b42449: 2.6.23.18-g5bba1a13 (sameer@sayan) #24 PREEMPT Fri Nov 19 11:13:31 PST 2010&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*awk&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Flash Hard Drive ==&lt;br /&gt;
&lt;br /&gt;
The Revue has an internal hard drive stored on an sdram chip (flash memory).  It contains the complete file system for the Revue as well as the user data (if their is not external storage provided).  More information about the layout of this file system can be found [[ GTV_FileSystem | File System Details.]]&lt;br /&gt;
&lt;br /&gt;
== Serial Output ==&lt;br /&gt;
&lt;br /&gt;
The logitech revue board contains a UART1 port on the front of the board which before receiving the boxes initial updates is active. In order to communicate with UART port you will need a USB to TTL adapter (or board that does a similar conversion). &lt;br /&gt;
&lt;br /&gt;
The pins operate at 3.3v and the port at 9600 baud with the following pinout:&lt;br /&gt;
&lt;br /&gt;
[http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
&lt;br /&gt;
Serial output&lt;br /&gt;
&lt;br /&gt;
via: http://googletv.pastebin.com/233dZqZx&lt;br /&gt;
[[Pasted Locally]]&lt;br /&gt;
&lt;br /&gt;
== PIC Access ==&lt;br /&gt;
*There is a standard PIC access port to the right of the UART1 port. It can be accessed via a standard PIC Kit Debug board (Tested with version 2). The port has read/write access but the code is pulled from the chip as .hex file and is unreadable thus far.&lt;br /&gt;
&lt;br /&gt;
*The pinout starting from the left (pin with white square around it) corresponds to pin 1 or Vpp.The remaining pins follow the same layout. [http://www.ianstedman.co.uk/Projects/TK3_PICKit2_adaptor/Pickit2_pinout.png PIC Pinout]&lt;br /&gt;
&lt;br /&gt;
[http://googletv.pastebin.com/PBWRCAqB PIC Hex Dump] [[Local PIC Hex Dump]]&lt;br /&gt;
&lt;br /&gt;
[http://dl.dropbox.com/u/217678/Bootloader%20from%20PIC.TXT PIC Disassembly]&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
The updates contain a full set of system files (changed and unchanged), including a boot.img and a recovery.img&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;boot.img&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The thread at [http://forum.xda-developers.com/showpost.php?p=8844074&amp;amp;postcount=80 xda-developer] has the process to extract from the .img files (thx bftb0):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;the &amp;quot;boot.img&amp;quot; file is in (little-endian) &amp;quot;squashfs&amp;quot; format and unpacks just fine using &amp;quot;unsquashfs&amp;quot; from the (Ubuntu 8.0.04 LTS) squashfs-tools package.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; recovery.img&lt;br /&gt;
&lt;br /&gt;
system/boot/recovery.img is a standard Android boot image with some extra garbage (0x580 bytes) at the front. Remove it like so:&lt;br /&gt;
  dd if=system/boot/recovery.img bs=1408 skip=1 &amp;gt; recovery-ungarbaged.img&lt;br /&gt;
Unpack that like a normal Android boot image. Something like [http://android-dls.com/files/linux/split_bootimg.zip this Perl script] works well.&lt;br /&gt;
&lt;br /&gt;
The kernel (system/boot/kernel) is also a boot image with the same extra garbage at the front.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Odex files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The .odex files can be extracted by using the following guide [http://code.google.com/p/smali/wiki/DeodexInstructions Deodex Instructions]&lt;br /&gt;
&lt;br /&gt;
== Open Ports ==&lt;br /&gt;
List nmap ports&lt;br /&gt;
&lt;br /&gt;
Normal Mode, hooked to a Dish Network DVR (622) via WiFi:&lt;br /&gt;
&lt;br /&gt;
*Nmap scan report for LogitechRevue (192.168.1.142)&lt;br /&gt;
*Host is up (0.060s latency).&lt;br /&gt;
*Not shown: 65528 closed ports&lt;br /&gt;
*PORT      STATE SERVICE&lt;br /&gt;
*53/tcp    open  domain&lt;br /&gt;
*1100/tcp  open  unknown&lt;br /&gt;
*5222/tcp  open  unknown -- [http://xmpp.org/ Extensible Messaging and Presence Protocol (XMPP) Service (http://xmpp.org/)]&lt;br /&gt;
*5223/tcp  open  unknown -- SSL port for [http://xmpp.org/ XMPP]&lt;br /&gt;
*9551/tcp  open  unknown -- [[AnyMote]] Pairing Service through IpRemoteControlService -- SSL handshake requests cert and logs show errors from [[AnyMote]]&lt;br /&gt;
*9552/tcp  open  unknown -- [[AnyMote]] Connection Port&lt;br /&gt;
*35832/tcp open  unknown&lt;br /&gt;
&lt;br /&gt;
Also of course, with root - port 5555, for ADB!&lt;br /&gt;
&lt;br /&gt;
== Available Pinouts ==&lt;br /&gt;
*UART1 --&amp;gt; [http://i.imgur.com/xJHay.jpg UART Pinout]&lt;br /&gt;
*J3 --&amp;gt; PIC Chip Access (Pin 1 = VPP/MCLR, Pin 2 = VDD, Pin 3 = VSS, Pin 4 = ICSPDAT/PGD, Pin 5 = ICSPCLK/PGC, Pin 6 = Auxiliary)&lt;br /&gt;
*SW1 --&amp;gt; Push Button Switch (Use is unknown)&lt;br /&gt;
*J20 --&amp;gt; I2C (Top left - GND Top right - ? Bottom left - SDA Bottom right - SCL)&lt;br /&gt;
*J69 --&amp;gt; USB Pinout&lt;br /&gt;
*SATA1 --&amp;gt; SATA Pinout (Pin 1 = GND, Pin 2 = TXP / A+ , Pin 3 = TXN / A-, Pin 4 = GND , Pin 5 = RXN / B-, Pin 6 = RXP / B+ , Pin 7 = GND)&lt;br /&gt;
*J24 --&amp;gt; Unknown (Pin 1 = 3.3, Pin 2 = ?, Pin 3 = ?, Pin 4 = GND)&lt;br /&gt;
*J13 --&amp;gt; Unknown (Power for SATA?) - (Pin 1 = ?, Pin 2 = GND, Pin 3 = GND, Pin 4 = 5v)&lt;br /&gt;
*J67 --&amp;gt; USB (Pin 1 = GND, Pin 2 = D-, Pin 3 = D+, Pin 4 = FREE, Pin 5 = VCC +5V) used for RF daughter board. [http://www.chrispix.com/googleTV.jpg IMG]&lt;br /&gt;
*XDP1 --&amp;gt; Intel XDP Debug Adapter [http://software.intel.com/sites/products/documentation/hpc/atom/application/device_driver_debugging.pdf Information on XDP Debugging] [ftp://download.intel.com/design/Pentium4/guides/31337301.pdf Page 23 Pinout]&lt;br /&gt;
[[Category:Logitech Revue]]&lt;br /&gt;
&lt;br /&gt;
== Volume Management Configuration ==&lt;br /&gt;
Similar to other android based products, external storage can be attached and the device will attempt to mount it to /sdcard as per the following vold.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
volume_sdcard {&lt;br /&gt;
    # NOTE: This path is overbroad and will capture any device on the&lt;br /&gt;
    # tatung3/tatung4 external PCI bus.  This needs to be fixed, in conjunction&lt;br /&gt;
    # with vold changes to handle logical device names (DEVPATH names are not&lt;br /&gt;
    # static, unfortunately.)&lt;br /&gt;
    media_path     /devices/pci0000:00/0000:00:01.0/0000:01:0d.1/usb2/&lt;br /&gt;
    media_type     scsi&lt;br /&gt;
    mount_point    /sdcard&lt;br /&gt;
    read_only      true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the interesting comment about the media_path as well as the read_only=true attribute.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=366</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=366"/>
		<updated>2011-01-22T00:49:51Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Update about CONFIG_MODULE_SIG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
=== 2011 January 21: CONFIG_MODULE_SIG on the Revue ===&lt;br /&gt;
I have finally identified why my attempts at loading my own modules onto the Revue have all failed (outside of recovery).  As shown in /proc/config.gz, the Revue kernel was built with CONFIG_MODULE_SIG=y which means that any module will require a signature that can be verified with the public signatures compiled into the kernel.  Anybody out there up for patching /dev/mem to remove the signature checking or perhaps add a new signature? If so, please contact us!&lt;br /&gt;
--[http://gtvhacker.com/index.php/Craigdroid Craig]&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 16: FAT file systems and DOS line endings ===&lt;br /&gt;
I have received a few emails now from people having problems with the manual update script due to line endings and FAT file systems.  If you do not understand what this means it is best to stick with using an extended (ext2) file system on your USB drive and extract everything under Linux rather than Windows.&lt;br /&gt;
--[http://gtvhacker.com/index.php/Craigdroid Craig]&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: Breaking OTA Updates ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: Avoiding an unexpected reboot ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: Logitech&#039;s Statement on Rooting ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: Do I really need a virgin? ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L (On the revue keyboard, not through the console) until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support documented here].&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip Beta1] or [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer-beta2.zip Beta2] &lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Com.google.android.systemupdater&amp;diff=365</id>
		<title>Com.google.android.systemupdater</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Com.google.android.systemupdater&amp;diff=365"/>
		<updated>2011-01-16T23:17:54Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Initial contribution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== com.google.android.systemupdater ==&lt;br /&gt;
&lt;br /&gt;
As the name implies, this is the software component of Google TV which is responsible for keeping the device up to date with the latest OTA updates from Google.  &lt;br /&gt;
&lt;br /&gt;
This service is provided by:&lt;br /&gt;
* /system/app/SystemUpdater.apk&lt;br /&gt;
* /system/app/SystemUpdater.odex&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTV_FileSystem&amp;diff=364</id>
		<title>GTV FileSystem</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTV_FileSystem&amp;diff=364"/>
		<updated>2011-01-16T23:14:47Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Revised the updates section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Google TV File System is similar to most other Android Operating Systems.&lt;br /&gt;
&lt;br /&gt;
== Still Needs ==&lt;br /&gt;
* Finishing  merging update information from the [[ Logitech_Revue_Technical]] page including proper truncation and hex editting steps.  also mentions odex.&lt;br /&gt;
* Description of how the Update Signing process works and how it works (And why we can&#039;t just copy an edited zip to a usb key and root the box).  This is a common noob question.&lt;br /&gt;
* Description of the seperation between the boot loader steps, recovery kernel, and the actual &amp;quot;device&amp;quot; file system/kernel.  This can be key for explaining how the UART1 console was used and when it was used.  There is often discussion on &amp;quot;I was looking for output during X boot stage&amp;quot; that this data could provide a definition for.&lt;br /&gt;
&lt;br /&gt;
== File System Layout ==&lt;br /&gt;
&lt;br /&gt;
The File System is created by the mounting of 13 partitions into a *nix-based file system.&lt;br /&gt;
&lt;br /&gt;
Below is a list of the paritions, their contents, and their mount points:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| Identifier?&lt;br /&gt;
| Partition Name&lt;br /&gt;
| Description&lt;br /&gt;
| Mount Point&lt;br /&gt;
|-&lt;br /&gt;
|0x00000000-0x00200000 &lt;br /&gt;
| &amp;quot;mbr&amp;quot;&lt;br /&gt;
| Mostly blank, repeats &amp;quot;01c0000 b00b dead 000f a901 0000 0000 0000 0000&amp;quot; &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x00200000-0x00a00000 &lt;br /&gt;
| &amp;quot;cefdk&amp;quot;&lt;br /&gt;
| Boot loader. It&#039;s Data - Wouldn&#039;t say it is encrypted, but no strings visible.   It may contain a console&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x00a00000-0x00c00000 &lt;br /&gt;
| &amp;quot;redboot&amp;quot;&lt;br /&gt;
| All FF&#039;s &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x00c00000-0x00e00000 &lt;br /&gt;
| &amp;quot;cefdk-config&amp;quot;&lt;br /&gt;
| Holds Box SN, repeats (like MBR) &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x01000000-0x01800000 &lt;br /&gt;
| &amp;quot;splash&amp;quot;&lt;br /&gt;
| Splash image, [ http://img413.imageshack.us/img413/3144/splashc.png visible here] .  It reports itself as a BMP even though it is a PNG &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x01800000-0x01900000 &lt;br /&gt;
| &amp;quot;fts&amp;quot;&lt;br /&gt;
| Flash Transaction Key/Value Storage. (Contents seem to be just seems to be just: &amp;quot;F*TS..e.L.......bootloader.command=boot-recovery.bootloader.recovery=recovery.--wipe_data.&amp;quot;) &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x01900000-0x02d00000 &lt;br /&gt;
| &amp;quot;recovery&amp;quot;&lt;br /&gt;
| Full image, including kernel and small ramdisk (in squashfs format), boots to recovery menu &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x02d00000-0x03200000 &lt;br /&gt;
| &amp;quot;kernel&amp;quot;&lt;br /&gt;
| The kernel image &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x03200000-0x07200000 &lt;br /&gt;
| &amp;quot;boot&amp;quot;&lt;br /&gt;
| Root partition, goes in hand with the kernel image, also in squashfs format &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x07200000-0x1f200000 &lt;br /&gt;
| &amp;quot;system&amp;quot;&lt;br /&gt;
| /system partition. Holds most of the crucial system files. It&#039;s YAFFS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x1f200000-0x3fa00000 &lt;br /&gt;
| &amp;quot;data&amp;quot;&lt;br /&gt;
| Where user data is stored. YAFFS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x3fa00000-0x3ff00000 &lt;br /&gt;
| &amp;quot;keystore&amp;quot;&lt;br /&gt;
| Don&#039;t delete this . Has Keys for communication w/ Google &amp;amp; Logitech YAFFS&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| 0x3ff00000-0x40000000 &lt;br /&gt;
| &amp;quot;bbt&amp;quot; &lt;br /&gt;
| Bad Block Table&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
Sources:&lt;br /&gt;
* MTD Parition listing came from [http://googletv.pastebin.com/233dZqZx Revue Boot Output]. ([http://my.safaribooksonline.com/book/operating-systems-and-server-administration/embedded-linux/0136130550/mtd-subsystem/ch10lev1sec3 What&#039;s an MTD partition?])&amp;lt;br/&amp;gt;&lt;br /&gt;
* Partition mount points came from /init.rc &amp;amp; init.&amp;lt;board&amp;gt;.rc&lt;br /&gt;
== Updates ==&lt;br /&gt;
Updates to the Google TV, unlike the incremental updates that most Android phones receive, come as a complete file system meant to replace the previous.  It is assumed that since Google TV devices are meant to be connected to high speed internet connections, downloading a full File System is more palatable than on a limited-bandwidth mobile device.&lt;br /&gt;
&lt;br /&gt;
The Google TV software uses the [[com.google.android.systemupdater]] activity to periodically query Google&#039;s servers looking for available updates based on the devices serial number.  Under normal circumstances, during initial setup of a device (i.e. configuring from a wiped or factory default state), the [[com.google.android.systemupdater]] activity will prevent completion of first time setup until any available updates have been downloaded and applied. This can be bypassed by removing the files /system/app/SystemUpdater.{apk,odex} from the file system.  If a previously configured device finds an available update at boot, it will display a prompt asking the user if they wish to install or defer the update.  If the system is not in use at this time, the update will be applied without user interaction.  Based on network traffic it appears that the Logitech Revue is configured to check for updates in the early AM hours.  The currently installed build number can be checked through &#039;&#039;&#039;Applications &amp;gt; Settings &amp;gt; About&#039;&#039;&#039;.  (See [[GoogleTV - Version Numbers]] for more information).  Updates are distributed as signed zip files including [[boot.img]], [[kernel.img]], [[ota.prop]], updated content, and meta-information (signing data, install scripts, etc).&lt;br /&gt;
&lt;br /&gt;
Until a new recovery image with is prepared for Google TV devices, it is unlikely that anyone will be able to prepare homebrew updates since it is computationally infeasible to produce signatures matching Google&#039;s private key.  This same logic applies when considering modification of a properly signed update.&lt;br /&gt;
&lt;br /&gt;
List of all updates for:&lt;br /&gt;
*[[LogitechRevueUpdates|Logitech Revue]]&lt;br /&gt;
&lt;br /&gt;
The Updates each include:&lt;br /&gt;
* boot.img: A file system including the root file system for the device.&amp;lt;&lt;br /&gt;
* The &amp;quot;system&amp;quot; folder: This is the guts of the Google TV and it&#039;s applications.  These files are copied into the system folder on update.&lt;br /&gt;
*  META-INF directory: Includes the manifest and other certificates shipped with the device for authentication.&lt;br /&gt;
&lt;br /&gt;
== File System Obfusication ==&lt;br /&gt;
&lt;br /&gt;
== How to access the File System contained within an image ==&lt;br /&gt;
The Zip File is a simple matter to extract, however the images within them tack some massaging  in order to explore.  While they are a typical SquashFS File System, they have some padding bytes that prevented a simple &amp;quot;Unsquashing.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*It would be great if we could create a way to use dd to truncate the image instead of using a hex editor.  You should be able ot somehow grep for the start and then dd the proper bits into a new file that could be explored correctly.*&lt;br /&gt;
&lt;br /&gt;
Some data on the process is available here:&lt;br /&gt;
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images&lt;br /&gt;
&lt;br /&gt;
== GTV Recovery Mode vs GTV(System) Mode ==&lt;br /&gt;
&lt;br /&gt;
== GTV Boot Loader == &lt;br /&gt;
The Boot Loader is included on the File System, currently in the X directory.  The Boot Loader is based off of the Y Loader (More information can be found at Z).&lt;br /&gt;
For the Sony BlueRay player, the Boot Loader is ABC.&lt;br /&gt;
&lt;br /&gt;
== Files of interest within the File System ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Contribute]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=363</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=363"/>
		<updated>2011-01-16T19:42:17Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added update about FAT and line endings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
=== 2011 January 16: FAT file systems and DOS line endings ===&lt;br /&gt;
I have received a few emails now from people having problems with the manual update script due to line endings and FAT file systems.  If you do not understand what this means it is best to stick with using an extended (ext2) file system on your USB drive and extract everything under Linux rather than Windows.&lt;br /&gt;
--[http://gtvhacker.com/index.php/Craigdroid Craig]&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: Breaking OTA Updates ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: Avoiding an unexpected reboot ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: Logitech&#039;s Statement on Rooting ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: Do I really need a virgin? ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L (On the revue keyboard, not through the console) until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support documented here].&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip Beta1] or [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer-beta2.zip Beta2] &lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=359</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=359"/>
		<updated>2011-01-15T23:30:06Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Related Files: */  added NDK beta2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support documented here].&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip Beta1] or [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer-beta2.zip Beta2] &lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=357</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=357"/>
		<updated>2011-01-15T19:25:28Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* Building the code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is [http://gtvhacker.com/index.php/GTv-OS_(AndroidTV)#SDK.2FToolchain_Support documented here].&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=356</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=356"/>
		<updated>2011-01-15T19:23:02Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Changed a hyperlink&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: ===&lt;br /&gt;
Logitech recently began deploying a [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is documented in the Logitech Revue technical section.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=355</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=355"/>
		<updated>2011-01-15T16:24:33Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added note about breaking system updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 15: ===&lt;br /&gt;
Logitech [http://forums.logitech.com/t5/Revue-Product-Updates-Release/Revue-amp-Google-TV-Update-January-11-2011/td-p/557792 recently began deploying a security update] which will incidentally remove root access if it is allowed to install on a rooted device.  (This was not the purpose of the update but it is an adverse effect for our community.) The GTVHacker dev team&#039;s initial attempts to break OTA updates by moving the otacerts.zip was not fully successful.  In order to remove the auto-updating feature, [http://gtvhacker.com/index.php/Craigdroid Craig] of the GTVHacker team has tested removal of /system/app/SystemUpdater.* with preliminary success.  If this method works for others in the community, GTVHacker will consider the release of an updated manual update script with this and possibly other changes.&lt;br /&gt;
&lt;br /&gt;
On a side note for non-rooted users, holding off on applying the update may expose your system to a vulnerability which could eventually be actively exploited to provide root access without a soldering iron.  (This vulnerability could potentially be used maliciously so please consider this in deciding whether to apply the update.)  Any (unrooted) box that is connected to the Internet over night will presumably be updated without user interaction.&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is documented in the Logitech Revue technical section.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=354</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=354"/>
		<updated>2011-01-14T23:47:31Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added an update note about pressing ALT+L&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 14: ===&lt;br /&gt;
NOTICE: If you have not properly completed step 6 (including pressing ALT+L) in the hardware portion before proceeding to the software section, you are risking bricking the Revue.  This step is mandatory because it gets you into the recovery menu and prevents the system from automatically rebooting in the middle of an update.  The video output should show the [http://simplygoogletv.com/wp-content/uploads/2010/12/202188476.jpg recovery menu] before proceeding to the software portion. (Thanks [http://www.twitter.com/stericson @stericson] for the picture.)&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is documented in the Logitech Revue technical section.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=353</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=353"/>
		<updated>2011-01-14T23:37:20Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added notice about recovery auto-reboots and bricking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
=== 2011 January 12: ===&lt;br /&gt;
[http://forums.logitech.com/t5/Revue/Support-Policy-Rooting-Revue/td-p/558604 Logitech Issues a &amp;quot;Statement&amp;quot;] regarding rooting the Revue&lt;br /&gt;
&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTICE: If you have not properly completed step 6 you may risk having the Revue automatically reboot while you are flashing new firmware resulting in a bricked Revue. The video output should show the recovery menu before proceeding to the software portion.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is documented in the Logitech Revue technical section.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* [[Zenofex]]&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=352</id>
		<title>Craigdroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=352"/>
		<updated>2011-01-14T23:32:05Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Member Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*XDA/GTVHacker Name: Craigdroid&lt;br /&gt;
*Real Name: Craig Young&lt;br /&gt;
*Email: craig @ gtvhacker.com&lt;br /&gt;
*Twitter: [http://www.twitter.com/craigtweets craigtweets]&lt;br /&gt;
*AKA: Kernel Jay Omega&lt;br /&gt;
*Area of expertise: Build systems, Linux kernel development, network analysis, microelectronics, security research&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=265</id>
		<title>Logitech Revue UART root</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Logitech_Revue_UART_root&amp;diff=265"/>
		<updated>2011-01-07T19:14:16Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: /* About Us */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Revue-advert.gif|250px|right|thumb]]&lt;br /&gt;
{{Revue toc Inline}}&lt;br /&gt;
== Updates ==&lt;br /&gt;
=== 2011 January 5: ===&lt;br /&gt;
You &#039;&#039;&#039;ABSOLUTELY&#039;&#039;&#039; need a &amp;quot;virgin&amp;quot; Logitech Revue with &#039;&#039;NO&#039;&#039; updates in order to do this hack!!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Any previous device updates will disable the UART1 pins necessary for this hack!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Demonstration video.==&lt;br /&gt;
Shows Filesystem access, Apps and the Market, as well as previously blocked websites.&lt;br /&gt;
Check it out http://www.youtube.com/user/gtvhacker&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GTVHACKER&#039;S Guide to installing applications and rooting your Logitech Revue ==&lt;br /&gt;
&lt;br /&gt;
This is being brought to you right before CES, we all worked hard and here it is. &lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
&lt;br /&gt;
ADBD Running for adb access.&lt;br /&gt;
Custom boot logo.&lt;br /&gt;
Flash Plugin Update to allow previously blocked content providers.&lt;br /&gt;
&lt;br /&gt;
Experimental method to block automatic updates  (We would appreciate feedback on this as we we&#039;ve been unable to confirm its success so far.)&lt;br /&gt;
&lt;br /&gt;
===About the Hack===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The reason this is possible is due to the &amp;quot;out of factory&amp;quot; state of the Logitech Revue boxes not disabling the UART port on the board and allowing access to a root shell in recovery mode. After discovering this we were able to reverse the update files and manually upgrade the Revue to the most recent update. The attached files are our output of all the effort put forward by our team. Also as a notice to anyone performing the update, we are not responsible for any harm that may come of your box as an outcome of running our scripts. We will attempt to help you with any issues you may experience and have tried to make the process as safe as possible. Also if you have any suggestions or ideas on how we can make this process better please feel free to drop by our IRC channel and tell us.&lt;br /&gt;
&lt;br /&gt;
===About Manual Update===&lt;br /&gt;
&lt;br /&gt;
The manual-update.sh script is our attempt at duplicating the process done by the GTV scripts that update the box in recovery mode. There are also a few miscellaneous tweaks done to assure applications load correctly, backups are made, and that the box doesn&#039;t auto-update. Some portions of the script do things such as flash parts of the NAND so make sure you do not short circuit your box or accidentally remove power during the manual-update process.&lt;br /&gt;
&lt;br /&gt;
===Required Tools===&lt;br /&gt;
&lt;br /&gt;
Soldering Iron&lt;br /&gt;
&lt;br /&gt;
USB-&amp;gt;TTL or similar board/setup (An Arduino in tristate mode works great)&lt;br /&gt;
&lt;br /&gt;
4 wires to attach board to TTL board&lt;br /&gt;
&lt;br /&gt;
Terminal program (Minicom for Linux or Putty for Windows)&lt;br /&gt;
A USB Drive (At least 1gb, 2+gb Recommended)&lt;br /&gt;
&lt;br /&gt;
===Hardware Portion===&lt;br /&gt;
&lt;br /&gt;
In order to complete the root you will need an un-updated box, it seems as if the first or second update to the box closed the serial access hole.  If you have a &amp;quot;virgin&amp;quot; box then you are ready to proceed. &lt;br /&gt;
&lt;br /&gt;
1.) Open your box, there are 4 screws (1 under each of the soft legs on the bottom of the box), the rest of the box un-clips very easily. A better explanation is available at http://www.ifixit.com/Teardown/Logitech-Revue-Teardown/3788/1&lt;br /&gt;
&lt;br /&gt;
2.) After opening your box you will need to remove the led bar and look at the top front of the board. Locate the pins labeled UART1. These are the pins you will be sodering to.&lt;br /&gt;
&lt;br /&gt;
3.) Solder 4 wires to your board. The appropriate pins can be view here: http://gtvhacker.com/index.php/File:XJHay.jpg . You MAY only need to solder to TX, RX, and GND.&lt;br /&gt;
&lt;br /&gt;
4.) Attach wires to appropriate pins on your USB-&amp;gt;TTL device&lt;br /&gt;
&lt;br /&gt;
5.) Connect to the USB-&amp;gt;TTL device on your computer using a program like Minicom or Putty. The appropriate settings are speed is 9600 baud with 8n1, make sure flow control is set to none.&lt;br /&gt;
&lt;br /&gt;
6.) Reboot Revue into recovery mode by holding the pair button on the back of the board until the box shuts down and comes back up. Then press Alt+L until &amp;quot;FORMATING DATA:&amp;quot; shows and stays, a menu should appear shortly after system is done clearing partitions. (More info: [[Logitech_Revue_Technical]])&lt;br /&gt;
&lt;br /&gt;
7.) If setup is correct so far you should be seeing logcat output through your terminal program (Putty/Minicom). Shortly after you will be presented with a # sign which is your console.&lt;br /&gt;
&lt;br /&gt;
8.) Proceed to software portion.&lt;br /&gt;
&lt;br /&gt;
===Software Portion===&lt;br /&gt;
&lt;br /&gt;
1.) Place all files in manual update on USB (preferably to ext3) device keeping all the files inside of the &amp;quot;updatec99&amp;quot; folder for easiest installation.&lt;br /&gt;
&lt;br /&gt;
2.) Insert the USB and run the following command for an ext3 USB device &amp;quot;mount -rw -t ext3 /dev/sdb1 /sdcard&amp;quot; substitute ext3 for vfat for a fat32 device (Also remove quotes)&lt;br /&gt;
&lt;br /&gt;
3.) In minicom/putty browse to the /sdcard directory with &amp;quot;cd /sdcard/updatec99&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
4.) Execute the update with the following command &amp;quot;sh manual-update.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5.) If the process ends prompting &amp;quot;Complete&amp;quot; you are finished and may restart. You will then have adbd running on your Revue and can connect using &amp;quot;./adb connect LogitechRevue&amp;quot;. If the process does not prompt you with &amp;quot;Complete&amp;quot; but some other error you will need to make sure you do not reboot your Revue or it may be bricked. &lt;br /&gt;
&lt;br /&gt;
You are now complete and free to install applications on your box remotely through adb.&lt;br /&gt;
&lt;br /&gt;
Note: when booting in normal mode, &#039;&#039;you will not see any console output&#039;&#039;. If you want a serial console again, go into recovery.&lt;br /&gt;
&lt;br /&gt;
===Building the code===&lt;br /&gt;
&lt;br /&gt;
The GTVHacker team has a [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip script] to simplify the download/configuration/installation of unofficial NDK/toolchain support which is documented in the Logitech Revue technical section.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
If you experience &#039;&#039;&#039;any&#039;&#039;&#039; issues, please check wiki as we will be updating it with the most common problems then visit our IRC if the wiki does not assist you. &lt;br /&gt;
&lt;br /&gt;
===About Us===&lt;br /&gt;
This package is brought to you by the GTVHacker team over at irc.freenode.net #gtvhacker. &lt;br /&gt;
&lt;br /&gt;
GTVHacker Team Members:&lt;br /&gt;
&lt;br /&gt;
* Zenofex&lt;br /&gt;
* CJ_000&lt;br /&gt;
* [[Craigdroid]]&lt;br /&gt;
* Tdweng&lt;br /&gt;
* DcPlaya&lt;br /&gt;
&lt;br /&gt;
Thanks to everyone in the community who made this all possible. &lt;br /&gt;
The GTVHacker Team&lt;br /&gt;
&lt;br /&gt;
== Related Files: ==&lt;br /&gt;
Google TV O/S modifications to achieve root are available at: http://www.multiupload.com/REVEQS6HII or http://bit.ly/gtvuc99&lt;br /&gt;
&lt;br /&gt;
Script to simplify tool chain and sdk building : http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip&lt;br /&gt;
&lt;br /&gt;
[[Category:Logitech Revue]]&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=262</id>
		<title>GTv-OS (AndroidTV)</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=262"/>
		<updated>2011-01-07T16:02:18Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added note about gawk versus mawk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Google TV operating system is based on Android 2.1 on a [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Linux 2.6.23 based kernel]. The system enables security such as an NX (Non eXecutable) Stack and a [http://en.wikipedia.org/wiki/Chroot chrooted] chrome. Also making things difficult is the Operating Systems ability to push automatic updates without user intervention.&lt;br /&gt;
&lt;br /&gt;
The Operating System currently provides the following &amp;quot;stock&amp;quot; applications&lt;br /&gt;
 &lt;br /&gt;
*CNBC Real-Time&lt;br /&gt;
*Gallery&lt;br /&gt;
*Google Chrome&lt;br /&gt;
*Logitech Help Assistant (Logitech Only)&lt;br /&gt;
*Logitech Media Player (Logitech Only)&lt;br /&gt;
*Logitech Vid HD (Logitech Only)&lt;br /&gt;
*Napster&lt;br /&gt;
*NBA Game Time&lt;br /&gt;
*Netflix&lt;br /&gt;
*Pandora&lt;br /&gt;
*Settings&lt;br /&gt;
*TV&lt;br /&gt;
*Twitter&lt;br /&gt;
&lt;br /&gt;
Gpl&#039;d portions of the GoogleTV source can be found [http://code.google.com/p/googletv-mirrored-source/ here]&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*gawk -- Please note that some Ubuntu installs have mawk rather than the GNU awk (gawk); mawk is not compatible with the awk scripts in the Intel SDK&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Support For USB Serial Converters ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This configuration has been verified via the proc.gz file of a Logitech Revue at its latest firmware revision (using the BreakVue hack).  Here is the [http://pastie.org/1437422 complete kernel configuration].&lt;br /&gt;
&lt;br /&gt;
Please note however that by default init does not appear to run a shell on this console.  This is the only adapter which we have identified to have built-in driver support.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=261</id>
		<title>GTv-OS (AndroidTV)</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=261"/>
		<updated>2011-01-07T15:58:28Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Added table of contents and some updates about kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Revue toc Inline}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Google TV operating system is based on Android 2.1 on a [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Linux 2.6.23 based kernel]. The system enables security such as an NX (Non eXecutable) Stack and a [http://en.wikipedia.org/wiki/Chroot chrooted] chrome. Also making things difficult is the Operating Systems ability to push automatic updates without user intervention.&lt;br /&gt;
&lt;br /&gt;
The Operating System currently provides the following &amp;quot;stock&amp;quot; applications&lt;br /&gt;
 &lt;br /&gt;
*CNBC Real-Time&lt;br /&gt;
*Gallery&lt;br /&gt;
*Google Chrome&lt;br /&gt;
*Logitech Help Assistant (Logitech Only)&lt;br /&gt;
*Logitech Media Player (Logitech Only)&lt;br /&gt;
*Logitech Vid HD (Logitech Only)&lt;br /&gt;
*Napster&lt;br /&gt;
*NBA Game Time&lt;br /&gt;
*Netflix&lt;br /&gt;
*Pandora&lt;br /&gt;
*Settings&lt;br /&gt;
*TV&lt;br /&gt;
*Twitter&lt;br /&gt;
&lt;br /&gt;
Gpl&#039;d portions of the GoogleTV source can be found [http://code.google.com/p/googletv-mirrored-source/ here]&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*awk&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Support For USB Serial Converters ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This configuration has been verified via the proc.gz file of a Logitech Revue at its latest firmware revision (using the BreakVue hack).  Here is the [http://pastie.org/1437422 complete kernel configuration].&lt;br /&gt;
&lt;br /&gt;
Please note however that by default init does not appear to run a shell on this console.  This is the only adapter which we have identified to have built-in driver support.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=260</id>
		<title>GTv-OS (AndroidTV)</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=GTv-OS_(AndroidTV)&amp;diff=260"/>
		<updated>2011-01-07T15:20:42Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Google TV operating system is based on Android 2.1. The system enables security such as an NX (Non eXecutable) Stack and a [http://en.wikipedia.org/wiki/Chroot chrooted] chrome. Also making things difficult is the Operating Systems ability to push automatic updates without user intervention.&lt;br /&gt;
&lt;br /&gt;
The Operating System currently provides the following &amp;quot;stock&amp;quot; applications&lt;br /&gt;
 &lt;br /&gt;
*CNBC Real-Time&lt;br /&gt;
*Gallery&lt;br /&gt;
*Google Chrome&lt;br /&gt;
*Logitech Help Assistant (Logitech Only)&lt;br /&gt;
*Logitech Media Player (Logitech Only)&lt;br /&gt;
*Logitech Vid HD (Logitech Only)&lt;br /&gt;
*Napster&lt;br /&gt;
*NBA Game Time&lt;br /&gt;
*Netflix&lt;br /&gt;
*Pandora&lt;br /&gt;
*Settings&lt;br /&gt;
*TV&lt;br /&gt;
*Twitter&lt;br /&gt;
&lt;br /&gt;
Gpl&#039;d portions of the GoogleTV source can be found [http://code.google.com/p/googletv-mirrored-source/ here]&lt;br /&gt;
&lt;br /&gt;
== SDK/Toolchain Support ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/intel-sdk/intel-sdk-toolchain.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 Intel SDK Toolchain] is available as part of Google&#039;s GPL release for the Google TV.  The toolchain is required to compile code to run on the Linux operating system of the Logitech Revue. (Sony devices as well as other future devices are most likely also compatible with this toolchain but since we don&#039;t have these products to root we don&#039;t know yet.)&lt;br /&gt;
&lt;br /&gt;
We have not yet documented a complete list of required dependencies but here are a few packages which might come in handy:&lt;br /&gt;
*texinfo (we encountered some issues with certain supposedly supported versions of makeinfo but updating texinfo resolved this on most systems)&lt;br /&gt;
*flex&lt;br /&gt;
*bison&lt;br /&gt;
*awk&lt;br /&gt;
*patch&lt;br /&gt;
*gcc et al&lt;br /&gt;
*build-essential (Ubuntu)&lt;br /&gt;
&lt;br /&gt;
To simplify the toolchain setup, craigdroid created [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip this script] which simplifies the process of configuring a build system.  After preparing the toolchain you will want to run the following commands (which are demo&#039;d in the script) to establish your environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CROSS_COMPILE=i686-linux-cm-&lt;br /&gt;
export LD_LIBRARY_PATH=~/googletv/sdk/i686-linux-elf/lib&lt;br /&gt;
export PATH=$PATH:~/googletv/sdk/i686-linux-elf/bin/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NDK Support ==&lt;br /&gt;
&lt;br /&gt;
Although at present Google has not released a proper NDK for the platform, the gtvhacker team have combined the Intel SDK Toolchain from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] with the work of the [http://www.android-x86.org/ Android x86] project to provide unofficial support in the interim.&lt;br /&gt;
&lt;br /&gt;
The entire process of setting up unofficial NDK support has been simplified into an [http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip easy to use script] by craigdroid.  The script has been tested on a few of our systems running CentOS 5.4 32-bit, as well as 32-bit and 64-bit editions of Ubuntu.  &lt;br /&gt;
&lt;br /&gt;
Since this is building the Intel toolchain automatically all of the caveats regarding the Intel SDK Toolchain apply here as well.&lt;br /&gt;
&lt;br /&gt;
To automatically download, build and configure NDK support first save yourself some time and check the dependencies list in the SDK/Toolchain Support section and then from any users shell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://dl.dropbox.com/u/1886948/gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; unzip gtvhacker-NDK-installer.zip &amp;amp;&amp;amp; ./gtvhacker-NDK-installer.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the NDK to ~/googletv/ndk/ for the current user.  Some guidance on how to use the NDK is provided upon completion of successful script execution.&lt;br /&gt;
&lt;br /&gt;
== Support For USB Serial Converters ==&lt;br /&gt;
&lt;br /&gt;
The [http://googletv-mirrored-source.googlecode.com/hg/linux/linux-2.6.23-gtv.tar.bz2?r=27705a482273e3a34e8bcdbfb4fdad9afcd65e93 published kernel] from the [http://code.google.com/p/googletv-mirrored-source/ Google TV Mirrored Source site] is configured to have built-in support FTDI single interface USB serial adapters as a serial console.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# USB Serial Converter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=y&lt;br /&gt;
CONFIG_USB_SERIAL_CONSOLE=y&lt;br /&gt;
CONFIG_USB_SERIAL_GENERIC=y&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This configuration has been verified via the proc.gz file of a Logitech Revue at its latest firmware revision (using the BreakVue hack).  Here is the [http://pastie.org/1437422 complete kernel configuration].&lt;br /&gt;
&lt;br /&gt;
Please note however that by default init does not appear to run a shell on this console.  This is the only adapter which we have identified to have built-in driver support.&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=259</id>
		<title>Craigdroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=259"/>
		<updated>2011-01-07T15:09:18Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Member Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*XDA/GTVHacker Name: Craigdroid&lt;br /&gt;
*Real Name: Craig Young&lt;br /&gt;
*Email: craig@gtvhacker.com (Coming soon)&lt;br /&gt;
*Twitter: [http://www.twitter.com/craigtweets craigtweets]&lt;br /&gt;
*AKA: Kernel Jay Omega&lt;br /&gt;
*Area of expertise: Build systems, Linux kernel development, network analysis, microelectronics&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=258</id>
		<title>Craigdroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Craigdroid&amp;diff=258"/>
		<updated>2011-01-07T15:08:37Z</updated>

		<summary type="html">&lt;p&gt;KernelJayOmega: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Member Profile&amp;#039;&amp;#039;&amp;#039;  *XDA/GTVHacker Name: Craigdroid *Real Name: Craig Young *Email: craig@gtvhacker.com (Coming soon) *Twitter: [http://www.twitter.com/craigtweets craigtweets]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Member Profile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*XDA/GTVHacker Name: Craigdroid&lt;br /&gt;
*Real Name: Craig Young&lt;br /&gt;
*Email: craig@gtvhacker.com (Coming soon)&lt;br /&gt;
*Twitter: [http://www.twitter.com/craigtweets craigtweets]&lt;br /&gt;
*AKA: Kernel Jay Omega&lt;br /&gt;
*Area of expertise: Build systems, Linux kernel development, network analysis&lt;/div&gt;</summary>
		<author><name>KernelJayOmega</name></author>
	</entry>
</feed>