Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
839 stars 194 forks source link

Reinstalling a plugin doesn't work #5612

Open fuzyll opened 3 weeks ago

fuzyll commented 3 weeks ago

Version and Platform (required):

Bug Description: I clicked "Reinstall" on a plugin and don't have the ability to enable or uninstall, only install.

Clicking the only available button ("Install") multiple times leads to strange behavior where it will claim to be installing or disabling the plugin.

Restarting the application, the plugin is no longer installed at all.

This affects official and community plugins equally.

Steps To Reproduce:

  1. Pick an installed plugin within the Plugin Manager
  2. Click "Reinstall" on that plugin
  3. Observe that it is successfully installed, but now only has the option to Install (no Disable, Uninstall, Reinstall)
  4. Any interaction with the "Install" button will cycle between installing or disabling the plugin
  5. Restarting (regardless of whether you followed step 4 above) will result in no longer having the plugin installed

Expected Behavior: I expect to have the ability to enable, reinstall, or uninstall the plugin I just reinstalled after the install has completed. I also expect to have the plugin installed when I restart.

Screenshots/Video Recording:

image image

Additional Information: This appears to have been broken since at least the 3.5 stable (3.5.4526), not the more recent build as I had originally stated.

fuzyll commented 3 weeks ago

Updated this issue because it's worse than I had previously thought. Also updated Binary Ninja to make sure it would repro after the latest Plugin Manager change. It does.

fuzyll commented 2 weeks ago

Turns out this has been broken since before 3.5.4526 stable... Changing impact accordingly, since I appear to be the first person to have reported it in nearly a year.

xusheng6 commented 2 weeks ago

Turns out this has been broken since before 3.5.4526 stable... Changing impact accordingly, since I appear to be the first person to have reported it in nearly a year.

Haha you are not the first person to notice this. I have also ran into this but just let is slipped (I should not). Per my memory, it only happens when the plugin has some dependencies. Like if it is a simple Python script then it works fine