How to find your machine: Apple menu → About This Mac → More Info shows the marketing name. For the precise Model Identifier, open Terminal and run
sysctl hw.model. The A-number (model number) is engraved on the bottom of the chassis. EMC numbers are next to the regulatory marks.
| Marketing Name ▾ | Year | Model Identifier | Model Number | CPU | RAM | Storage | Display | Ports | Battery (Wh / max cycles) |
|---|
Terminal commands for identification
Run these in Terminal.app (
/Applications/Utilities/Terminal.app). Output examples are from a 2021 MacBook Pro 14" (M1 Pro).Model & serial
sysctl hw.modelModel Identifier — match this against the Model Identifier column above.
hw.model: MacBookPro18,3
system_profiler SPHardwareDataTypeOne-shot dump: model name, identifier, chip, cores, memory, serial, hardware UUID, and provisioning UDID. The single most useful command on this page.
ioreg -l | grep -i platformserialnumberSerial number, returned as a full
"IOPlatformSerialNumber" = "…" line. The serial is also shown in the system_profiler output above, so you typically only need one of the two.CPU & architecture
sysctl machdep.cpu.brand_stringCPU model string. On Intel:
Intel(R) Core(TM) i7-9750H…. On Apple Silicon: Apple M1 Pro / M2 Max etc.sysctl hw.ncpuTotal logical cores. For the P/E split on Apple Silicon, just read the Total Number of Cores line in the
system_profiler SPHardwareDataType output — it's spelled out (e.g. "10 (8 performance and 2 efficiency)").uname -mArchitecture:
arm64 = Apple Silicon, x86_64 = Intel.Memory
sysctl hw.memsizeTotal RAM in bytes. Divide by 1073741824 for GB.
hw.memsize: 17179869184 (16 GB)
system_profiler SPMemoryDataTypeRAM modules, speed, type (DDR4/LPDDR5/unified), and ECC status. On Apple Silicon, reports memory as on-chip (unified, not user-replaceable).
Storage
diskutil info /Boot volume report — scan the output for Disk Size, Protocol, and SMART Status. Covers most of what you'd want from
diskutil.diskutil listAll disks and partitions. Useful for confirming the internal SSD is the only fixed disk and there's no leftover external volume mounted.
system_profiler SPNVMeDataTypeSSD model, firmware, capacity, and TRIM status. Apple Silicon and modern Intel SSDs all show here.
Battery health
system_profiler SPPowerDataTypeBattery report. Scan the output for Cycle Count, Condition (Normal / Service Recommended / Service Battery), and Maximum Capacity. Compare cycle count to the rated max in the Models tab's battery column.
Cycle Count: 247 · Condition: Normal · Maximum Capacity: 92%
pmset -g battCurrent charge percentage, charging/discharging state, and time-to-full or time-to-empty estimate. Quick way to confirm the unit charges.
Resale clearance checks
system_profiler SPHardwareDataTypeActivation Lock — the most important check. Look for the Activation Lock Status line in the output. Enabled means the unit is essentially bricked for resale until the previous owner signs out of iCloud and removes the device from Find My.
Activation Lock Status: Disabled
fdesetup statusFileVault state. Should read Off on a wiped unit — otherwise the new owner inherits an encrypted disk they can't unlock.
FileVault is Off.
sudo profiles status -type enrollmentMDM / Apple Business Manager enrollment. If Enrolled via DEP: Yes the Mac will re-enroll into a corporate MDM the moment it hits the internet — unsellable until removed from the original ABM/ASM org. Critical to catch before listing.
Enrolled via DEP: No · MDM enrollments: None
csrutil statusSystem Integrity Protection. Should be enabled on a properly reset Mac. Disabled means the previous owner was running developer-level tooling; not a deal-breaker but worth noting.
dscl . list /UsersUser accounts. Long list — scroll past the entries beginning with
_ and the system accounts (daemon, nobody, root); what remains should be a single admin account on a properly wiped Mac. Multiple human names mean it wasn't erased.scutil --get ComputerNameComputer name. A properly wiped Mac defaults to the model name (e.g.
MacBook Pro). Personal names ("Sarah's MacBook Pro") mean the prior account wasn't removed.Hardware diagnostics
diskutil info disk0SSD health. Look for the SMART Status line — Verified is healthy, Failing means refurb only. Best on Intel + T2 Macs; Apple Silicon SSDs report TRIM rather than SMART.
ls /Library/Logs/DiagnosticReportsRecent kernel panics. Look for files ending in
.panic — an empty list (or just .ips files) is the goal. Multiple panics suggest failing RAM, a flaky board, or thermal issues.softwareupdate --listPending updates / latest supported macOS. Confirms the unit can install the current OS — a key data point when grading older Macs that may be EOL.
system_profiler SPCameraDataTypeFaceTime camera enumeration. A missing camera entry is a strong signal of a board-level fault or aftermarket repair. Run
SPAudioDataType for built-in mic/speakers.system_profiler SPAirPortDataTypeWi-Fi module details. Look for Card Type, Firmware Version, and Country Code. Confirms the wireless card is recognized — a frequent failure point on older units.
system_profiler SPThunderboltDataTypeThunderbolt / USB-C controllers. Lists each port and what's plugged in — quick way to verify all ports are alive without dock testing.
Quick grading workflow
Five short commands, run in order, fill out a complete intake/grading sheet. None require copy-paste.
system_profiler SPHardwareDataType1. Model, identifier, chip, cores, RAM, serial, and Activation Lock status — all in one readable block.
system_profiler SPPowerDataType2. Battery cycle count, condition, and maximum capacity.
diskutil info /3. Boot disk size and SMART status.
softwareupdate --list4. Confirms the unit can still take the current macOS — affects resale value on older hardware.
sudo sysdiagnose -f ~/Desktop5. Optional but recommended on B-grade or below: drops a full
.tar.gz diagnostic bundle on the Desktop. Paper trail for warranty disputes.Display, graphics, OS
system_profiler SPDisplaysDataTypeBuilt-in display resolution, refresh rate, color profile, plus all attached external displays and GPU info.
sw_versmacOS product name, version, and build number — useful when correlating model age with the latest supported macOS.
ProductVersion: 15.4 · BuildVersion: 24E5238b
RAM — hw.memsize values
Match the number returned by
sysctl hw.memsize to the RAM size.| hw.memsize | Approx GB |
|---|