# \[GSoC 2026\] Expanding the functionality of the Haiku Devices Application - Final Report

DevFeed: [\[GSoC 2026\] Expanding the functionality of the Haiku Devices Application - Final Report](<https://devfeed.tech/articles/gsoc-2026-expanding-the-functionality-of-the-haiku-devices-application-final-report-34778.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/aquamatic123/2026-08-21_gsoc_2026_expanding_the_functionality_of_the_haiku_devices_application_-_final_report/>)

Author: aquamatic123

Published: 2026-08-21T15:52:01Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [USB](<https://devfeed.tech/topics/usb.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [api](<https://devfeed.tech/tags/api.md>), [application](<https://devfeed.tech/tags/application.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [devices](<https://devfeed.tech/tags/devices.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [gsoc2026](<https://devfeed.tech/tags/gsoc2026.md>), [gui](<https://devfeed.tech/tags/gui.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [report](<https://devfeed.tech/tags/report.md>), [software](<https://devfeed.tech/tags/software.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

## AI overview

This final report describes a Google Summer of Code 2026 project that expanded Haiku's Devices application from a basic hardware list into a more capable management utility. The work added driver mapping, USB and HID descriptor inspection, packaged-driver blocking with safety checks, unit tests, alphabetical sorting, improved attribute organization, and persistent selection.

## Source excerpt

Hello everyone! As Google Summer of Code 2026 comes to a close, it's time to summarize the work I've done over the summer on expanding the functionality of the Haiku Devices application. Overview Haiku's Devices application previously provided a basic list of connected hardware, but lacked the features necessary to function as a true management utility. My project aimed to transform Devices into a more capable hardware manager, allowing users to view detailed technical specifications and perform administrative tasks directly from the GUI. Over the course of the summer, I focused on implementing new visualization features, improving the user experience, and pulling more detailed hardware information directly from the system. Completed Objectives & Work Accomplished Here is a breakdown of what was accomplished this summer: Driver Mapping: Integrated the GUI with the kernel structures to display the active driver module name and its absolute path (/dev). This involved extending the device_manager module by adding a new device attribute and being able to fill that attribute when possible. Extract USB descriptors: Enhanced the application's ability to inspect USB devices. By utilizing the BUSBDevice API, the app now builds a tree with all USB attributes descending the USB hierarchy. We first loop through the configurations, then the interfaces, and finally the endpoints. The app can also display HID descriptors. State Management (Packaged Driver Blocking): Added a new GUI button to disable or re-enable packaged drivers. This required implementing the backend logic to read, modify, and write to the system's Packages configuration file. I also added safety checks to prevent users from accidentally disabling drivers essential to the system, and added warnings to guide the user through the process. Unit Tests: Although not explicitly part of my initial proposal, I took the initiative to write unit tests for the application. This was a fantastic learning experience for unders