Free & Open Source

Is your MacBook
battery real?

Battery Guardian is a forensic tool for macOS that detects counterfeit, reprogrammed, and spoofed MacBook batteries. Results appear instantly.

View on GitHub →
Battery Guardian v1.3.2
Battery Guardian
v1.3.2 · MacBook Pro (M2 Pro) · SN: C02XK1J...
Export Logs
Read Guide
About
Automate Daily Scans
Run silently in the background
Days:
7
Time:
08:00 PM
Enable
85
Health Score
NO ANOMALIES
Cycles
342
Health
91%
Entropy
47 mAh
Write Ratio
13.8
Operating Time
3y 7m
Temp
43°C
Physics Check: Passed
Cells show healthy natural variance (47 mAh). Values independently refined by TI Impedance Track™.
Clock Integrity: Verified
TemperatureSamples and TotalOperatingTime agree within 0.9%. That's ~342 days of confirmed operation.
Calibration Timeline: Consistent
Last calibration at cycle 126, current cycle 342. Timeline is physically valid.

Counterfeit batteries
are everywhere

Aftermarket MacBook batteries often contain reprogrammed Texas Instruments gas gauge chips that lie about health, cycle count, and age. Your Mac has no way to know.

Reset Cycle Counters
Used batteries get chip-wiped to show zero cycles. A three-year-old battery looks brand new in System Settings.
Fake 100% Health
Cell capacity values are hard-coded to match the design specification: perfect health, forever, regardless of reality.
Frozen Clocks
The internal operating time counter is zeroed or frozen so there's no trace of how long the battery has actually been in use.
Impossible Calibrations
Spoofers reset cycle counters after calibration runs. The chip's internal records then show a calibration happening in the future, which is a mathematical impossibility on genuine hardware.

In January 2026, I replaced the battery on my MacBook at Computer Village in Lagos. I checked everything before paying: battery health was 100%, cycle count was 0. I even opened CoconutBattery to check the manufacturing date. 19 days old. Everything looked perfect. I paid and left.

But something was wrong. My MacBook used to last 18 hours on a full charge. This battery barely lasted 3. I opened CoconutBattery a week later: still 19 days old. Another week passed: still 19 days old. Every single day, the date was silently shifting forward to stay exactly 19 days in the past.

I pulled the raw chip data from the terminal. TotalOperatingTime read 458 hours, exactly 19 days, and it never moved. Not by a single hour. The battery had been reprogrammed to look brand new. It worked. It just was not what I paid for.

That sent me deep into the Texas Instruments documentation for how these chips are actually programmed. I learned what every register means, what values are physically possible, and what combinations are mathematical impossibilities. I built Battery Guardian to automatically detect those anomalies — the ones hiding in plain sight in the raw chip data.

Nine forensic signals,
applied by gauge profile

Battery Guardian evaluates nine possible signals, but only documented and validated signals for the detected gauge profile can affect a verdict.

Zero Entropy Test

Reviews per-cell Qmax consistency. This remains observation-only because identical values are not a universal authenticity failure across gauges and learning states.

Observation only
Clock Integrity

Compares mapped lifetime counters when the selected profile exposes both fields. Large contradictions are evidence of inconsistent history, not manufacturer proof.

Profile-supported contradiction
Calibration Paradox

Checks whether the mapped last-calibration cycle exceeds the current cycle counter. The signal is active only where both fields share documented semantics.

Catches cycle counter resets
Chip Origin

Reviews lifetime pack voltage against model-specific topology. The old global 9,000mV rule is disabled until Mac hardware profiles are validated.

Pending hardware profile
Frozen Clock

Compares compatible scans for historical continuity. Wall time alone does not prove the gauge was powered, so this signal is currently observation-only.

Observation only
Lazy Cloning

Observes an exact Qmax/design-capacity match. TI learning conditions make a fixed cycle threshold unsuitable as a universal classifier.

Observation only
DOD0 Calibration

Reviews per-cell DOD0 records using the selected profile. Identical ordinary values are allowed; model-specific sentinel patterns can contribute to a combined reset signature.

Model-aware evidence
Internal Resistance

Compares learned chemical capacity with usable capacity. Because the relationship is state-dependent, the current policy records it without classifying the battery.

Observation only
DataFlash Write History

Uses the exposed write counter only as part of a documented profile-specific combination. A zero or high count alone is not an authenticity verdict.

Combined reset evidence

Verdict in Seconds

No account and no internet connection required for scans. Scan records stay on your Mac.

01
Open the app

Move Battery Guardian to Applications and open it like any other native Mac app. No background service is installed.

02
Scan runs automatically

The moment Battery Guardian opens, it reads local battery telemetry and applies the checks supported by the detected gauge profile.

03
Get your verdict

Receive NO ANOMALIES, SUSPICIOUS, SPOOFED, INSUFFICIENT EVIDENCE, or ERROR with a detailed evidence breakdown.

Built on real chip data

9
Forensic signals
~1s
Scan duration
0
Scan records sent by the app
100
Point health score

Free. Forever.

Battery Guardian

Download, unzip, and drag Battery Guardian to your Applications folder. That's it.

Apple Silicon Chip Intel Chip — Help us launch →
macOS 11+ Apple Silicon (Intel coming soon) MIT License App sends no scan telemetry

Privacy note: the desktop app keeps scan records on your Mac. This website uses Cloudflare Web Analytics, and the download service records aggregate country, platform, and referrer counts.

How to Install

1
Download & Unzip
Click download above. macOS will automatically unzip the file.
2
Drag to Applications
Drag Battery Guardian to your Applications folder.
Scan your battery
Double-click to open. If macOS blocks the first launch, right-click the app and choose Open. No account or internet is required.