SHA-256 · capture = sourced7eb00c6837375ca1f74c95efc2cea78e02331f66e7111a36b383c3861912538
Verified hardware
Does the Fosi DS2 run bit-perfect on Android?
Yes. Meringo has captured bit-identical output from the Fosi DS2 twice: once at 24-bit / 96 kHz and once at CD-rate 16-bit / 44.1 kHz. Both SHA-256 hashes are published in full, and both are recomputable with ffmpeg, which is a tool we do not control.
The receipts
Two captures, one month apart, on two different builds. Both bit-identical.
SHA-256 · capture = sourcea8c143422d8b644569cc4a36ab54822b0dfd1a370327fa95d844d8f92195642d
The CD-rate capture is the one that matters
Capture 2 is the only entry in our whole registry taken at 44.1 kHz, and that makes it the most useful one we hold. A CD-rate file is exactly where Android's 48 kHz default does its quietest damage: 44.1 to 48 is a ratio of 147 to 160, so no sample survives the conversion untouched, and nothing on screen tells you it occurred.
The DS2 receipt says that arithmetic did not happen. The bytes on the wire were the bytes in the file, and the hash is there for anyone who wants to check the claim rather than believe it.
What “UAC2 high-speed async” means here
The DS2 enumerates as a USB Audio Class 2 device in high-speed asynchronous mode. The 24-bit receipt also records which alternate setting Meringo claimed on the audio-streaming interface: alt 2, the 24-bit lane.
What decides bit-perfect is simpler than either of those details. It is whether the bytes leaving the phone are the bytes that were in the file, and that is the only thing a receipt claims.
What we do not claim about this DAC
The DS2's USB descriptor advertises formats beyond what Meringo will engage. Meringo engages up to 24-bit by design, so the published DS2 receipts stop at 24/96 and 16/44.1, and we have not captured this DAC above that.
What a spec sheet supports and what we have verified are different claims. Only the second one gets printed here as proof, which is why this page names two rates and not the larger number on the box.
A hash also has a hard edge. It covers what Meringo put on the USB wire. Isochronous USB carries no delivery acknowledgement, so no software on any platform can prove what the DAC received — only what was put on the wire for it.
Why any of this needs proving
By default, Android resamples your music to 48 kHz. Plugging in a capable DAC does not by itself change that, and the frustrating part is that resampled audio still sounds like music. Nothing announces itself. Meringo takes the DAC off that path and hashes the bytes it actually shipped.
Either the captured bytes match the source or they do not. That is the entire test, and it is why we publish hashes instead of adjectives.
Check it yourself
Every entry in the registry is recomputable without Meringo running, using ffmpeg and
sha256sum. The method and a public-domain checker script are published at
meringo.app/verify, and that script shares no code with the app. If
your own DS2 capture disagrees with ours, send us the receipt: NOT BIT-IDENTICAL
and INCONCLUSIVE are both published verdicts, and every verdict is welcome.
Where Meringo is the wrong player
We hold receipts for three DACs today. If yours is not one of them, we do not know that it runs bit-perfect and we will not say that it does. There is no compatibility list assembled from spec sheets here, because a spec sheet describes what hardware can do and a receipt records what actually happened.
Meringo is also the wrong choice if you mainly stream from Spotify, Tidal or Qobuz. There is no native integration with commercial streaming, by design.