-
Notifications
You must be signed in to change notification settings - Fork 72
Add automatic certificate generation for OneUI8 #65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
For some reason, the image has python 3.6 and the library uses at least python |
|
I encountered the same errors. I don't know how to fix that. Maybe someone else has a answer to that |
…factor entrypoint.sh
|
I finally managed to get all things up and running. The last thing to do is to modify the Readme.md file accordingly to my changes. Maybe @Georift could help here. The new instrucitons to install the package autmatically to any Samsung TV is: Example: Wait until the server starts. The script will check every 5 seconds if the certificates are generated yet. Even if the script is not launched yet. So be patient, until there is a printed feedback from the script. Open: |
|
@Georift Nvm. I refactored the readme file. This pull request is ready for merging. |
|
@Georift Are you still maintaining this project? - Cause it looks like that you are very inactive. ^^ |
|
Hi. I pulled this down and built the docker image from the Dockerfile. I'm running the docker image on a headless server, which presents some problems. I can point my laptop browser at headless:7494/auth/start and I get to the first problem. It returns a JSON blob, instead of showing instructions. If I then visit the |
|
Actually this is the only thing where i can't actually help. As the generation script that i am using is from tizencertificates I experienced the same issue with the JSON blob. This occures because docker is not able to open a browser on the host machiene. Therefore you have to manually visit the side. A possible solution to this would be to directly return the Unfortunately i have to say that i am not responsible for you problem with your headless server, as the original script is not build to be run with a headless server. But we can come together and try to fix it together. |
|
Ah, no worries. I'd hoped you had a quick answer. I'm going to try and hack at it a bit and see if I can figure it out. |
|
If you find a solution i would be happy if you concider implmenting it into my PR |
|
Hey 👋 I just wanted to let you know that it worked fine directly from my laptop. I'll keep at it from the headless server, but I'm not optimistic. The Samsung page itself doesn't like non-full-browsers, so I don't think I'll get a curl solution (or similar) to work |
|
Running into an issue that I don't see documented in the Readme. Everything seems to work fine installing with the oneui8 steps but errors at the end with: |
|
@Hippaduck
Are there any other log entrys that could be useful for debugging this issue? |
|
Jellyfin removed when the update happened and I can't find anywhere it may be installed still. The account is the same. and the command I ran to kick it off |
|
Hmm that is strange. I cannot identify any issues with the nstallation process here. Can you enter the container and check if the p12 certificates are in the right format? Get into the Containers Shell Check certs for expery date |
|
@Hippaduck @Epgenix When I got it to work, I used the email of my Samsung developer Account, not the email of the account signed into to the TV (which is my wife's). |
|
Interesting, i never had an Samsung Developer Account, i straightup used my normal Samsung Account. |
Interesting, for me it returns the Unique Device ID |
|
Some feedback on this.
It is the only container running of this image and there were no complaints on stdedd over port bindings. When I run a shell inside the image and run the script directly, I can access the httpserver ultimately from my browser outside the image. The furthest I got was to the point where the script ends with the error that was discussed above. As ther users suggest, there appears to be a workaround with setting certificate passwords somehow. I would very much know how to do this exactly. Yo say above
This has not been the case for me, even when I got as far as the certificate format error above. I see that ther is a mkdir in the script, but it appears not to have run as far, and without stopping and printing on stderr. Clearly not as intended. I am happy to help debug but I do not know where to start looking. Again, thanks everyone! |
Maybe other TVs display different data? |
|
Where the fuck do you get the When you have browser issues, just use a different one. Also your arguement:
Is clearly invalid, as i tested this script in a CLEAN install inside a Hypervisor Virtual Machiene. So this should work for everyone. And besides that, there were also people who successfuly ran the script. The the only conclusion is that there must be issues in the environment setup for everyone who is getting some errors. And also related to the symlink. These paths only get created when the certificate generation is completed successfuly. And last but not least. Yeah i can implement the |
Yep that is probably the issue |
I meant to say "4797". This was clearly a typo on your part: "Then open localhost:4797/auth/start on your browser where docker is running. " and I corrected it in case others stumble upon it.
You misunderstand: I do not have "browser issues", I merely wanted to make you, and others who potentially have related issues, aware that some browsers have this behaviour and it may be a source of issues.
Again, you've misunderstood: by "other setups" I meant hardware (yes, the TV), the type of developer account or authentification mechanism, and docker versions. You write "Hypervisor Virtual Machiene". These are words and I know some of them and know that others are probably misspelled. No bother, nobody is perfect. "there were also people who successfuly ran the script." That said, I do not doubt that there is something "wrong" on my end in the sense that clearly, I did not manage to successfully generate certificates and use them to sign and install stuff. Perhaps this is on me, but again, nobody's perfect. Have a great day. |
|
Probably you can try to invoke the tizencertificates script manually and generate a certificate out of it. The following command could be appended to the docker run command |
|
Great idea! I did something similar by running everything manually inside the image. Ultimately, the installation call to On the webs I could only find solutions via some samsung device manager GUI, which I cannot run on my systems. |
|
@Epgenix Just want to add that i got your docker image working as well, but did also run across the problem where --get-device-id returns the TV model. |
Wow that is really interesting. The |
Hi, I almost got crazy with this. I had the same issue. After getting the image running, finding the correct Address for the certificate server I really want to thank everybody here who provided the solution. Now Jellyfin is working again, after two month of waiting. |
|
I updated the readme accordingly |
|
@drifter75 thanks for the tip. |
|
Maybe I'm just dumb but I get this error: Edit: When the TV is free again I'm going to try adding the "jellyfin-master https://github.com/jeppevinkel/jellyfin-tizen-builds/releases/tag/2025-03-25-2029" flag EDIT2: Running this worked: |
Great, love to see that it woked. Are there any other problems that are related to this script. Any improvement requests to the readme file, or is everything fine? |
|
Just thought i'd chime in as there was some strange behaviour when i attempted this on my PC with some out of memory exceptions adding |
|
Hi, I just wanna say thank you so much for your work, I updated and thought I'd never see Jellyfin Tizen again, it worked after figuring out the unique device ID number (edit: different from unique ID! see below) If you're in a hurry (and you trust me ;) ), I prebuilt and uploaded the docker image here: 3 little notes:
|
|
I have the same problem: Steps:
Run the command:
Open: http://localhost:4794/auth/start Login and: |
|
See if running the latest version of the cert generator directly works?
There are some adjustments to accommodate a different OpenSSL version in
this repo that might cause the certs to fail. Really the vitalets image
needs some updates, maybe when I get some extra time I can knock that out.
…On Fri, May 2, 2025 at 11:34 AM jesusvallez ***@***.***> wrote:
*jesusvallez* left a comment (Georift/install-jellyfin-tizen#65)
<#65 (comment)>
I have the same problem:
install failed[118, -12], reason: Check certificate error : :Invalid
format of certificate in signature.:<-2>
Steps:
- git clone https://github.com/Epgenix/install-jellyfin-tizen epgenix
- cd epgenix
- git clone https://github.com/sreyemnayr/tizencertificates.git
- cd ..
- docker build -t samsung:latest .
...
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:2abc987781ae56a5b790b4101ed44487b1afd0588b7e9c4345394b0e8b231d7a 0.0s
=> => naming to docker.io/library/samsung:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/wiohxjybt216cmbq1rbelmze3
2 warnings found (use docker --debug to expand):
- InvalidBaseImagePlatform: Base image vitalets/tizen-webos-sdk was pulled with platform "linux/amd64", expected "linux/arm64" for current build (line 1)
- SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "CERT_PASSWORD") (line 27)
Run the command:
- docker run -p 4794:4794 --platform linux/amd64 samsung:latest --ip
192.168.1.136 --oneui8 --device-id HKL57YIXXXXXX --email
***@***.***
Python WARNING
...
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
Certificate generation server started. Waiting for certificates to be generated...
Certificates not yet generated. Checking again in 5 seconds...
Certificates not yet generated. Checking again in 5 seconds...
Certificates not yet generated. Checking again in 5 seconds...
INFO: Started server process [23]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:4794 (Press CTRL+C to quit)
INFO: 127.0.0.1:41098 - "GET /auth/start HTTP/1.1" 200 OK
Open: http://localhost:4794/auth/start
returns json like:
{
"login_url": "https://account.samsung.com/mobile/account/check.do?serviceID=v285.....&actionID=StartOAuth2&accessToken=Y&redirect_uri=http://localhost:4794/signin/callback",
"service_id": "v285.....",
"redirect_uri": "http://localhost:4794/signin/callback",
"state": "w3VMS_Q-2M...."
}
I navigate to:
https://account.samsung.com/mobile/account/check.do?serviceID=v285.....&actionID=StartOAuth2&accessToken=Y&redirect_uri=http://localhost:4794/signin/callback
Login and:
ertificates not yet generated. Checking again in 5 seconds...
INFO: 172.17.0.1:59728 - "POST /signin/callback HTTP/1.1" 200 OK
Certificates generated and linked. CERTIFICATE_PASSWORD set.
Attempting to sign package using provided certificate
INFO: Shutting down
INFO: Waiting for application shutdown.
INFO: Application shutdown complete.
INFO: Finished server process [29]
Author certficate: /certificates/author.p12
Distributor1 certificate : /certificates/distributor.p12
Package( /home/developer/Jellyfin.wgt ) is created successfully.
/home/developer/entrypoint.sh: line 160: 29 Terminated python cert_server.py --tv --device-id="$DEVICE_ID" --email="$EMAIL"
Attempting to install jellyfin-tizen-builds Jellyfin.wgt from release: 2025-05-02-1034
Transferring the package...
Transferred the package: /home/developer/Jellyfin.wgt -> /home/owner/share/tmp/sdk_tools/tmp
Installing the package...
--------------------
Platform log view
--------------------
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 format of certificate in signature.:<-2>
spend time for wascmd is [5208]ms
Failed to install Tizen application.
Total time: 00:00:08.221
Possible fix for certificate error:
The error 'Check certificate error : :Invalid format of certificate in signature.:<-2>' suggests an issue with the certificate.
1. Verify your CERTIFICATE_PASSWORD is correct, if used.
2. Ensure the certificates in /certificates/author.p12 and /certificates/distributor.p12 are valid.
3. If using OneUI8 mode, make sure the certificate generation process completed successfully.
4. Try regenerating the certificates. If you are using the cert_server.py script, double check the device-id and email are correct
—
Reply to this email directly, view it on GitHub
<#65 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACBJQTVDEIDZV7AUX5246R324ONBDAVCNFSM6AAAAABWKPKARSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQNBXGY2DIMZTHA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
It seems to work perfectly. The only difference I see is that when I run the project it doesn't return a JSON but it does redirect me without having to copy and paste the login_url |
|
Yeah it’s meant to automate the whole process. There’s a legacy flag that
Georift’s solution here removes from the certificate creation command (due
to the version of OpenSSL that is default in the existing docker base
image) which seems to be required to generate the certs for some use cases.
…On Fri, May 2, 2025 at 12:41 PM jesusvallez ***@***.***> wrote:
*jesusvallez* left a comment (Georift/install-jellyfin-tizen#65)
<#65 (comment)>
See if running the latest version of the cert generator directly works?
There are some adjustments to accommodate a different OpenSSL version in
this repo that might cause the certs to fail. Really the vitalets image
needs some updates, maybe when I get some extra time I can knock that out.
It seems to work perfectly. The only difference I see is that when I run
the project it doesn't return a JSON but it does redirect me without having
to copy and paste the login_url
—
Reply to this email directly, view it on GitHub
<#65 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACBJQTVYMFL77NIUFUDAKJL24OU6HAVCNFSM6AAAAABWKPKARSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQNBXG43DCOBTGA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
okey... My bad... Thanks to ketsapiwiq Works perfectly... Thanks you all! |
|
@Epgenix i get a 500 error when hitting the login link, is this approach still working?
|
|
FYI, I published an update to the tizencertificates repo this morning that sorts out the issues caused by samsung replacing the endpoints for the distributor/authors apis. |
This works, i pushed some changes to @Epgenix 's repo so that your new code structure can be used smoothly Thank you very much |
|
Just cropping back up to say I appreciate all the work put in on this PR @Epgenix, I'm not across the certificate generation requirements as my TV didn't require it. But I'll look to test this and @andreasntr's PR and I hope we can get something merged soon. |


Originally posted by @Epgenix in #51
So i've been working in this for a few hours now (mostly figuring some things out)
This pull request is not tested yet, as i'm facing some issues with the building process of the Docker Image.
Docker is complaining that the version requested for fastapi is not existing. (It is)
I guess there is some work to do to get it up running.
But the idea is here, and maybe someone is picking up on this. I will definitely update this PR with some changes in the coming days.