2019 January Emby releases 3.6 as 4.0, is now closed source
2018 September Speechles hired as Roku dev
| #!/bin/bash | |
| # Validate input is present and is 1-4 | |
| [[ $1 && $1 != *[^1-4]* ]] || { echo "Invalid input." >&2; exit 1; } | |
| # Free TTY from any process reading it | |
| lsof -t /dev/ttyUSB0 | xargs -r kill -9 | |
| # Set output to File Descriptor 3 | |
| exec 3</dev/ttyUSB0 |
| POWER TOGGLE = JgDMAFUfDRANEQwfDR4rHg0QDRANEA0QDRANEA4QDRANEA0QGxANEA0QDh4cEA0QDR4cHg4QDRANEA0QDRAbEA0fDRANAAjTVSANEA0QDR4NHyofDg8NEA0QDRANEA0QDRANEA0QDRAcEA0QDRANHhwQDRANHx4cDRANEA0QDRANERsQDR4ODw4ACNNYHA0QDRANHw0eKh8NEA0QDREMEQwRDBANEA4QDRANEBsQDRANEA0fHBANEA0eHB4NEA4QDRANEA0QHA8NHw0QDQANBQAAAAAAAAAAAAAAAA== | |
| POWER ON = JgDGAFcdEA4PDg8cDxwtHBAODw4PDg8ODw4PDg8ODw4PDg8OHg4PDg8ODw4PDg8ODw4PHB4cEA4PDg8OHhweHB4cEAAI0FgdDw4PDg8dDxwtHA8ODw4PDg8ODw4PDg8OEA0QDg8OHQ4PDg8OEA0QDRAODw4PHB4cDw4QDRAOHRweHB4dDwAI0VcdEA0QDg8cDxwtHBANEA4PDg8ODw4PDg8ODw4PDg8OHg4PDg8ODw4PDg8ODw4PHB4cEA4PDg8OHhweHB4cEAANBQAA | |
| POWER OFF = JgDAAFceDRAPDg8cDx0sHBAODw4PDg8ODw4PDg8ODw4PDg8OHg4PDg0QDxweDg8ODx0dHQ8ODw4PDh0dHB4PDhwACOJXHQ4PDw4PHQ8cLRwQDQ4PDg8OEA4PDg8ODw4PDw4ODx0PDg8ODw4dHg4ODw4dHh0ODw4PDg8cHh0dDg8dAAjgWBwQDg8ODxwQHCwcEA4PDg8ODw4PDg8ODw4PDg8ODw4eDg8ODw4PHB4ODw4QHB4cDw4PDg8OHhweHBAOHQANBQAAAAAAAAAA | |
| PLAY = JgDGAFgcEA4PDg8cEBwsHBAODw4PDg8ODw4PDg8ODw4PDhANHg4PDg8ODxwfDRANEBweHA8ODw4QDRANHhweDg8dDwAI0VcdDw4PDhAcDxwtHA8OEA0QDg8ODw4PDg8ODw4PD |
| #!/usr/bin/python3 | |
| import paho.mqtt.client as mqtt | |
| import time | |
| import board | |
| import neopixel | |
| led = neopixel.NeoPixel(board.D18, 15) | |
| bright = 0.75 |
| #!/bin/bash | |
| # Clear the destination bundle and files if they already exist | |
| echo "[INFO] Clearing existing files..." | |
| rm -Rf "../Jellyfin.app" | |
| rm -Rf "../Jellyfin.dmg" | |
| rm -Rf "Jellyfin.app" | |
| rm -Rf "Jellyfin.dmg" | |
| # Create the bundle and folders we need |
codesign --entitlements Jellyfin_Server.entitlements --verbose --force --deep -o runtime --sign "Developer ID Application: Anthony Lavado" "Jellyfin Server.app/Contents/Resources/server/ffmpeg"
codesign --entitlements Jellyfin_Server.entitlements --verbose --force --deep -o runtime --sign "Developer ID Application: Anthony Lavado" "Jellyfin Server.app/Contents/Resources/server/jellyfin"
codesign --entitlements Jellyfin_Server.entitlements --verbose --force --deep -o runtime --sign "Developer ID Application: Anthony Lavado" "Jellyfin Server.app/Contents/Resources/server/ffprobe"
codesign --entitlements Jellyfin_Server.entitlements --verbose --force --deep -o runtime --sign "Developer ID Application: Anthony Lavado" "Jellyfin Server.app/Contents/Resources/server/System.Net.Security.Native.dylib"
codesign --entitlements Jellyfin_Server.entitlements --verbose --force --deep -o runtime --sign "Developer ID Application: Anthony Lavado" "Jellyfin Server.app/Contents/Resources/server/System.Security.Cryptograp
I hereby claim:
To claim this, I am signing this object:
| #!/usr/bin/env bash | |
| rm -Rfv ~/.config/jellyfin | |
| rm -Rfv ~/.cache/jellyfin | |
| rm -Rfv ~/.local/share/jellyfin |
It's surprisingly simple to notarize an app using FNA. The structure of the app bundle doesn't follow macOS best practices but at the end of it you do get an app bundle that users can open up on macOS Catalina without any issues with Gatekeeper.
So here are the simple steps:
Build your macOS .app bundle using MonoKickstart. You probably already have this and I'm not going to explain that here.
Create a file called mygame.entitlements (the name really doesn't matter) with these contents:
<?xml version="1.0" encoding="UTF-8"?>