pluginmanager module — Binary Ninja API Documentation v5.2
Class |
Description |
|---|---|
|
|
|
|
|
RepoPlugin¶
- class RepoPlugin[source]¶
Bases:
objectRepoPluginis 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)
String of the plugin author
String URL of the plugin author’s url
- 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_infoinstead.
- 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:
objectRepositoryis 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:
objectRepositoryManagerKeeps 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_repositoryadds 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