-
Notifications
You must be signed in to change notification settings - Fork 675
GUID database storage rework #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This is by design and comes from the fact that UEFITool aims to be a fully-standalone application that requires no supplemental files or installation. This means a built-in GUID database is a must.
It is unclear what kind of benefit a GUID database support will provide to UEFIFind, but I agree that adding it to UEFIExtract makes sense.
Vendor-specific variants should be handled by multiple files, different names is not a problem (use the most generic one).
Storing the currently-used DB in settings makes sense, but we also need some indication of what DB is used right now.
It's unclear what you mean here, please elaborate. |
They are a problem when you need to merge two databases, as you do not know which previous names were already used. It is also a problem when you need to look the filename up in the codebase, as there may be completely different and unrelated modules :x All in all, this one is not a problem of UEFITool, as we want a separate database, but I believe it should be made aware of.
Could we add some logging to the output window?
Currently, when the loaded firmware does not contain the file name in its UI section, the files may still get identified based on the GUID database. However, the user cannot find the files by these identification names (e.g. DxeCore) with any means of search, as the search only looks for data in ROM contents and is unaware of GUID names assigned to the files. I believe that a separate radio button entry should be added to look for GUID database assigned names entries in the search panel. |
Thats the main reason why it should be somewhere else.
Yes, probably to a new "Status" tab where all info on current run, currently opened file, preformed actions, etc. can be shown.
Please provide a mockup of that UI. |
I would do it like this:
|
There are numerous problems with the way we handle GUID identification in the firmwares:
I believe this problem should be addressed in the following approach:
Make UEFITool export its database on mismatch at launch to
<settings>/default_guids.csv
.Make UEFITool use
<settings>/user_guids.csv
database by default and fallback to<settings>/default_guids.csv
if it is missing.Add "Install/Uninstall GUID database" menu entries to UEFITool, which will create/remove
<settings>/default_guids.csv
based on user supplied.csv
file.Make
UEFIFind
andUEFIReplace
use first found database from the list:./guids.csv
,<settings>/user_guids.csv
,<settings>/default_guids.csv
.Create a separate repository with GUID database in some different format, that will support exporting to
.csv
UEFITool understands. I am currently thinking of some yaml files located at<Vendor>/<Type>.yaml
. For example, we could haveTianocore/Files.yaml
:Remove all GUIDs from UEFITool and pick either of the three:
Make UEFITool export all discovered GUID names instead of just not existent ones into .csv. Previously it was done to deal with duplicates, but at this step I believe it should be done at GUID database import stage with different names accounted in the yaml files.
Fix search of names from the database :)
Notes:
<settings
should expand in platform-specific way. I expect Linux to get~/.config/LongSoft
andmacOS
to get~/Library/Application Support/LongSoft
. I personally have no idea what Windows prefers, but likely%AppData%/Roaming/LongSoft
..csv
files I believe the first name should be chosen.Files.yaml
but also protocols and other guids present in files themselves. That will be useful for clever searching.@NikolajSchlej, will be great if you could handle some parts of this.
The text was updated successfully, but these errors were encountered: