Post

Replies

Boosts

Views

Activity

Reply to Sending NVMe Admin Commands
Hi DTS Engineer, Thank you for your reply and for providing information that has helped shorten my research in locating the Apple documentation for sending NVMe commands via the API. I have a couple of questions: Once we request access from Apple, will the API become "private" and used exclusively by our company? Besides using the API, is there any other way to send low-level NVMe Admin Commands directly to Apple storage devices (HDD, SSD, and onboard SSD), or are there alternative methods available? I appreciate your help. Thanks! Regards, Winson
Topic: App & System Services SubTopic: Core OS Tags:
Feb ’25
Reply to Sending NVMe Admin Commands
Hi ssmith_c / Apple Engineer, Thank you for your reply. I am entirely new to Apple development and currently uncertain about where to start coding. I’ve successfully completed a Data Wipe application for Linux and Windows platforms, and I wanted to expand to macOS, as I find Apple products more secure and challenging to learn the library. My goal is not to modify Apple drivers but simply to perform a full data wipe to ensure no customer data remains. This requires sending specific commands such as Write, Format NVM, or Sanitize to the storage device. Could you guide me on where to find the method selectors or provide any pointers to start? The purpose of this project is to wipe onboard storage (specifically NVMe SSDs) on MacBooks before sending them for recycling. While I understand that Apple provides an Erase utility to delete media, we need to ensure compliance with specific standards for data sanitization. Questions: Apple Erase Utility Standards: Which data-wiping standard does the default Apple Erase utility follow? Is it NIST, IEEE, or DoD? Sending Commands to Apple NVMe SSDs: Is it possible to send NVMe Admin Commands or NVM Commands (e.g., Sanitize, Format NVM) to onboard Apple NVMe SSDs? If this is not possible, what is the best recommend to wipe the data? However, utilities like BitRaser seem to perform this wipe in recovery mode. Not sure how they achieve this? Development Environment: I am using Xcode to develop a command-line application. Are there any official guides or resources you recommend for this? IOKit and Low-Level Commands: Can we use IOKit to send low-level commands directly to the NVMe device? If not, what alternative APIs or frameworks should I explore? Running Scripts in Recovery Mode: How can I run a data erase script on the physical drive (e.g., disk0)? It need to be in recovery mode, right? We’ve tested with BitRaser, and it successfully performs a data wipe even with encryption in place, as you mentioned. So, i think drive not encrypt and accept erase/sanitize command. We aim to develop our own application, similar to what we’ve achieved on Linux and Windows platforms, to meet our customers' requirements for NIST (Purge or Clear) and IEEE (Purge or Clear) data sanitization standards. I hope someone with expertise in this area can guide me in the right direction. We already have an enterprise developer account under our company, and we pay $299 annually for it. I would greatly appreciate your support to help me complete this project. Thank you so much for your time and assistance. Best regards, Winson
Topic: App & System Services SubTopic: Core OS Tags:
Jan ’25