pluginmanager module¶
Class |
Description |
---|---|
|
|
|
|
|
- class RepoPlugin[source]
Bases:
object
RepoPlugin
is mostly read-only, however you can install/uninstall enable/disable plugins. RepoPlugins are created by parsing the plugins.json in a plugin repository.- __init__(handle: LP_BNRepoPlugin)[source]
- Parameters:
handle (LP_BNRepoPlugin) –
- enable(force: bool = False) bool [source]
Enable this plugin, optionally trying to force it. Force loading a plugin with ignore platform and api constraints. (e.g. The plugin author says the plugin will only work on Linux but you’d like to attempt to load it on macOS)
- property being_deleted: bool
Boolean status indicating that the plugin is being deleted
- property being_updated: bool
Boolean status indicating that the plugin is being updated
- property delete_pending: bool
Boolean status indicating that the plugin will be deleted after the next restart
- property dependencies: str
Dependencies required for installing this plugin
- property dependencies_being_installed: bool
Boolean status indicating that the plugin’s dependencies are currently being installed
- property disable_pending: bool
Boolean status indicating that the plugin will be disabled after the next restart
- property enabled: bool
Boolean True if the plugin is currently enabled, False otherwise
- property installed: bool
Boolean True if the plugin is installed, False otherwise
- property last_update: date
Returns a datetime object representing the plugins last update
- property maximum_version_info: CoreVersionInfo
Maximum version info the plugin will support
- minimum_version
Minimum version the plugin was tested on
Deprecated since version 4.0.5366: Use
minimum_version_info
instead.
- property minimum_version_info: CoreVersionInfo
Minimum version info the plugin was tested on
- property name: str
String name of the plugin
- property path: str
Relative path from the base of the repository to the actual plugin
- property plugin_types: List[PluginType]
List of PluginType enumeration objects indicating the plugin type(s)
- property project_data: Dict
Gets a json object of the project data field
- property running: bool
Boolean status indicating that the plugin is currently running
- property subdir: str
Optional sub-directory the plugin code lives in as a relative path from the plugin root
- property update_available: bool
Boolean status indicating that the plugin has updates available
- property update_pending: bool
Boolean status indicating that the plugin has updates will be installed after the next restart
- class Repository[source]
Bases:
object
Repository
is a read-only class. Use RepositoryManager to Enable/Disable/Install/Uninstall plugins.- __init__(handle: LP_BNRepository) None [source]
- Parameters:
handle (LP_BNRepository) –
- Return type:
None
- property full_path: str
String full path the repository
- property path: str
String local path to store the given plugin repository
- property plugins: List[RepoPlugin]
List of RepoPlugin objects contained within this repository
- property url: str
String URL of the git repository where the plugin repository’s are stored
- class RepositoryManager[source]
Bases:
object
RepositoryManager
Keeps track of all the repositories and keeps the enabled_plugins.json file coherent with the plugins that are installed/uninstalled enabled/disabled- __init__()[source]
- add_repository(url: str | None = None, repopath: str | None = None) bool [source]
add_repository
adds a new plugin repository for the manager to track.To remove a repository, restart Binary Ninja (and don’t re-add the repository!). File artifacts will remain on disk under repositories/ file in the User Folder.
Before you can query plugin metadata from a repository, you need to call
check_for_updates
.- Parameters:
- Returns:
Boolean value True if the repository was successfully added, False otherwise.
- Return type:
Boolean
- Example:
>>> mgr = RepositoryManager() >>> mgr.add_repository("https://raw.githubusercontent.com/Vector35/community-plugins/master/plugins.json", "community") True >>> mgr.check_for_updates() >>>
- property default_repository: Repository
Gets the default Repository
- property plugins: Dict[str, List[RepoPlugin]]
List of all RepoPlugins in each repository
- property repositories: List[Repository]
List of Repository objects being managed
RepoPlugin¶
- class RepoPlugin[source]¶
Bases:
object
RepoPlugin
is mostly read-only, however you can install/uninstall enable/disable plugins. RepoPlugins are created by parsing the plugins.json in a plugin repository.- enable(force: bool = False) bool [source]¶
Enable this plugin, optionally trying to force it. Force loading a plugin with ignore platform and api constraints. (e.g. The plugin author says the plugin will only work on Linux but you’d like to attempt to load it on macOS)
- property delete_pending: bool¶
Boolean status indicating that the plugin will be deleted after the next restart
- property dependencies_being_installed: bool¶
Boolean status indicating that the plugin’s dependencies are currently being installed
- property disable_pending: bool¶
Boolean status indicating that the plugin will be disabled after the next restart
- property maximum_version_info: CoreVersionInfo¶
Maximum version info the plugin will support
- minimum_version¶
Minimum version the plugin was tested on
Deprecated since version 4.0.5366: Use
minimum_version_info
instead.
- property minimum_version_info: CoreVersionInfo¶
Minimum version info the plugin was tested on
- property plugin_types: List[PluginType]¶
List of PluginType enumeration objects indicating the plugin type(s)
- property subdir: str¶
Optional sub-directory the plugin code lives in as a relative path from the plugin root
Repository¶
- class Repository[source]¶
Bases:
object
Repository
is a read-only class. Use RepositoryManager to Enable/Disable/Install/Uninstall plugins.- __init__(handle: LP_BNRepository) None [source]¶
- Parameters:
handle (LP_BNRepository) –
- Return type:
None
- property plugins: List[RepoPlugin]¶
List of RepoPlugin objects contained within this repository
RepositoryManager¶
- class RepositoryManager[source]¶
Bases:
object
RepositoryManager
Keeps track of all the repositories and keeps the enabled_plugins.json file coherent with the plugins that are installed/uninstalled enabled/disabled- add_repository(url: str | None = None, repopath: str | None = None) bool [source]¶
add_repository
adds a new plugin repository for the manager to track.To remove a repository, restart Binary Ninja (and don’t re-add the repository!). File artifacts will remain on disk under repositories/ file in the User Folder.
Before you can query plugin metadata from a repository, you need to call
check_for_updates
.- Parameters:
- Returns:
Boolean value True if the repository was successfully added, False otherwise.
- Return type:
Boolean
- Example:
>>> mgr = RepositoryManager() >>> mgr.add_repository("https://raw.githubusercontent.com/Vector35/community-plugins/master/plugins.json", "community") True >>> mgr.check_for_updates() >>>
- check_for_updates() bool [source]¶
Check for updates for all managed Repository objects
- Return type:
- property default_repository: Repository¶
Gets the default Repository
- property plugins: Dict[str, List[RepoPlugin]]¶
List of all RepoPlugins in each repository
- property repositories: List[Repository]¶
List of Repository objects being managed