Skip to content

velickovicdj/O3C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


O3C
O3C - OpenCore Config Checker

O3C validates OpenCore config.plist files by marking individual properties of the config.plist with colored flags.

How it works

When the user uploads their config.plist file, O3C uses the plistParser module to parse the data from the config.plist file. The plistParser module extracts the relevant data from the config.plist file and returns it as a JavaScript object.

plistParser also checks the validity of certain properties in the config.plist file by comparing them with the values listed in <version>.plist file, where <version> refers to the specific OpenCore version being used. If a property is missing from the config.plist file, plistParser adds it to an array of missing properties, which is returned to Viewer.jsx and rendered on top of the validation results.

The <version>.plist file has custom tags, which can be a sequence of possible CPU arch values concatenated. For example:

<key>DummyPowerManagement</key>
<false/>
<amdfxamdzen>
    <true/>
</amdfxamdzen>

Here if the selected CPU arch doesn't match amdfx or amdzen in <amdfxamdzen>, plistParser skips this tag, and the previous one is evaluated (<false/>).

Custom tags and Properties

In addition to the standard properties that are found in the config.plist, O3C supports custom tags and properties to provide additional flexibility. These tags and properties are defined in the comments.plist and <version>.plist files located in the public directory, where <version> refers to the specific OpenCore version being used.

Some of the custom tags that are used by O3C include:

  • bold: Used to display text in bold font
  • link: Used to display text as a hyperlink
  • intelprd: Used to display text for a specific CPU architecture

Custom properties can hold an array of possible values (mostly string values) so that the user hasn't set them to an invalid value. For example:

<key>SystemMemoryStatus</key>
<array>
    <string>Auto</string>
    <string>Upgradable</string>
    <string>Soldered</string>
</array>

Custom tags are used in the comments.plist to provide additional customization options but they can also be used conditionally, based on the selected CPU architecture and property value. For example:

<key>AppleXcpmCfgLock</key>
<dict>
    <key status="correct">YES</key>
    <string>If CFG-Lock is disabled in BIOS, you can disable this quirk.</string>
    <intelprd status="warning">
        <string>CFG-Lock is not present on Intel Penryn, so there's no need for this quirk to be enabled.</string>
    </intelprd>
</dict>

In this example, O3C will only show comments that apply to the selected architecture and only if the property value is set to "YES" (true).

Setup

To run O3C on your machine, follow these steps:

  1. Install Node.js if you haven't already.
  2. Clone this repository by running git clone https://github.com/velickovicdj/O3C.git in your terminal.
  3. Navigate to the root directory of the cloned repository.
  4. Run npm install to install the required dependencies.
  5. Run npm start to start the app in development mode.
  6. Open http://localhost:3000 in your browser to view the app.

To build the app, simply run npm build in your terminal.

Contributing and Feedback

If you encounter any issues with O3C or have suggestions for improving it, please feel free to submit an issue on GitHub or contact me directly at djolevelicko@gmail.com.

Your feedback is greatly appreciated and helps make O3C better for everyone. Contributions, such as code improvements or new features, are also welcomed and greatly appreciated.

Thank you for using O3C!

About

OpenCore Config Checker (O3C) is a tool for validating OpenCore config.plist files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published