SamyGO
Encyclopedia
SamyGO is a community of developers and end-users that started in the summer of 2009 and has grown to be a major source of modified firmware
Firmware
In electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices...

 and software for newer Samsung televisions that have internet features, so called convergence
Technological convergence
Technological convergence is the tendency for different technological systems to evolve towards performing similar tasks. Convergence can refer to previously separate technologies such as voice , data , and video that now share resources and interact with each other synergistically.The rise of...

 devices. These devices are usually higher end television models that are capable of receiving information from the internet and displaying to the audience while watching conventional television programming.

SamyGo started as an attempt to customize the RSS
RSS
-Mathematics:* Root-sum-square, the square root of the sum of the squares of the elements of a data set* Residual sum of squares in statistics-Technology:* RSS , "Really Simple Syndication" or "Rich Site Summary", a family of web feed formats...

 feeds included in the Samsung infolink service at a thread at avsforum. This thread drew a lot of attention and users from this forum decided to start a sourceforge project
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

, specific for the enhancement of the firmware of Samsung television sets, SamyGO. The modifications allow for improvements in the functionality of built-in features but also the addition of new features not previously available.

The SamyGO community started by creating hacks for the Samsung B series televisions initially, followed by support for A and C series televisions under the GPLv2 license. A list of compatible 2008 and 2009 television models is maintained at SamyGO sourceforge wiki website. There is also a separate Compatibility Table for C-Series 2010 television models. They also maintain a facebook page where updates to the projects are posted.

Type of Hacks

The latest generation televisions are nothing more than a electronic device with an embedded operating system
Embedded operating system
An embedded operating system is an operating system for embedded computer systems. These operating systems are designed to be compact, efficient, and reliable, forsaking many functions that non-embedded computer operating systems provide, and which may not be used by the specialized applications...

, usually based on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

.
There are three types of hacks that have been developed for enhancing the functionality of the embedded software in Samsung televisions:
  • Standalone Applications or SamyGO apps
  • Modified television firmwares
  • SamyGO Extension Pack running on top of original firmware


SamyGO apps are executable files that do not cause any permanent modifications to the television but rather have to be started manually each time the television is turned on. Once the television is power cycled
Power cycling
Power cycling is the act of turning a piece of equipment, usually a computer, off and then on again. Reasons for power cycling include having an electronic device reinitialize its configuration or recover from an unresponsive state of its mission critical functionality, such as in a crash or hang...

, these apps are disabled.

Modified television firmwares however are permanent and require that the embedded linux OS is rooted, that superuser access
Superuser
On many computer operating systems, the superuser is a special user account used for system administration. Depending on the operating system, the actual name of this account might be: root, administrator or supervisor....

 is obtained in order to apply these permanent firmware modifications. This allows the user to highly customize the functionality of their television but carries significant risk for beginners because their television can get bricked
Brick (electronics)
When used in reference to consumer electronics, "brick" describes a device that cannot function in any capacity . This usage derives from the fact that some electronic devices are vaguely brick-shaped, and so those which do not function are useful only as actual bricks. The term can also be used...

. With the beginning of 2010 Samsungs started to use encrypted firmware on B-Series CI+ models and C-Series models.

SamyGO Extension Pack contains precompiled kernel modules and executables to extend the embedded linux. You can call SamyGO Extension Pack an SamyGO app, but in reality it is a full linux distribution running on top of the original firmware. Running SamyGO Extension require that the embedded linux OS is rooted and the files are copied to built in flash memory or stored on an attached USB-stick, depending on television model. Using SamyGO extension Pack is the preferred method to start with for beginners, because there is only a low risk to brick
Brick (electronics)
When used in reference to consumer electronics, "brick" describes a device that cannot function in any capacity . This usage derives from the fact that some electronic devices are vaguely brick-shaped, and so those which do not function are useful only as actual bricks. The term can also be used...

 their television.

There is also an C-Series focused wiki article about hack types on the SamyGO Wiki for C-Series.

SamyGO apps

Current apps that have been developed by the SamyGO community can be divided in two groups according to the television series that support them.
Some examples of new TV functionality added by SamyGO Apps are listed below.

1. Atari800 emulator
A fully functional Atari XL/LE (8-bit)
Atari 8-bit family
The Atari 8-bit family is a series of 8-bit home computers manufactured from 1979 to 1992. All are based on the MOS Technology 6502 CPU and were the first home computers designed with custom coprocessor chips...

 emulator ported from open-sourced Atari800. This requires a keyboard connected to your TV but can also use your remote control for some games

2. Aspect Ratio
Allows image of certain movies that are played back using Samsung media player to be displayed in full screen stretch.

3. Audio Stream Switcher
Allows you to switch between audiotracks in files that contain multiple audio tracks e.g. mkv file, avi file etc.

4. Bigger Yellow Font
Increases the default size of the fonts used in subtitled movies (srt files
SubRip
SubRip is a software program for Windows which "rips" subtitles and their timings from video. It is free software, released under the GNU GPL...

) and can change their color e.g. to yellow which makes them easily read.

5. CD_DVD USB Devices
Adds support for external CD/DVD drives connected to TV via a USB cable. However it will not play DVDs or blu-ray, only files encoded in a supported video format.

6. Channel Info
After changing TV channel it shows extended information from the EPG guide of the television about the current program for digital TV channels

7. DCA module
Allows the playback of movies with a DTS soundtrack using the built-in Samsung Media Player.

8. Ext3
Allows mounting of Ext3
Ext3
The ext3 or third extended filesystem is a journaled file system that is commonly used by the Linux kernel. It is the default file system for many popular Linux distributions, including Debian...

 formatted disks.

9. Force firmware back
Small application that allows B series televisions to revert to earlier Samsung firmware that did not restrict the use of external applications such as SamyGO.

10. FTP Server
Allows a user to connect to their TV via FTP. Log in with user name root without typing a password.

11. MLDonkey
An opensource eDonkey client for your Samsung television.

12. Mouse and Keyboard
Tool that enables USB mouse and keyboard support for custom applications from the television content library that support it.

13 myButtons
Application that creates menus to start scripts or plug-ins without using Telnet
TELNET
Telnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection...

 console.

14 NetSurf Browser
A web browser designed to be operated by remote control or using a traditional keyboard and mouse plugged into your television USB port.

15. PVR+
Provides an application that allows you to record television programming that you are watching to an attached USB storage device.

16. Remote LAN Control
Allows your television to receive remote control commands via telnet or an Android phone application.

17. SamyGO Extensions
A collection of scripts that allow mounting of NFS, CIFS/SAMBA
Samba (software)
Samba is a free software re-implementation, originally developed by Andrew Tridgell, of the SMB/CIFS networking protocol. As of version 3, Samba provides file and print services for various Microsoft Windows clients and can integrate with a Windows Server domain, either as a Primary Domain...

 volumes to your television for purposes of playback of media: pictures, music and supported video files. Other functions include UPnP client, apache server, telnet access and others.

18. ScreenCap
Allows you to capture screen contents on your television with use of your remote control to a specified location on your television.

19. Screen Resizer
Application that allows resizing and adjusting the picture sizes and proportions in Samsung B series televisions.

20. Telnet Enabler
Enables Telnet access to your television.

21. Thumbnails
Generates movie thumbnails for build-in TV Media Player from movie covers in disk, IMDB and/or Google.

22. Wake On Lan
Will send a Wake-on-LAN
Wake-on-LAN
Wake-on-LAN is an Ethernet computer networking standard that allows a computer to be turned on or woken up by a network message....

 command to a computer on your network, e.g. a NAS
Network-attached storage
Network-attached storage is file-level computer data storage connected to a computer network providing data access to heterogeneous clients. NAS not only operates as a file server, but is specialized for this task either by its hardware, software, or configuration of those elements...

 device to allows access to digital files for media playback.

23. Channel Editor
A computer desktop application that can edit your channel list on your Samsung TV.

Modification of Firmware

Samsung television firmware is based on some open-source software
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...

. The GNU license
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 of this software requires that the developer makes his modification public which is available at the Samsung open source release center.
Access to this software has enabled developers to study and make alterations and enhancements to the original firmware. This process requires advanced computer programming skills. The SamyGO community has simplified the process for end users by developing automated scripts and applications that require minimal input from the user. One such script,the SamyGO firmware patcher script requires python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 for the execution of its function and automates certain changes to the firmware such as the Video aspect resolution fix, enables Telnet, allows you to change the subtitle font size and color used by your television. This modified firmware can then be flashed to the television using the televisions own firmware upgrade process and will incorporate the altered functions.

Restricted Firmware

Samsung encrypts some of its firmware to prevent modifications. Televisions with simple XOR encryption are said to have a CI firmware. Some television models contain both XOR and AES
Advanced Encryption Standard
Advanced Encryption Standard is a specification for the encryption of electronic data. It has been adopted by the U.S. government and is now used worldwide. It supersedes DES...

 encryption (CI+ firmware) and flashing modified firmware on these models is not yet possible. After February 2010, firmware updates to previously unrestricted firmware were released for most Samsung models that restricted the access to the Samsung television software. This made modifications more difficult and riskier because recovery of the television was nearly impossible in event it got bricked. According to the SamyGO community, such restrictions include:
1)Removal of exlink (service cable) access that provided serial connection to TV's bash line
2)Removal of Top debug menu that allows configuration of every TV property
3)Removal of u-boot code for that we use to run External firmwares and un-bricking TV
4)Removal of program copy and execution ability from USB disks allowing only internet delivery of firmware updates
5)Removal of Alternative firmware section to avoid reverting to older firmwares

Samsung has not made any formal announcements in reference to these changes or about the SamyGO community in general. In response, the SamyGO community has found some workarounds to revert back to the older firmware that permitted software firmware enhancements for some television models and has been discovering vulnerabilities to allow modifications of newer model televisions (series C) despite the heavily encrypted firmware.

Legal Issues

The legality of modifying television firmware has not been explored legally in the United States. However privilege escalation
Privilege escalation
Privilege escalation is the act of exploiting a bug, design flaw or configuration oversight in an operating system or software application to gain elevated access to resources that are normally protected from an application or user...

, for other electronics with embedded operating systems such as cellphones (e.g. jailbreaking the iphone) in order to gain root access to the operating system has been declared legal . The SamyGO community provides a guide on how to hack your television to add additional functionality. While it is legal to modify the software in your television, it may void your warranty. The SamyGO community simply provides the tools and technical knowledge to perform your own modifications. It is up to the end user to decide how to implement that knowledge.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK