Skip to content

Instantly share code, notes, and snippets.

@SayantanRC
Last active March 5, 2025 02:30
Show Gist options
  • Save SayantanRC/57762c8933f12a81501d8cd3cddb08e4 to your computer and use it in GitHub Desktop.
Save SayantanRC/57762c8933f12a81501d8cd3cddb08e4 to your computer and use it in GitHub Desktop.
Sign Jellyfin for Samsung TVs

Prerequisite

This guide is based on using an Ubuntu VM. The whole process will take several hours when doing for the first time. I faced issues with Windows 11, but you are free to try it. There are helpful comments below for Windows users.

Please read all the steps first before proceeding.

Steps

  1. Get ubuntu 18.04 LTS. Create a VM if needed.

  2. Install Tizen Studio from here: https://developer.tizen.org/development/tizen-studio/download

  3. Run the .bin file from terminal

    chmod +x ~/Downloads/web-ide_Tizen_Studio_5.6_ubuntu-64.bin
    ./Downloads/web-ide_Tizen_studio_5.6_ubuntu-64.bin
    
  4. Install the following from the Package Manager dialog (this step will require entering the user password several times):

    From Main SDK:

    • 8.0 Tizen

    From Extension SDK

    • TV Extensions-8.0
    • Samsung Certificate Extension
  5. Once the top progress bar hits 100%, close the dialog and launch Tizen Studio. You will get an error - "Failed to start sdb". This is happening because of a lower version of GLIBC in ubuntu 18.04. Close Tizen Studio.

  6. Update to Ubuntu 20.04 LTS This will resolve the GLIBC error. We started from Ubuntu 18.04 because python 2.7 - which is required for Tizen Studio - is not available on Ubuntu 20.04 repos. This we install it first on 18.04, then update the distro to 20.04. Use the following commands (this might take several hours and several confirmations): sudo apt update sudo apt dist-upgrade sudo apt autoremove sudo do-release-upgrade

  7. After reboot, open Tizen Studio. You shouldn't get the SDB error.

  8. Go to Tools -> Certificate Manager. Create a certificate as outlined here: https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/creating-certificates.html Do note down the profile name you entered when creating the certificate.

  9. Connect to the TV:

    • Note down your local IP. In case you are running Ubuntu 20.04 in a VM, note down the local IP of the host, not the VM. This can be found from ip a or hostname -I. The TV should also be on the same network (example - on the same wifi network.)
    • Enable developer mode on Samsung TV. Go to the "Apps" tab, scroll down to the very last, click on "App Settings". Now press the 123 button on the remote, hit the left button on the remote and switch to the numpad, now enter 1 2 3 4 5 and hit Done. This will open the developer mode dialog.
    • Select the "On" button and enter the local IP address previously noted in the "Host PC IP" section. Hit Ok.
    • On Tizen Studio, go to Tools -> Device Manager
    • On the new window, on top right, there will be 3 icons. Click the "Remote Device Manager" icon (middle icon).
    • On the new window, click the + icon, enter a random TV name and the TV IP address. This can be found by logging in to your router page for example. Leave the port be at the default value (26101 for me). Hit "Add". In the list, turn on the "Connection" switch for the TV entry.
    • You should now be able to see a TV device appear in the Device Manager window in the background. It can take a few seconds for the entry to appear. Once it appears, note down the device name (example - UA55DU8300ULXL). Now all windows can be closed.
  10. Get jellyfin WGT file: https://github.com/jeppevinkel/jellyfin-tizen-builds/releases

  11. Sign the WGT file (https://developer.tizen.org/development/tizen-studio/web-tools/cli#Pack_tizen_app):

    ~/tizen-studio/tools/ide/bin/tizen.sh package -t wgt -s <certificate profile name from Step 8> -- <WGT file path>
    

    Example:

    ~/tizen-studio/tools/ide/bin/tizen.sh package -t wgt -s profile_src -- ~/Downloads/Jellyfin-10.9.z-TrueHD.wgt
    
  12. Install the signed file:

    ~/tizen-studio/tools/ide/bin/tizen.sh install -n <WGT file path> -t <device name from Step 9>
    

    Example:

    ~/tizen-studio/tools/ide/bin/tizen.sh install -n ~/Downloads/Jellyfin-10.9.z-TrueHD.wgt -t UA55DU8300ULXL
    
  13. Open Jellyfin from the Apps tab. Close it once, then open again. Now you can login and enjoy.

Kindly Star ⭐ the Gist if it helped you ☺️

@kimtiago
Copy link

It worked for me, thank you, but I used Windows. The tizen.sh exists on Windows as tizen.bat and works the same way.

@ailison
Copy link

ailison commented Nov 6, 2024

I also used the Windows Version and ran the command on PowerShell as Administrator. (Search for it, right click and run as administrator)
Download the right packages mentioned above and follow the certificate instructions; it will be easy.
The location for the tizen.bat file is in C:\tizen-studio\tools\ide\bin\tizen.bat if you installed the Tizen Studio on the suggested location C:\tizen-studio

For those of you wondering how the commands would look like in Windows it would be:
11. Sign the WGT file
C:\tizen-studio\tools\ide\bin\tizen.bat package -t wgt -s <certificate profile name from Step 8> -- <WGT file path>
Example
C:\tizen-studio\tools\ide\bin\tizen.bat package -t wgt -s profile_src -- ~/Downloads/Jellyfin-10.9.z-TrueHD.wgt
12. Install the signed file:
C:\tizen-studio\tools\ide\bin\tizen.bat install -n <WGT file path> -t <device name from Step 9>
Example
C:\tizen-studio\tools\ide\bin\tizen.bat install -n ~/Downloads/Jellyfin-10.9.z-TrueHD.wgt -t UA55DU8300ULXL

Btw, I also used this same process to update the certificate on another app called Moonlight (for streaming games from your PC to the TV)

@diode-ee
Copy link

This was perfect. I spent about 4 hours and couldn't figure out how to publish it with my newly created cert. Thanks for posting this!

@Tunu-de
Copy link

Tunu-de commented Nov 13, 2024

I Testet this on MacOs and it Works fine for me.

But you can skip Step 1 and 5-7.

@sej75
Copy link

sej75 commented Nov 14, 2024

It worked for me too, thank you so much !
Like the others, I used Windows 11 and I replaced tizen.sh by tizen.bat and it worked perfectly.

@amasuke55
Copy link

Unfortunately doing this results in
install failed[118, -12], reason: Check certificate error : :Invalid format of certificate in signature.:<-2>

I have no idea how the format could be wrong when I created the certificate with the certificate manager provided by samsung...

@zunjae
Copy link

zunjae commented Nov 18, 2024

install failed[118, -12], reason: Check certificate error : :Invalid format of certificate in signature.:<-2>

Did you recently update your TV to One UI 8 (or 7... I forgot)?

Ever since I did, none of my custom installed apps work

@ruboncio
Copy link

I can confirm it no longer works after Tizen 8 One UI update. Thanks Samsung.

@sej75
Copy link

sej75 commented Nov 18, 2024

Weird cause as I said before it works for me even after Tizen 8 One UI update!

@SayantanRC
Copy link
Author

SayantanRC commented Nov 18, 2024

@zunjae @amasuke55 @ruboncio in that case, may be I haven't received the update... So I can't check

@dgmorley64
Copy link

This worked for me (using the Windows Version) and I have the Tizen 8 One UI Update.

@zunjae
Copy link

zunjae commented Nov 18, 2024

I actually got it working using Tizen Studio, using the UI to create the certificate and permitting app installation (this part will send over your certificate to your tv). You can also install apps through the UI in device manager

@amasuke55
Copy link

amasuke55 commented Nov 18, 2024

install failed[118, -12], reason: Check certificate error : :Invalid format of certificate in signature.:<-2>

Did you recently update your TV to One UI 8 (or 7... I forgot)?

Ever since I did, none of my custom installed apps work

That might be it, I just recently got the TV and it was on the latest version from the factory afaik.
So i don't know any other version.
Model is an S90D 65 inch Version 1201

@amasuke55
Copy link

amasuke55 commented Nov 18, 2024

I actually got it working using Tizen Studio, using the UI to create the certificate and permitting app installation (this part will send over your certificate to your tv). You can also install apps through the UI in device manager

@zunjae
I did those steps and got that error.

@realbaylen
Copy link

realbaylen commented Nov 23, 2024

I'm getting a different error. I don't know what I'm doing wrong with the certificate because when I clicked Permit to install applications in Device Manager it succeeded.

baylen@midna ~ % ~/tizen/tools/ide/bin/tizen.sh install -n Downloads/Jellyfin.wgt -t QN65LS03DAFXZA
Transferring the package...
Transferred the package: /Users/baylen/Downloads/Jellyfin.wgt -> /home/owner/share/tmp/sdk_tools/tmp
Installing the package...
--------------------
Platform log view
--------------------
Waiting for ready to work. Don't stop the process.
install AprZAARz4r.Jellyfin
package_path /home/owner/share/tmp/sdk_tools/tmp/Jellyfin.wgt
app_id[AprZAARz4r.Jellyfin] install start
app_id[AprZAARz4r.Jellyfin] installing[9]
app_id[AprZAARz4r.Jellyfin] installing[19]
app_id[AprZAARz4r.Jellyfin] install failed[118, -12], reason: Check certificate error : :Invalid certificate chain with certificate in signature.:<-3>
spend time for wascmd is [14851]ms
Failed to install Tizen application.
Total time: 00:00:59.320

@ElaineHoward1
Copy link

ElaineHoward1 commented Dec 11, 2024

Great script! It could benefit from added error-handling to prevent crashes during unexpected input scenarios. Thanks for sharing this work—it’s a solid foundation for more advanced use cases. Graduate students often struggle with physics essay writing assignments. I came across a website called lastminutewriting, which is a top writing service provider for students. My cousin uses https://lastminutewriting.com/assignment to improve her academic skills, and she has had positive experiences with them. The writers at lastminutewriting are highly educated experts, and my cousin has utilized their service to complete all her essay-writing needs.

@rcbop
Copy link

rcbop commented Dec 15, 2024

FYI, they updated the Tizen Studio to version 6.0 in the provided link.
I was able to install directly on ubuntu 22.04.5 LTS so you don't have to do the VM workaround if you don't want to, but it will install a lot of packages into your system that you might not like, so there's that.
Installing the Samsung Certificate Extension is really important, I missed that and was generating an invalid certificate profile for installing the app.
I really resent Samsung for making me invest some hours into solving this.

@jaum20
Copy link

jaum20 commented Dec 25, 2024

Thank you for this. I was getting install errors because I failed to install Samsung Certificate Extension

@thucngyyen
Copy link

Thank you for this. I was on window but .bat file works the same way

@Pr0t0typ313
Copy link

Pr0t0typ313 commented Jan 18, 2025

profile_src

I would like to add some small but vital info for step 11. Probably kinda obvious when I think about it, but it took me a while to figure it out.
When creating the certificate and give it a name (in my case I just called it jellyfin). This is also the name you use in the building of the package.

In my case the command was:
C:\tizen-studio\tools\ide\bin\tizen.bat package -t wgt -s jellyfin -- Jellyfin.wgt

And for step 12, it was:
tizen.bat install -n Jellyfin.wgt -t MyTVname

@AstroDot
Copy link

Hello,
If you are on windows and still have problems with Tizen 8 please check below.
On windows you have 2 version of Tizen studio (I will label them formerly as) CLI and GUI. They are 2 different executables.
So after you install both and create certificate inside GUI 'Certificate Manager' it's not immediately available to CLI version.
So when you try to signed in CLI version using profile name from GUI it didn't actually do it as your CLI 'profiles.xml' is empty.
To workaround this you need, before step 11 (signgning wgt file) you need to copy 'profiles.xml' from GUI to CLI path, something like this:
GUI: '<install_folder>\Tizen-studio-GUI\tizen-studio-data\profile\profiles.xml'
CLI: '<install_folder>\tizen-studio-data\profile\profiles.xml'
You can make a backup of CLI 'profiles.xml'.
After that proceed to step 11 and sign WGT file and continue with guide.

@CodaBool
Copy link

CodaBool commented Mar 5, 2025

@AstroDot Thank you! This step was needed for me. For me I edited the C:\tizen-studio-data\profile\profiles.xml to match C:\tizen-studio-data.1\profile\profiles.xml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment