Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

USBToolBoxᵇᵉᵗᵃ

Making USB mapping simple(r)

The USBToolBox tool is a USB mapping tool supporting Windows and macOS. It allows for building a custom injector kext from Windows and macOS.

Features

  • Supports mapping from Windows and macOS
  • Can build a map using either the USBToolBox kext or native Apple kexts (AppleUSBHostMergeProperties)
  • Supports multiple ways of matching
  • Supports companion ports (on Windows)
  • Make educated guesses for port types (on Windows)

Supported Methods

From Windows

Windows 10 or 11 64-bit are recommended for the full feature set (companion port binding, port type guessing.). Windows 8 may work, Windows 7 and below will very likely crash. 32-bit is not supported, macOS needs 64-bit anyway.

Simply download the latest Windows.exe from releases. If Windows Defender/other antivirus complains, you can either whitelist the download or use Windows.zip, which doesn't have a self extractor (which is what most antiviruses seem to complain about).

From Windows PE

Yes this works lol. Some device names may not be as descriptive but if you really don't want to install Windows, you can create a Windows PE USB and hit Shift + F10 to open cmd, then run the program.

From macOS

macOS is not recommended for several reasons. You won't have features like guessing port types (as there simply isn't enough info for this) as well as binding companion ports (again, no info). However, there's also port limits to deal with, and in macOS 11.3, XhciPortLimit is broken, resulting in a lot more hoops to go through. If you are forced to use macOS, you should probably use USBMap instead, as it has code to handle the port limit.

If you still want to use USBToolBox on macOS, download macOS.zip from releases.

Usage

This is gonna be a very basic guide for now. A fully-fleshed guide will be released in the future.

  1. Download the appropriate download for your OS.
  2. Open and adjust settings if necessary.
  3. Select Discover Ports and wait for the listing to populate.
  4. Plug in a USB device into each port. Wait for the listing to show your USB device before unplugging it and plugging it into another port.
    • If on Windows, you only need to plug in 1 device to USB 3 ports (as companion detection should be working). If on macOS, you will have to plug in a USB 2 device and a USB 3 device into each USB 3 port.
    • For old computers with OHCI/UHCI and EHCI controllers, you will need to plug in a mouse/keyboard to map the USB 1.1 personalities, as most USB 2 devices will end on the USB 2 personality.
  5. Once mapping is done, go to the Select Ports screen.
  6. Select your ports and adjust port types as neccesary.
  7. Press K to build the kext!
  8. Add the resulting USB map to your EFI/OC/Kexts folder, and make sure to update your config.plist.
    • If building a map that uses the USBToolBox kext, make sure to grab the latest release of the kext too.
    • Make sure to remove UTBDefault.kext , if you have it.
  9. Reboot and you should have your USB map working!

Known Issues/FAQ

See the issues tab for known issues.

FAQ

  • Q: Why is some information missing?

    A: Make sure you have drivers installed for all your devices. On Windows, some information is missing if you don't have drivers installed, leading USBToolBox to report them as unknown.

  • Q: How do I report a bug?

    A: Please go to the new issue page, click on "Bug report", and read through the steps before filling them out. Please ensure that you respond to my inquiries as there's no other way I can fix bugs.

Credits

@CorpNewt for USBMap. This project was heavily inspired by USBMap (and some functions are from USBMap).

My testing team (you know who you are) for testing

About

the USBToolBox tool

Resources

Stars

1.4k stars

Watchers

29 watching

Forks

Releases

Contributors

Languages