Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
com.github.oshi:oshi-core-shaded
Advanced tools
OSHI is a free JNA-based (native) Operating System and Hardware Information library for Java. It does not require the installation of any additional native libraries and aims to provide a cross-platform implementation to retrieve system information, such as OS version, processes, memory and CPU usage, disks and partitions, devices, sensors, etc.
Windows • Linux • macOS • Unix (AIX, FreeBSD, OpenBSD, Solaris)
Stable Release Version | Current Development Version | Dependencies |
---|---|---|
oshi-core-6.1.0 | oshi-core-6.1.1-SNAPSHOT | JNA • SLF4J |
Java 11 (JPMS) Version | Current Development Version |
---|---|
oshi-core-java11-6.1.0 | oshi-core-java11-6.1.1-SNAPSHOT |
Java 6 Version | Current Development Version |
---|---|
oshi-core-3.14.0 | None |
Include OSHI and its dependencies on your classpath. We strongly recommend you add OSHI as a dependency to your project dependency manager such as Maven or Gradle. You can find the appropriate syntax to include OSHI here.
Create a new instance of SystemInfo
Use the getters from SystemInfo
to access hardware or operating system components, such as:
SystemInfo si = new SystemInfo();
HardwareAbstractionLayer hal = si.getHardware();
CentralProcessor cpu = hal.getProcessor();
See the PERFORMANCE document for general CPU/Memory tradeoffs and specific Windows (WMI) recommendations depending upon your application.
See the FAQ document for common implementation and calculation questions.
Some settings are configurable in the oshi.properties
file, which may also be manipulated using the GlobalConfig
class. This should be done at startup, as configuration is not thread-safe and OSHI does not guarantee re-reading the configuration during operation.
The oshi-demo
artifact includes several proof-of-concept examples of using OSHI to obtain information, including a basic Swing GUI.
Note: OSHI uses the latest version of JNA.
If you experience a NoClassDefFoundError
or NoSuchMethodError
issues with JNA artifacts, you likely have
an older version of either jna
or jna-platform
in your classpath from a transitive dependency on another project.
Consider one or more of the following steps to resolve the conflict:
jna
and jna-platform
artifacts) in your pom.xml
as dependencies.jna.version
property to the latest JNA version.@dbwiddis
in issues or pull requests on your project site.oshi-demo
project, create an issue, or search on Stack Overflow using the oshi
tag, asking a new question if it hasn't been answered before.Available as part of the Tidelift Subscription
The maintainers of OSHI and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
OSHI provides output directly via Java methods for each of its interfaces. By periodically polling dynamic information (e.g., every second), users can calculate and track changes.
You can see more examples and run the SystemInfoTest and see the full output for your system by cloning the project and building it with Maven:
git clone https://github.com/oshi/oshi.git && cd oshi
./mvnw test-compile -pl oshi-core exec:java \
-Dexec.mainClass="oshi.SystemInfoTest" \
-Dexec.classpathScope="test"
In addition, the oshi-demo
project includes an OshiGui class implementing a basic Swing GUI offering suggestions for potential visualizations using OSHI in a UI, monitoring, or alerting application, as shown below. For a more advanced GUI based on this approach, see the MooInfo project.
General information about the operating system and computer system hardware:
By measuring ticks (user, nice, system, idle, iowait, and irq) between time intervals, percent usage can be calculated. Per-processor information is also provided.
Process information including CPU and memory per process is available.
Memory and swapfile information is available.
Statistics for the system battery are provided:
Power Sources:
Name: InternalBattery-0, Device Name: bq20z451,
RemainingCapacityPercent: 100.0%, Time Remaining: 5:42, Time Remaining Instant: 5:42,
Power Usage Rate: -16045.216mW, Voltage: 12.694V, Amperage: -1264.0mA,
Power OnLine: false, Charging: false, Discharging: true,
Capacity Units: MAH, Current Capacity: 7213, Max Capacity: 7315, Design Capacity: 7336,
Cycle Count: 6, Chemistry: LIon, Manufacture Date: 2019-06-11, Manufacturer: SMP,
SerialNumber: D869243A2U3J65JAB, Temperature: 30.46°C
The EDID for each Display is provided. This can be parsed with various utilities for detailed information. OSHI provides a summary of selected data.
Displays:
Display 0:
Manuf. ID=SAM, Product ID=2ad, Analog, Serial=HA19, ManufDate=3/2008, EDID v1.3
41 x 27 cm (16.1 x 10.6 in)
Preferred Timing: Clock 106MHz, Active Pixels 3840x2880
Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz
Monitor Name: SyncMaster
Serial Number: H9FQ345476
Display 1:
Manuf. ID=SAM, Product ID=226, Analog, Serial=HA19, ManufDate=4/2007, EDID v1.3
41 x 26 cm (16.1 x 10.2 in)
Preferred Timing: Clock 106MHz, Active Pixels 3840x2880
Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz
Monitor Name: SyncMaster
Serial Number: HMCP431880
Disks and usage (reads, writes, transfer times) are shown, and partitions can be mapped to filesystems.
Disks:
disk0: (model: SanDisk Ultra II 960GB - S/N: 161008800550) size: 960.2 GB, reads: 1053132 (23.0 GiB), writes: 243792 (11.1 GiB), xfer: 73424854 ms
|-- disk0s1: EFI (EFI System Partition) Maj:Min=1:1, size: 209.7 MB
|-- disk0s2: Macintosh HD (Macintosh SSD) Maj:Min=1:2, size: 959.3 GB @ /
disk1: (model: Disk Image - S/N: ) size: 960.0 GB, reads: 3678 (60.0 MiB), writes: 281 (8.6 MiB), xfer: 213627 ms
|-- disk1s1: EFI (EFI System Partition) Maj:Min=1:4, size: 209.7 MB
|-- disk1s2: Dropbox (disk image) Maj:Min=1:5, size: 959.7 GB @ /Volumes/Dropbox
Sensor readings are available for some hardware (see notes in the API).
Sensors:
CPU Temperature: 69.8°C
Fan Speeds:[4685, 4687]
CPU Voltage: 3.9V
Attached USB devices can be listed:
USB Devices:
AppleUSBEHCI
|-- Root Hub Simulation Simulation (Apple Inc.)
|-- IOUSBHostDevice
|-- IR Receiver (Apple Computer, Inc.)
|-- USB Receiver (Logitech)
AppleUSBEHCI
|-- Root Hub Simulation Simulation (Apple Inc.)
|-- FaceTime HD Camera (Built-in) (Apple Inc.) [s/n: DJHB1V077FDH5HL0]
|-- IOUSBHostDevice
|-- Apple Internal Keyboard / Trackpad (Apple Inc.)
|-- BRCM2070 Hub (Apple Inc.)
|-- Bluetooth USB Host Controller (Apple Inc.)
AppleUSBEHCI
|-- Root Hub Simulation Simulation (Apple Inc.)
|-- IOUSBHostDevice
|-- Apple Thunderbolt Display (Apple Inc.) [s/n: 162C0C25]
|-- Display Audio (Apple Inc.) [s/n: 162C0C25]
|-- FaceTime HD Camera (Display) (Apple Inc.) [s/n: CCGCAN000TDJ7DFX]
|-- USB2.0 Hub
|-- ANT USBStick2 (Dynastream Innovations) [s/n: 051]
|-- Fitbit Base Station (Fitbit Inc.)
OSHI originated as a platform-independent library that did not require additional software and had a license compatible with both open source and commercial products. We have developed a strong core of features on major Operating Systems, but we would love for you to help by:
oshi-demo
artifact is a place to host proof-of-concept ideas. Want to help new users follow in your footsteps?Many thanks to the following companies for providing free support of Open Source projects including OSHI:
This project is licensed under the MIT License.
FAQs
Unknown package
We found that com.github.oshi:oshi-core-shaded demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.