Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
SAKÉ can help you to debug and develop Kodi Python add-ons. It contains a set of libraries that try to mimic the functionality of the corresponding Kodi modules:
Module | Purpose |
---|---|
xbmc | General functions on Kodi |
xbmcaddon | Kodi’s addon class |
xbmcgui | GUI functions on Kodi. |
xbmcplugin | Plugin functions on Kodi. |
xbmcvfs | Virtual file system functions on Kodi. |
Not all libraries are present and certainly not all methods are implemented. Currently missing are:
Module | Purpose |
---|---|
xbmcdrm | Kodi’s DRM class. |
Feel free to contribute to the completion using Pull Requests for this repository.
SAKÉ can be installed using the pip install
command:
$ pip install sakee
This will install SAKÉ in the active Python installation. It will be available directly to all your Python scripts. If you choose to not use pip install
and want to run it from a specific (custom) location then you will need to include its path the Python paths. Either via:
sys.path.append('<path to SAKÉ>')
Or by appending the SAKÉ path to the Python path environment variable: PYTHONPATH
SAKÉ requires you to run with your add-on as the main working directory. Running it outside of that directory will fail.
If your add-on is in a subfolder of Kodi's addons
folder, you are done. SAKÉ will try to find its own way and determine what your Kodi path is and where your profile is stored. However, if you are running it standalone, so without Kodi at all, or if SAKÉ got 'drunk' and lost its way, you can always specify some directions using environment variables as follows:
Environment Variable | Description |
---|---|
KODI_HOME | If specified, will force SAKÉ to look at that path for Kodi's home path. |
KODI_PROFILE | If specified, will force SAKÉ to use this folder as the Kodi 'master' profile (user_data) folder. This will disable the auto detection of the profile folder based on Kodi's home path. |
KODI_ACTIVE_PROFILE | SAKÉ will assume that you don't have any Kodi profiles, but in case you have, you can specify what profile to use for the add-on settings. |
KODI_INTERACTIVE | Normally, SAKÉ will try to interact with you: Whenever there should be a dialog shown within Kodi, SAKÉ will present you with an ASCII version and wait for a response. You can disable this by setting this environment variable to "0". SAKÉ will not disturb you and will continue. However, SAKÉ will answer those dialogs for you and that might result in unwanted actions, but it might come in handy while running unit tests. |
KODI_STUB_VERBOSE | If set to "1" will make SAKÉ a bit more verbose. |
KODI_STUB_RPC_RESPONSES | Specifies the folder from which to read JSON RPC responses. If you don't set this, you won't be able to use xbmc.executeJSONRPC |
KODI_STUB_INPUT | Specify the default input for the keyboard input |
In order to respond to the JSON RPC requests, issued via executeJSONRPC
, a folder with response files can be configured using the KODI_STUB_RPC_RESPONSES
environment variable (see above). This folder should contain response files with the following naming conversions:
<method_name>.json
So, for instance favourites.getfavourites.json
. Inside the file there is:
In the latter case, the content of a stub file could look like this:
[
{
"request": {
"params": {
"setting": "network.usehttpproxy"
},
"jsonrpc": "2.0",
"method": "Settings.GetSettingValue",
"id": 0
},
"response": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"value": false
}
}
},
{
"request": {
"params": {
"setting": "network.httpproxyusername"
},
"jsonrpc": "2.0",
"method": "Settings.GetSettingValue",
"id": 0
},
"response": {
"id": 5,
"jsonrpc": "2.0",
"result": {
"value": true
}
}
}
]
This stub file contains responses for the method Settings.GetSettingValue
for the setting network.usehttpproxy
and network.httpproxyusername
.
If no file with matching method name is found or the file does not contain the correct responses an 'OK' is returned:
{
"id": 1,
"jsonrpc": "2.0",
"result": "OK"
}
Just like most of the Kodi JSON RPC calls do.
FAQs
SAKÉ can help you to debug and develop Kodi Python add-ons
We found that sakee demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.