Take note of the following points prior to preparing and using your Tizen TV for development and testing.
Note In order to obtain devices that have development firmware installed, you will need to contact Samsung directly and request these devices, or alternatively send your Tizen devices to Samsung to have development firmware installed.
There are different kinds of remote control devices that you can use with Tizen TVs. Generally speaking, you will need to use the standard remote that comes with your Tizen TV for testing, plus a universal Samsung remote in order to perform development and debugging tasks on your TV.
Each Tizen TV comes with its own standard remote, and it should be noted that a remote designed for one model of TV may not work with another model. For example, a 2016 TV remote will likely not work with a 2018 TV. Ensure that you keep each TV’s standard remote associated with its original TV.
There are at least two different kinds of universal remote available and they have some differences between them.
The basic universal remote has an issue where the fast forward and rewind buttons at the bottom of the remote emit a key up event after holding them down for about two to three seconds. This is a particular issue with this specific type of remote. Special handling may be required for the Tizen platform on your application to change the behavior of these buttons to ignore key up events, and direct the application to scrub indefinitely until the user presses select, play, pause, or stop.
The second, extended Samsung universal remote generally functions better, and does not exhibit this behavior, but this is not guaranteed. See below for images of standard Tizen TV remotes and these two universal Samsung remotes:
Standard Tizen TV remote 2016 | Standard Tizen TV remote 2016 | Basic Samsung Universal Remote | Extended Samsung Universal Remote |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Samsung also produces a factory remote that allows easy access to the full factory menu to alter TV settings, perform factory resets, and set up the TV after installing custom firmware. You will need to contact Samsung directly to request this remote.
Over time, the available memory on your Tizen TV will decrease, until no further applications can be installed onto them. Once your TV is connected to a network, automatic updates from Samsung will be pushed to your TV, even if you’ve turned auto updates off. If you neglect to delete temporary files once you’re done with them, they will also fill up available memory on your TV. Deploying only release builds to your devices will help save storage space, as they are significantly smaller than debug builds.
To view the available space on your device:
There are a number of ways you can slow the inevitable loss of memory on your Tizen TV. These include deploying only release builds to your TV; deleting unused temporary files; and turning off all auto updates settings (default setting is ON).
For more information on where to find settings for your specific model of Tizen TV, see these links for TV Model Groups and TV Model Numbers.
Tizen TVs generally have very little memory available, and there are no clear methods to free up space so they can be used indefinitely. The best approach is to be very mindful of what you install to a Tizen TV, including only using release builds as their smaller widget file size means they have the minimum impact on a TV’s available storage.
You can perform a factory reset to clear up memory. Refer to Samsung documentation for factory reset instructions. Immediately after the factory reset, disable system auto-update settings, as otherwise any default apps will automatically be reloaded onto your device. See Turning Off Auto Updates Settings above.
Multitasking is a feature on Tizen TVs that allows you to run multiple applications and switch between them. This is one of the requirements for certification. Current versions of You.i Platform include app life cycle bridge support for suspending and resuming the application. If the application is not properly suspended, the player may not be re-initialized correctly, which may temporarily halt function of your Tizen TV, requiring you to unplug it and plug it back in again.
On 2018 TVs, this is a non-issue as multitasking appears to be disabled by default, but your application must still properly support suspending and restoring. For more information on the corresponding Tizen web API for multitasking, visit this page. For more information on suspending and restoring your application, see documentation on this page.
Within the General / System Manager sub-menu on 2017 TVs and newer, or System / Expert Settings sub-menu on 2016 TVs, there is an option for Auto Protection Time. As a part of the certification requirements, this feature must also be managed from the code in your application, so that the screen saver is disabled during playback. This can be accomplished through the engine’s device power management bridge. For more information from the Samsung web API documentation, see this page.
On 2016 TVs, this feature determines how much time must elapse without input from the user before the screen saver turns on. There are options for two hours, four hours, eight hours, 10 hours and off. When turned off, the screen saver will never appear.
On 2017 TVs and higher, there is only an on / off button for the auto protection time setting, and the behavior is fundamentally different from its predecessors. When auto-protection is turned either off or on, the screen saver will appear after two hours unless disabled within the application. However, there is an exception where the AVPlayer automatically disables the screen saver when playback is active if auto protection is turned on, so if you are trying the two-hour playback test to ensure that your application correctly disables the screen saver, be sure that auto protection is turned off on newer devices.
In order to side-load application widget files to your Tizen TV, you must connect to it from your computer using either Tizen Studio’s Certificate Manager, or the Smart Development Bridge command line tool. To install these applications and configure their environment variables, see Tizen Setup and Configuring Environment Variables for Tizen.
To get started, you’ll need to retrieve the IP address of your TV so you can connect to it from your computer:
Next, you will need to retrieve the IP address of your computer, which should be readily obtainable from your machine’s network settings. To successfully connect to your TV, both your Tizen TV device and computer must be on the same subnet.
Note: If either your computer or your TV are on a wireless network, you will experience much slower file transfer times when installing Tizen application widget files. You.i TV recommends that you use a wired-to-wired connection to avoid this issue.
Only one computer can connect to a Tizen TV at a time, since your computer’s IP address needs to be whitelisted on the TV itself.
To configure a Tizen TV to allow connections from your computer:
Tip If the dialog does not appear, you may need to reset your TV. Do this by holding the power button on the remote for several seconds, or by unplugging the power cord to the TV and plugging it back in. Your TV can only connect to the computer with the IP address that you have specified, so if it changes, you will need to re-configure the TV to point to the new IP address.
Ensure that development mode has been switched to ON; you must make sure the ON button has been selected. Once you have finished, press OK and you will enable development mode and whitelist your computer so that it can connect to your TV. A message may appear telling you to restart the TV, but you may only need to do this if it’s the first time that development mode has been activated on the TV.
Next, you will need to open a connection to your Tizen TV in order to install your Tizen application widget file. The default connection port for your TV will always be 26101.
To connect to your TV using the Device Manager:
Click on the Device Manager icon in the main button bar, or you can open it from the Tools drop down menu.
Tip The Device Manager can be kept open independently of Tizen Studio, so you can close Tizen Studio or skip opening it if you need space on your desktop.
If the connection is unsuccessful, review the previous steps to ensure that you did not miss anything. Check your firewall and security settings to make sure that your operating system did not block the connection.
If the connection succeeded, a new entry should have appeared in the list of connected devices with information about the platform that is configured on your Tizen TV, as well as its serial (IP address and port), model name and the connection status. In this field, there is a button that allows you to terminate or re-open the connection. If you lose your connection to your device, you can reconnect from here. You may wish to keep the remote device manager open while you are working on development tasks to allow you to manage your connection.
If you are planning to install a Samsung-signed Tizen application widget file to your TV, ensure that your TV’s device unique ID is in the white list for your certificate; you will need to re-sign your widget file using another certificate if it isn’t whitelisted.
If this is the first time that you will be loading a widget file signed with a particular Samsung certificate on a Tizen TV, make sure your Samsung certificate is active in the Certificate Manager, then right-click on your TV device and select Permit to install applications. This will transfer your Samsung certificate onto the device.
You can also install your Tizen application widget file by selecting the Install App option from the pop up menu when right-clicking on a connected device, and pointing it to your widget file.
To connect to your TV using the Smart Development Bridge command line tool:
Start the SDB management server manually by using the following command:
sdb start-server
Note Manually starting the SDB management server is not mandatory.
Use the following command to connect to your Tizen TV. If you’re trying to install to an emulator, you will already be connected, and can skip steps 2 and 3.
sdb connect 192.168.0.100:26101
Where 192.168.0.100 is the IP address of your device. If the connection is successful, you will see output similar to the following:
MacBook:~ username$ sdb start-server
MacBook:~ username$ sdb connect 192.168.0.100
connecting to 192.168.0.100:26101 ...
connected to 192.168.0.100:26101
Verify what devices you are connected to, by using this command:
sdb devices
You will see output similar to the following:
MacBook:~ username$ sdb devices
List of devices attached
192.168.0.100:26101 device UN43MU6300
Use the following command to install your Tizen application widget file to the Tizen TV device or emulator:
tizen install -s 192.168.0.100:26101 -n MyApplication.wgt
Where 192.168.0.100 is the IP address of the device you connected to in the previous step and MyApplication.wgt is the path to your widget file.
If the installation is successful you should see output similar to the following:
MacBook:~ username$ tizen install -s 192.168.0.100:26101 -n MyApplication.wgt
Transferring the package...
Transferred the package: /Users/username/youidev/Projects/MyApplication/build/tizen-nacl/Release/MyApplication.wgt -> /opt/usr/apps/tmp
Installing the package...
Platform log view
--------------------
install zoRnVX1AvP.myapplication
package_path /opt/usr/apps/tmp/MyApplication.wgt
was_install_app return WAS_TRUE
app_id[zoRnVX1AvP.myapplication] install start
app_id[zoRnVX1AvP.myapplication] install completed
spend time for wascmd is [23513]ms
cmd_ret:0
Failed to install Tizen application.
Total time: 00:00:32.831
Note This command will always indicate Failed to install Tizen application
, but this message is due to a bug with the current version of the Tizen CLI and can be ignored.
The actual correct message appears a few lines above this, and will show install completed
if successful, or install failed
with an error code within square brackets if it did fail.
See Installation Error Codes for more information.
There are two command line tools that can be used for developing Tizen applications: the Smart Development Bridge (SDB) and the Tizen Command Line Interface or CLI. There are features in both tools that you will need for development and testing, but some of these may be unavailable if your Tizen TV does not have development firmware installed. For example, the SDB is able to provide remote shell access, provide root file system access, and permit installation of Tizen application widget files, but ONLY if the TV you are using has development firmware. Alternatively, you can use the Tizen CLI to install widget files; Tizen Studio can also be used to do this, but the Tizen CLI is the preferred tool.
To use either of these tools, ensure that you have properly exposed them in your path environment variable. See Configuring Environment Variables for more information.
The SDB is a tool that allows you to connect to your Tizen TV or emulator, free up space using a special command, and check the capabilities of your Tizen device. If your Tizen TV has development firmware, you will be able to gain access to the root file system and remote shell access using the SDB. For more information on available commands and features of the SDB, visit Samsung’s SDB page and this page for a list of shell commands.
The following list includes some of the different commands you can use with the SDB:
To check what version of SDB is available, you can use this command:
sdb version
Take note that this version is generally meaningless and is seemingly not changed between different releases of Tizen Studio.
To check the capabilities of your device or emulator, you can use the following undocumented command (assuming you are connected to a device or emulator):
sdb capability
Example output from a 2017 retail TV device:
MacBook:~ username$ sdb -s 10.100.89.191:26101 capability
secure_protocol:enabled
intershell_support:disabled
filesync_support:push
usbproto_support:disabled
sockproto_support:enabled
syncwinsz_support:enabled
rootonoff_support:disabled
encryption_support:disabled
zone_support:disabled
multiuser_support:enabled
cpu_arch:armv7
sdk_toolpath:/home/owner/share/tmp/sdk_tools
profile_name:tv
vendor_name:Samsung
can_launch:tv-samsung
platform_version:3.0
product_version:3.0
sdbd_version:2.2.31
sdbd_plugin_version:3.2.3_TV_REL
sdbd_cap_version:1.0
log_enable:disabled
log_path:/tmp
appcmd_support:disabled
It is worth noting that the value of the rootonoff_support
(2016 TVs and higher) capability determines if you can gain remote shell access to the development device using SDB or not.
To enable this on a device with development firmware, additional steps need to be taken while connected over serial debugging to a computer.
This command is generally not necessary in most situations.
To display a list of all connected devices and emulators, you can use the command:
sdb devices
Example output with one emulator and two devices connected:
MacBook:~ username$ sdb devices
List of devices attached
10.100.89.191:26101 device UN43MU6300
10.100.90.116:26101 device UJ6300
emulator-26101 device T-samsung-4.0-x86
The first column contains the serial ID (the IP address and port of a device or name of the emulator, which should always be unique) which typically always contains a value of device.
To connect to a Tizen TV device or emulator you can use either Tizen Studio’s Device Manager or SDB on the command line as follows:
sdb connect 192.168.0.100:26101
Where 192.168.0.100
is the IP address of your TV.
TV devices and TV emulators always have a default port of 26101, while phones will have a default port of 26100.
Note Additional steps must be done to allow your computer to connect to your Tizen TV device. See Connecting to Your Tizen TV for additional information.
To disconnect from a Tizen TV device or emulator that you are currently connected to, you can use this command:
sdb disconnect 192.168.0.100:26101
Where 192.168.0.100
is the IP address of your TV.
To view a list of connected devices, use the sdb devices command.
If you omit the device IP address and simply type sdb disconnect
, it will disconnect from all connected devices (but not emulators).
To clear some space by removing temporary files on your device, you can use the following command:
sdb shell "0 rmfile any_string"
If your device has development firmware you can install an application widget using this command:
sdb install MyWidget.wgt
Where MyWidget.wgt
is the name of your widget file.
To uninstall an existing application widget from a device with development firmware, you can use the following command:
sdb uninstall app_id
Where app_id
is the Application ID of your Tizen widget.
To start an installed application on a development device, this command should work:
sdb shell launch_app app_id
Where app_id
is the Application ID of your Tizen widget.
The Tizen CLI is the preferred tool for deploying widgets to your Tizen TV device or emulator. For detailed information on the available features and commands of the CLI tool, visit this page.
Note that when using commands that interact with a Tizen TV device or emulator, you may need to use one of the following additional arguments to target your specific device or emulator:
-s
or --serial
to issue the command based on the device IP address and port or emulator ID-t
or --target
to issue the command based on the device model name or emulator typeNote that the -d
and -e
arguments to target devices and emulators respectively that can be used with SDB will not work with the Tizen CLI.
If you are unsure of what your Tizen TV device or emulator serial or name is, you can check this by using the sdb devices
command.
See the smart development bridge section for additional information on this command.
For additional information on how to determine the serial or name of your device / emulator, see the sdb devices
command information under the Smart Development Bridge section.
There are a number of different commands that can be executed using the Tizen CLI including the following:
To check the current version of your Tizen CLI too, use this command:
tizen version
To install a Tizen application widget file to a Tizen TV device or emulator, you can use the following command:
tizen install -n path/to/MyWidget.wgt
Where path/to/MyWidget.wgt
is the location of your Tizen application widget file.
This command will always indicate that the Tizen application installation widget installation failed no matter what, but this is a false positive and can be ignored.
The true error code and installation status should be visible a few lines above and if successful, should say installation completed
.
There are a range of error codes that you may receive when working with this command; for a complete list, see Installation Error Codes.
Example output of a successful Tizen widget installation:
MacBook:~ username$ tizen install -s 192.168.0.100:26101 -n MyApplication.wgt
Transferring the package...
Transferred the package: /Users/username/youidev/Projects/MyApplication/build/tizen-nacl/Release/MyApplication.wgt -> /opt/usr/apps/tmp
Installing the package...
--------------------
Platform log view
--------------------
install zoRnVX1AvP.myapplication
package_path /opt/usr/apps/tmp/MyApplication.wgt
was_install_app return WAS_TRUE
app_id[zoRnVX1AvP.myapplication] install start
app_id[zoRnVX1AvP.myapplication] install completed
spend time for wascmd is [23513]ms
cmd_ret:0
Failed to install Tizen application.
Total time: 00:00:32.831
Example output of connectivity loss while installing a Tizen widget:
Transferring the package...
Can not transfer /Users/username/youidev/Projects/MyApplication/build/tizen-nacl/Release/FilmStruck-Release@Release.wgt package.
[Fail] Fail install. There is the problem to transfer package.
Total time: 00:00:53.371
To uninstall an existing application widget from your Tizen TV or emulator, you can use the following command:
tizen uninstall -p app_id
Where app_id
is the Application ID of your Tizen widget.
Note: This command appears to consistently fail on 2016 TVs, but functions correctly on 2017 TVs and higher.
To view the current configuration parameters of the Tizen CLI you can use this command:
tizen cli-config -l
An alias of -l
is --list
if you prefer something more explicit.
You can also optionally include a -g
or --global
parameter to view the global configuration settings as opposed to just local values.
Example local Tizen CLI configuration output:
MacBook:~ username$ tizen cli-config -l
default.build.architecture=x86
default.build.compiler=llvm
default.build.configuration=Debug
default.csharp.buildtool.path=C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/MSBuild/15.0/Bin/MSBuild.exe
default.csharp.toolchain=dotnet-cli
default.dotnet.tool.path=/usr/local/share/dotnet/dotnet
default.profiles.path=/Users/username/tizen-studio-data/profile/profiles.xml
default.sdb.timeout=60000
However, the only value we will typically ever change is the profiles.path
value if we are using a local signing profile list.
Use the following command:
tizen cli-config "key_name=value"
, where "key_name"
is the name of the key you wish to change and value
is what you want to set it to.
You can also optionally include a -g
or --global
parameter to change this value globally instead of just locally.
Note When viewing the current Tizen CLI config, all configuration parameters are prefixed with a default keyword followed by a period. If you wish, you can change the default value instead of overriding it as well, depending on your use case. In some situations, default values may not be changeable. Values without a default keyword prefix will take precedence over a parameter with the prefix. Additionally, local configuration parameters will take precedence over global parameters.
Command output should be similar to the following if successful:
MacBook:~ username$ tizen cli-config "profiles.path=~/profiles.xml"
Setting configuration is succeeded....
tizen cli-config --delete key_name
Where key_name
is the name of the configuration parameter key that you wish to unset or delete.
Note that -d
can be used as an alias of --delete
.
Example output from a successful configuration parameter deletion:
MacBook:~ username$ tizen cli-config -d profiles.path
Setting configuration is succeeded....`
tizen security-profiles list
The currently active Signing Profile will be denoted by a letter O following the name of the profile.
Command output should be similar to the following:
MacBook:~ username$ tizen security-profiles list
Loaded in '/Users/username/tizen-studio-data/profile/profiles.xml'.
[Profile Name] [Active]
MyTestTizen O
MyProjectSamsung
The currently active signing profile can be changed using the Certificate Manager as well as through the Tizen CLI using the following command:
tizen security-profiles set-active --name profile_name
Where profile_name
is the name of your signing profile as seen in the Certificate Manager or output of the Tizen CLI when viewing the list of security profiles.
See the Signing Certificates section for more information.
Command output should be similar to the following if successful:
MacBook:~ username$ tizen security-profiles set-active --name MyProjectSamsung
Loaded in '/Users/username/tizen-studio-data/profile/profiles.xml'.
Wrote to '/Users/username/tizen-studio-data/profile/profiles.xml'.
Succeed to set 'MyProjectSamsung' profile as active.
You can import both Tizen and Samsung certificates to a signing profile configuration file, using either the Certificate Manager or by using the following Tizen CLI command:
tizen security-profiles add -- . --active --author path/to/author.p12 --dist path/to/distributor.p12 --force --name profile_name --password AuTh0rP4ssw0rd --dist-password D1str1but0rP4ssw0rd
Where:
--active
or -A
will set the newly imported signing profile as active (optional, may not be desired for most situations)
--force
or -f
will generate a new profiles.xml
(signing profile configuration file) file if it does not already exist
-- .
specifies the Tizen CLI working directory to the current working directory and will import to a local profiles.xml
file instead of the global one.
Note: The above command is optional and usually not desirable, since you will probably want to import to the global, active profiles.xml file. lf you import to a local profile, you will need to modify the Tizen CLI config to point to this file, in order for it to sign your widget using a profile from this file.
path/to/author.p12 is the relative or absolute location of your Samsung or Tizen author certificate
path/to/distributor.p12 is the relative or absolute location of your Samsung distributor certificate or default Tizen distributor certificate
profile_name is the name you want to use for your Signing Profile when using it in the certificate manager or activating it using the Tizen CLI
AuTh0rP4ssw0rd is the password you specified for your Tizen or Samsung author certificate when it was originally created
D1str1but0rP4ssw0rd is the password for your Samsung distributor certificate or the default Tizen distributor certificate which is located at:
~/tizen-studio/tools/certificate-generator/certificates/distributor/sdk-partner/tizen-distributor-signer.p12
on macOS / Linux
C:\tizen-studio\tools\certificate-generator\certificates\distributor/sdk-partner/tizen-distributor-signer.p12
on Windows
and has a default password of tizenpkcs12passfordsigner
Example output from a successful Samsung certificate import using the Tizen CLI:
MacBook:certificates username$ tizen security-profiles add -- . --active --author author.p12 --dist distributor.p12 --force --name MySamsungCertificate --password Pr1v4t3C0d3 --dist-password 5up3rSecr3t
No exist the default path of security profiles.
author path: /Users/username/certificates/author.p12
author password: ********
distributor1 path: /Users/username/certificates/distributor.p12
distributor1 password: ********
Wrote to '/Users/username/certificates/profiles.xml'.
Succeed to add 'MySamsungCertificate' profile.
If want to sign by this, add the file of security profiles in CLI configuration
like 'tizen cli-config "profiles.path=/Users/username/certificates/profiles.xml"'.