SamyGO for DUMMIES


From SamyGO
Jump to: navigation, search

This wiki entry is meant to help the beginner TV hacker to get a quick and up-to-date introduction of SamyGO.

As SamyGO is maintained by happy members of the open community, we have a slight problem with a constant shower of support questions. The answers given to those questions range from none, to rude, to extremely technical. This not something we can control, but you can optimize your response by reading and searching thoroughly before posting to our forums. Most info can be found through google with samygo as target site.

The main problem (!) is that fortunately some of our older members are highly skilled in embedded systems and programming. So many things that is obvious and trivial for them, can be very perplexing for a beginner ("newbie"). In addition we understand that the many Wiki pages and huge number of device variations is often overwhelming for most newbies. So you might receive an answer that is way above your head, and perhaps make you feel stupid. But no question is stupid. So to help minimize this, we created this entry.

We strongly suggest that you read this and related Wiki entries before diving into the forums. Things that have been well established end up on our wiki pages, while work in progress are found in the forums. So if you wanna try to get banned and hated, you can always ask for "estimated time of arrival" on some feature on an obscure TV set. If you wanna get loved, you can join us and help others with answering questions, running experiments, compiling and help finding/providing information.


To Page Editors: READ this: Talk:SamyGO_for_DUMMIES

What is SamyGO?

SamyGO started in the summer of 2009 as a thread at avsforum, under the title "Samsung LNXXA650 InfoLink hacking". This thread drew a lot of attention and slowly strayed away from its original topic towards rooting TV's and firmware hacking. It also got quite long, so Erdem U. Altinyurt and a few others decided to start a sourceforge project, specific for enhancement of the firmware of Samsung TV-sets, specifically aimed at models issued from 2008 onwards. Many people stayed on and came along from avsforum to sourceforge.

So that is what SamyGO is: A sourceforge project, aimed at enhancing firmware and functionality, specifically for Samsung TV models from 2008 onwards.

The activities of the SamyGO project comprise, but are not limited to:

  1. Gaining access to all available Samsung TV models from 2008 onwards (rooting).
  2. Active development of software extensions to enhance Samsung TV accessibility.
  3. Active development of applications to run on Samsung TV hardware.
  4. Giving support to project members who want to enhance their TV's functionality.

SamyGO is not a program that you can "just run" on your TV. Enhancing your hardware is not THAT simple. It requires some beginner and intermediate computer skills. The community will support you and is committed to helping you make this work for you. Remember however, that you need to do your part too. Read and try to understand. If you don't understand, ask in the appropriate forum. Proceed only once you understand what it is you are trying to achieve.


I want more functionality from my TV. What do I need?

In order to run SamyGO applications you need the following:

  1. A television that is supported by SamyGo Software. See the compatibility list. If you cannot find your model listed it does not necessarily mean that your model is not supported. Ask in the appropriate support forum. Developers are from different countries around the world. They don't have access to every television model on the market to personally test their apps. However all these televisions run on Linux which makes this project possible.
  2. Find out which firmware version your TV is equipped with. Newer firmwares are not (yet) supported by SamyGO.
  3. Checkout the access route for your TV. This is in the supported models list. This is the way you access your television to run SamyGO apps. If you're smart you'll also get an ex-link cable and take the necessary precautions (active debug and turn off watchdog in the service menu) to be ready in case of a serious user mistake.
  4. A USB drive formatted with FAT or FAT32. A rule of thumb is ALWAYS extract the files you are going to use directly to the USB drive. Linux executable have some file attributes that are not preserved if you copy them on NTFS (a Windows only) file system.
  5. Get access! Follow the tutorials in the Wiki pages for that.
  6. Install the software you like/need.
  7. Enjoy your improved equipment!!

Each of these steps will be explained in the wiki.

What is my TV model code and number ?

Ue40b7020 model.png

Model code and number are almost the same thing. The model number is a short form of the model code. This is a sample model code with the model number written bold.

UE40B7020WWXXC

You can read your model code from the sticker at the side or rear of your TV. Once you found the model, you can check whether it is supported by SamyGO here for A- and B-series and here for C-series models.

What is my firmware model and version ?

You can learn your firmware number by entering the Service Menu. Read the detailed wiki page before proceeding with GREAT caution.

Do not change anything in the service menu until you understand what each setting does. The service menu is like entering the BIOS in a computer. It's where changes can be made to the "brain" that controls television functions. Making the wrong choice in a setting can result in a completely unexpected result and brick your television. To navigate the Service menu ONLY use the up and down button. Use enter to select and the previous button to return to the previous screen. DO NOT USE the RIGHT and LEFT buttons of your remote while navigating the service menu unless you know what you are trying to do. Using the left and right navigation butttons may change some variables that may easily brick your TV. If you do make a change to a menu, do not panic. Simply navigate in the opposite direction until the original variable is visible. The option that is visible is the selected option.

To identify your firmware version you only need to enter the main screen of the service menu. You do not need to navigate to other Service menu pages. Identification of your firmware version is important to determine whether your television firmware is supported by SamyGO here for A- and B-series and here for C-series models. You exit the Service menu by turning off the television.


Is my TV a CI or a CI+ device?

Samsung has implemented increasing encryption with each series of televisions it releases. Earlier models had no firmware encryption, subsequent firmware releases have XOR cipher encryption and the latest firmware releases utilize both AES and XOR encryption. This encryption limits how much editing of a firmware can be done despite the fact that the software Samsung uses is opensource and publicly available per GNU and GPL licensing terms. Knowing the type of firmware utilized is important because it determines what kind of access you can obtain in your television's operating system. There are two types of firmwares based on access, CI and CI+ devices.

A television from the C or ES series is always a CI+ device. The B series models have two possibilities: If there is a P in the last part of the model code, it is most likely a CI+ device. The firmware version installed on these TV's has the letters "CIP" in the firmware version code, otherwise it is probably a CI device. An "A" series device do not have encryption.

Also, do not be fooled by your TV's CAM interface. A TV can be CI+, but the CI+ CAM interface is backward compatible with CI CAM mode, so your TV may report that it is using a CI CAM, although the TV hardware (and firmware) is CI+.

Some examples:

LE40B652T4WXXU device uses T-CHL7DEUC firmware, which indicates it is a CI device.
LE40B652T2PXXU device uses T-CHLCIPDEUC firmware, which indicates it is a CI+ device.
UE40B7020WWXXC device uses T-CHU7DEUC firmware, which indicates it is a CI device.
UE40ES5700SXXH device uses T-MST10PDEUC firmware, which indicates it is a CI+ device.
TODO: Add some UN,UE and PS model "codes" here.

You can also find your firmware name and version number in the Service Menu. This is important to know because there are different software solutions depending on whether your TV is a CI or a CI+ device. Software developers frequently develop two versions of software to support these two types of firmwares. Knowing what kind of TV you have will allow you to select the appropriate SamyGO app.


What are Restricted Firmwares?

Restricted Firmwares are original Samsung firmwares which have been released after 01 February 2010. These firmwares have been restricted in many ways by Samsung and have limited how much access one can gain inside their television's operating system. Here in the SamyGO community, we believe this is a deliberate effort to hinder and disable our software development efforts. It is probably also required by the copyright holders of certain parts of the encryption/decryption software for CI+.

Functions that have been removed by the release of these Restricted Firmwares are:

  • ExLink Access, that allows us Serial connection to TV's bash line.
  • Removal of Top Debug Menu that let us allow to configure every property of TV.
  • Removal of u-boot code for that we use to run External firmwares and un-bricking TV.
  • Removal of program copy and execution ability from USB disks.
  • Removal of Alternative firmware firmware section to avoid reverting older firmwares.
  • Additional security enhancements to avoid to flash hacked firmwares.

TODO: Anything that I forgot?

If you are interested in applying any of the SamyGO software enhancements to your television's firmware, it's better not to have received any of these firmwares. However, do not despair if you have had your television crippled by these "updates". The ingenuity and hard work of the developers of the SamyGO community have found several work-arounds that will allow you to restore your television to an older firmware that allows SamyGO applications to run. They have also simplified and automated part of this process as much as it is legally possible.

Unfortunately, if you have a restricted firmware, you can't just plug and play. There are several steps that you need to take to gain back "ownership" of your television. Several steps are involved including, copying programs to your TV memory by using an open vulnerabilities such as the "Children Menu" hack or the Nurisam Trojan. This will allow you to move applications to TV and enjoy additional features currently no possible...


How can I get access to my TV?

Samsung televisions have an embedded operating system based on Linux. When you turn your television on you are essentially operating a computer as a user. You are given limited access to core parts of the operating system by design. If you want more control of what your television you must give it commands to run additional pieces of software with the functionality you desire. To do this you need to obtain access to the television's operating system as a superuser or with root access. To control any Linux-based system, you need root access to it (Administrator privileges in Windows). Depending on the type of TV and version of the firmware, this can be achieved in a number of ways. In the compatibility tables you can find the methods that have been used successfully for each type (The list is not complete yet, work in progress). Depending on the firmware and television model you may be able to do this with a simple software installation from a USB drive or you may need to install modified firmware or may need to revert to an older version of firmware that has not been restricted by Samsung. You can gain access to your televisions operating in several ways.Consult the compatibility table at the bottom of this page to determine which method you can use:


  1. USB: Loading software from the USB port by flash drive. Restricted firmware has disallowed access to the built in functionality. This is also how patched firmware is flashed. This is also how content library SamyGO apps can be executed. A variation of this method ia hotel@USB which is required for newer television models like the C series.


  1. Telnet: Once you have enabled telnet either by patching the firmware or running the telnet enabler app, televisions with ethernet connectivity can be controlled by telnet (or SSH) access via your computer network. Non Ethernet models may also become network accessible by using a usb wi-fi dongle, another SamyGO application. These are advanced functions and should be executed once you understand these functions better.


  1. Ex-link Port An Ex-link port or service port which allows direct connection from your computer to the television. Many TV models (A and B series) are accessible through a serial port, called Ex-link. This is a serial port, with a 3.5mm stereo jack as a connector port that is called "connector for service only" in your television manual. To use this port, you will need a serial cable with the right layout, which is given for non-CI+ devices here. On the same page you will find how to enter the service menu of your TV, at least for a number of older types of televisions. Newer models (like C series televisions) do not have this access mode. It would be wise to make or buy such a cable prior to changing your firmware in the event of a catastrophic event that requires this connection to recover your television functionality (unbrick your TV).


Understanding SamyGO app vs. SamyGO firmware modification

Many developers contribute to the SamyGO community and the goal of each application they develop is to enhance the functionality of your television. Applications can be typically be used in two ways:

  1. Standalone app aka as a SamyGO app or extension
  2. Incorporation of the application function into the TV firmware

The first method does not require any firmware modifications unless you have restricted firmware. In that case you must first unrestrict your television's firmware before running a SamyGO app. You gain the functionality you want by running the app. For example if you like big yellow subtitles on your TV you can activate the app then watch your movie with big yellow subtitles.

The second method involves advanced scripting modifications to your television firmware. Ingenious developers have developed some scripts that makes this process fairly simple and easy. Other scripts require careful editing of files inside your computer and should be performed with caution. Bricking your TV is a possibility with the method. It would be wise to have an exlink cable so you can unbrick your television.

So what's the difference between the two methods? You must activate the app each time your turn on your TV if you use a SamyGO app. A firmware modification is permanent and automatic, each time you turn on your TV. It may be harder to do but in the long run it saves you a lot of time.


Firmware Modifications

In this section we will discuss modifications that cause permanent changes in your television. You should disable automatic updates on the software upgrade menu of your television in order to avoid accepting an official Samsung update that will disable your SamyGO apps.

Reverting back to unrestricted firmware

Loading third party software has been limited with the latest versions of restricted firmware. If you are in the lucky group of television owners with unrestricted firmware then you can skip this section, you are in luck and can stop worrying about firmware restrictions! If your are in the unlucky group of restricted firmware (usually any firmware after dated updated in 2010) then you must revert back to an unrestricted firmware first prior running any SamyGO applications on your TV. Developers at SamyGO have made this a fairly simple process by using a script that automates this process. A list of supported television models and detailed instructions can be found here. Please review all this in detail prior to proceeding with any modifications or running any scripts.

Patching Firmware with the SamyGO Firmware Patcher

B-series models (Non CI+) with older firmwares (pre february 2010) have firmware update files which are only trivially encrypted by Samsung and can be modified to allow additional functionality. The SamyGO firmware patch script is based on python a computer programming language and changes some of the startup scripts inside of the firmware. This allows additional functionality in the firmware. Such functionality includes

  1. Applies the AR v1 Fix. This properly resizes the picture proportions n Samsung B series TVs
  2. Allows you to increase the size of srt subtitles shown in movie playback and
  3. Subtitle color can change as well. SamyGO favorite is yellow, (ARGB code for yellow is: 0xFFFFFF00, for original color: 0xFFF0F0F0)
  4. Telnet, can be enabled permanently if you create an advanced startup script.

Once the SamyGO firmware patch script completes you will have a new modified firmware with the above modifications enabled. When you flash this modified software to your television, you will enjoy the above enhancements but will also be able to run all the SamyGO apps which will enhance your television's functionality. This modified firmware makes it much easier to gain root access through telnet.

Flashing your modified firmware

This is outlined in your service manual.

  1. Make sure your firmware is copied to the root of your FAT32 formatted USB drive.
  2. You can reach the software upgrade menu from your remote control: Menu -> Help -> Software Upgrade -> USB
  3. You get a pause for 30 secs while your TV searches for a valid firmware.
  4. Install your modified firmware.
  5. Remember altering your firmware and trying to install it carried risk of permanent damage. Please read the wiki and become acquainted with what you are trying to do.

If you are more adventurous and feel confident enough you can also update the firmware by direct access by using the exlink cable. Read about this: Enable Serial Console on non CI+ Devices.


Using a SamyGO app

If you have flashed the modified firmware or if you have an unrestricted firmware you can start playing and enjoying the SamyGO applications. There are wiki pages with lists of apps can be found (for series B and C). This pages typically has a brief description of the app functionality, a link to download the file as well as a link to the forum where the develop seeks, feedback, can help with troubleshooting etc. Newer television models have

Depends of you TV model you can run applications using:

A good app to start with is the SamyGO Extensions Pack. Read about it here.


Using Internet@TV

Internet@TV (also Samsung Apps) is the name Samsung has given to their latest television appliances which converge the internet and televisions in once device. They are a collection of internet apps which due to their graphical user interface are called widgets. Samsung, in its short-sightedness decided that some of the newer widgets would not be made available to older television model owners. However these older televisions (B-series) can actually run couple of the new widgets included in the C-series. You can install your own widgets by setting up a webserver on your home computer and directing your television to obtain the updated from your computer.

Nice and easy to use step by step instruction to install custom widgets to TV.

Widgets can be downloaded from: here (all work for B) & here (from C). Also check unofficial widgets lists for: B-series, C-series & D-series.


Using Hotel@USB

Hotel mode is a mode for locking down menu access and input selection on the display. It is intended for use in hotels, health clubs, and other environments to restrict guests from changing the displays settings. However entering this mode has been used as a way to work around some of the restrictions that newer firmware releases has caused. This true about the C series televisions. You should refer to the compatibility table to determine if this method applies to your television model.

TODO


Compatibility table (just for evaluation purposes)

Below is a first draft of a new version of a comprehensive compatibility table for SamyGO. It is here for evaluation purposes, please feel free to comment on it in the forum. Since this is a still a draft, not all links are there yet, or working. Also probably not all models have been put in yet, and the ones that are there have not yet been completed, I'm still working on it (especially finding the links into the forum pages is a tough job). The main changes are:

  • removal of the display type (I think you know what you bought)
  • Indication of access routes with letters.
  • combination of a whole bunch of options into a few columns

Oh, and never mind the thin blank lines in the table, they're just empty table entries.

Note: The SamyGO project is compatible with most of the other LN, LA, UN, or UA model TV's. We just haven't tested them yet. No need to get worried about that.

Table legend
well tested, production level available, but complicated work in progress unavailable
SamyGO compatibility table
TV type CPU Firmware FW Version Rooted via

E: ExLink.
F: FW patcher.
C: Contents lib
I: Internet@TV
H: hotel@usb
S: SMART HUB
O: otherwise

Root Access

T: telnet
S: ssh

Share types
U: UPnP
S: Samba
N: NFS
F: FTP
Options:
A: Video AR
S: subtitles
P: PVR
G: guide+
O: other
Notes
2012 models (ES-series)
UExxES5700 ARM T-MST10PDEUC 1027.1 S T F << WIP >>
2011 models or D-series
2010 models or C-series
LE26C350D1W MIPS T-MSX5DEUC 2005.4 O Movie player enabled through model change
PSxxC550 MIPS T-TDT5DEUC 1.021
1.023
H T U?,S, N
LExxC550 MIPS T-TDT5DEUC 1.021 H T U?, S, N Internet & games enabled on Trident-based C550s. (Platform has MStar and Tridend based units)
UExxC5100 MIPS T-TDT5DEUC 1004.0 H T U?, S, N
LExxC630 ? T-VAL6DEUC ? ? ? ? ?
LExxC630
LExxC650
LExxC670
LExxC750
ARM T-VALDEUC 1005.0
3003.0
3005.1
I T, S U?, S, N P, G FW version 1005.0 can't enable PVR. Only Italian C630's have VALDEUC firmware.
UExxC6500
UExxC6530
UExxC6700
UExxC6730
UExxC6800
ARM T-VALDEUC 1011.1
2002.0
3003.0
3005.1
I T, S U, S, N P, G C6800 has PVR function by default. FW version 1011.1 can't enable PVR
UNxxC6900 ARM T-VAL6XIBRC  ? I T?, S U?, S, N P, G? Brasilian
PSxxC7000
PSxxC7700
ARM T-VALDEUC 3003.0 I T?, S U, S, N P, G?
UExxC7000
UExxC7705
ARM T-VALDEUC 3005.1 I T?, S U, S, N P, G?
PSxxC8000 ARM T-VALDEUC 3003.0 I T, S U, S, N P, G
UExxC8700 ARM T-VALDEUC 3003 I T, ? ?, S, ? ?
UExxC8700 ARM T-VALDEUC 3009.2 H T, ? ?, S, ? ?
2009 models or B-series
CI models
LExxB55x
LExxB57x
PSxxB55x
LExxB62x
UExxB6xxx
ARM T-CHL5DEUC 2008.0 E, F T U, S, N A, S Playing movies from USB supported (WiseLink hack).<br\>telnet, Samba/NFS requires USB WiFi/Eth dongle, custom linux kernel from SamyGO OpenEmbedded and a rewrite of the uboot partition with a correct one. And some more manual changes.
LExxB65x
LExxB75x
PSxxB65x
ARM T-CHL7DEUC 2004.1
2005.0
E, F T U, S, N A, S FW 2004.1 has extensive aspect ratio features
UExxB70x0
UExxB8000
PSxxB85x
ARM T-CHU7DEUC 2004.0
2008.2
2009.0
3000.G
E, F, C T U, S, N A, S, P
LNxxB64x ARM T-CHEAUSC 1013.0
1014.0
E, F T U, N I have successfully modified (by hand) the firmware update currently available on Samsung's site. It still allows exlink console.

Telnet was enabled by manually modifying the firmware image. NFS support is built-in to the firmware, the cifs kernel module causes a panic (I will try compiling my own later) and I don't like UPnP so I didn't even try it out.

LNxxB65x
PNxxB65x
LNxxB75x
ARM T-CHEAUSC 1012.3 E, F T U, S, N A, S
LNxxB63x
UNxxB6xxx
ARM T-CHE6AUSC 1012.0 E, F A, S Play movie from USB supported (WiseLink hack). No telnet access (yet).
LNxxB63x
UNxxB6xxx
ARM T-CHE5IBRC 1009.1 E, F A, S No Wiselink hack by Firmware Patcher.
UNxxB7xxx
UNxxB8xxx
ARM T-CHE7AUSC 1013.0 E, F T U, S, N A, S
LAxxB65x
PSxxB65x
LAxxB75x
ARM T-CHL7DAUC 2001.1 E, F T U, S, N A, S
LAxxB65x
PSxxB65x
LAxxB75x
ARM T-CHEAEAC 2005.0 E, F U, S, N A, S
UAxxB6000 ARM T-CHL5DAUC 2001.1 E, C T U, S, N A, S
UAxxB7xxx
UAxxB8xxx
ARM T-CHU7DAUC 1008.0 E, F T U, S, N A, S
PSxxB85x ARM T-CHU7DAUC 1007.0 E, F T U, S, N A, S
CI+ models
LExxB55xyyP
LExxB57x?
PSxxB55xTxP
PSxxB56xTxP
LExxB62xTxP
UExxB6xxxVP
ARM T-CHL5CIPDEUC 2007.0 E T Serial (ExLink) access possible via Top Debug Menu memory editing.
LExxB65xTxP
LExxB75xUxP
PSxxB65xyyP
ARM T-CHLCIPDEUC 2006.0 E, F T U, S, N A, S
LExxB679T2S ARM T-CHL6CIPDSEUC 1008.0 E, F T U, S, N A, S
UExxB7xxxWP
UExxB8xxxXP
PSxxB85xYxP
ARM T-CHUCIPDEUC 3000.0 E, F T U, S, N A, S
2008 models or A-series
LExxA75x
LExxA85x
LExxA95x
SH4 T-RBYDEUC 1013.1 F T U, S, N A
LNxxA75x
LNxxA75x
SH4 T-RBYAUSC 1012.2 E T! N telnet needs manual firmware patching or telnetd application.
LNxxA85x
LNxxA86x
SH4 T-SPHAUSC 1004.0 E T! telnet needs manual firmware patching or telnetd application. tester needed for shares
LExxA676 T-AMBDFRC 1017.0 E tester needed for telnet and shares