The DACs still sing. The software died in January 2021. HAP-Revival is the second half of the story Sony stopped telling.
Keeping the Sony HAP-Z1ES and HAP-S1 alive β for the music, not the plumbing.
The hardware is a 2014 audiophile masterpiece that still measures and sounds superb. The software rotted: Sony shipped one last firmware, walked away, and never looked back. HAP-Revival rebuilds the parts it abandoned β one piece you can use today β and reverse-engineers the rest toward a modern, open OS.
π’ New here, or not a programmer? β Start Here β the 5-minute friendly guide What this machine is, what you can do today, and how deep you want to go. No jargon. The rest of this page is the technical side.
| Tool | What it does | Platform |
|---|---|---|
| π΅ HAP Sync | Copy music to the HAP in one click β auto-finds the device, remembers your folders, skips what the HAP can't play | Windows β download .exe |
| π Web UI | Browser remote: now-playing, play / pause / seek, sound settings, cover art | Any browser |
| π± Control app | The web UI installed to your phone's home screen β own icon, full-screen, no App Store | iOS Β· iPadOS Β· Android β guide |
| π Library browser & audit | Browse and health-check the on-disk catalog offline (formats, hi-res mix, duplicates, missing art) | Any OS |
| π Python client / CLI | Scriptable control of every mapped API method, stdlib-only | Any OS |
Every interface ships in 6 languages (EN Β· FR Β· JA Β· DE Β· ES Β· IT) and switches live. Planned: custom firmware with hi-res streaming (Tidal Β· Qobuz Β· Roon Β· AirPlay) and a native iOS app β see the roadmap.
Sony's only supported transfer path is an SMBv1 share that modern Windows and macOS fight
you over. HAP Sync does it properly β one self-contained .exe, no install:
- Auto-detects the HAP on your network β no IP to hunt down.
- Speaks SMB1 directly (via
pysmb) β you never enable Windows' insecure SMB1 client. - Two folders β both shares (internal disk + USB), folders remembered between runs.
- Skips the junk (
Thumbs.db,.DS_Store,.ffs_tmp, AppleDouble) that becomes ghost tracks, and formats the HAP can't play. - Incremental & fast β only changed files, remote index cached, WoL to wake a sleeping HAP, auto-reindex after.
- Fix Windows access button repairs the exact settings Windows updates keep breaking, in one click.
# Run from source (Python 3.10+) | # β¦or build the standalone .exe (no Python to run it)
pip install pysmb | powershell -ExecutionPolicy Bypass -File tools/build_gui.ps1
python tools/hap_gui.py |Prefer scripting it? The same engine ships as a CLI β see tools/hap_sync.py and the music-sync guide. Β· First .exe launch: SmartScreen β More info β Run anyway (not code-signed yet). Background on the SMB mess: docs/04-smb.md.
You need a HAP-Z1ES or HAP-S1 on your LAN and Python 3.10+. No HAP? Use the built-in mock device.
git clone https://github.com/Guillain-RDCDE/HAP-Revival.git && cd HAP-Revival
python tools/discover.py # find your HAP automatically (SSDP)
python tools/webui.py <hap-ip> # web UI β http://localhost:8080
python tools/hap_client.py <hap-ip> now-playing # or the CLI
python tools/webui.py --demo # no hardware: drive the web UI off a fake HAPNothing in this UI can damage the device. Reads are pure, playback is bounded, standby confirms before sending. The whole client is one stdlib-only file β readable in an afternoon.
Put a 24/96 FLAC on a HAP-Z1ES, sit down, and the room changes. There's a stillness around the instruments; cellos have weight, voices have a body, you can hear the space the recording was made in. This is what audiophile source hardware is supposed to do β and what most modern streamers, however clever, still don't.
The HAP-Z1ES (2014) does it with a chain Sony's "ES" engineers built to last: dual Burr-Brown PCM1795 DACs, an Analog Devices ADSP-21488 SHARC DSP, a custom Sony FPGA on the clock domain, an isolated linear PSU, a 14 kg chassis. A decade on, it still measures and sounds outstanding. What didn't last is the software:
- still SMBv1 for transfers (broken on modern macOS, off by default on Windows),
- Spotify only in standard resolution β on a deck designed for hi-res,
- no Tidal, Qobuz, Roon, or AirPlay 2 β nothing added since 2016,
- an iOS remote untouched since 2022 that may vanish from the App Store any day,
- a Linux 3.0.35 kernel with OpenWrt-era userland.
The hardware deserves better. This is the open project to give it better.
I bought a HAP-Z1ES years ago because it sounded right, and it still does. Watching Sony abandon software this good felt like watching a beautiful instrument get locked in a cupboard. This repo is the lockpick. β Guillain
Pre-alpha β research & reverse-engineering, and unapologetically a music project pretending to be a software project. Everything in this repo is network-passive and read-only; nothing here will brick your device.
- β Mapped the network API (ScalarWebAPI on port 60200) and live-validated ~30 methods.
- β
Decompiled Sony's
HDDAudioRemoteAndroid app β the first public decompile of this client. - β Read the internal disk: it holds no OS β just a SQLite catalog + your music. Full schema in hand.
- β Shipped the usable tools above (Web UI, CLI, HAP Sync, library browser/audit, demo mode).
- β³ Heading for the UART console (i.MX6 UART1,
ttymxc0 @ 115200) for a root shell + NAND dump β firmware 19404R is OTA-only, so the OS must be dumped from the device, not downloaded.
| Phase | Goal | Device risk |
|---|---|---|
| 1 β Reverse engineering (current) | Decompile, read the disk, read Sony's GPL kernel sources, locate UART | None |
| 2 β Control app | Modern web / iOS app over the existing API, no firmware change | None |
| 3 β Root shell | UART console β shell β dd the NAND as a recovery snapshot |
Low (case open) |
| 4 β Custom userland | Keep Sony's kernel + audio driver, swap the playback daemon for MPD + streaming bridges | Gated behind a tested recovery path |
| 5 β Modern OS | Mainline where feasible, new control plane, our own API | Opt-in only |
The analog chain (FPGA β SHARC β PCM1795) is the whole point of this hardware. We preserve it, period β every phase keeps it untouched.
| Device | Role | Notes |
|---|---|---|
| Sony HAP-Z1ES | Primary | Pure source player, clean analog out, no internal amp |
| Sony HAP-S1 | Secondary | Same SoC and stack, adds an integrated amp |
Same i.MX6 SoC, same firmware images, same protocols β work on one transfers to the other.
The full research lives in docs/. Start with Overview for the project in one page, or Start Here if you're new.
Full doc index (hardware, API, disk, firmware, UART, audio pathβ¦)
| Hardware | Software stack | Network API | SMB share |
| Diag modes | HDD swap | Firmware | Prior art |
| Disk layout | UART console | Audio path | Music sync |
| Control app | NAND extraction | Forza ioctl ref |
Active reconnaissance: research/ Β· Tools: tools/ Β· API spec: api-spec/.
Found a Japanese teardown blog from 2015? Captured iOS traffic in Wireshark? Scanned a service
manual? You have something to contribute. Run python tools/discover.py (read-only β it just
probes your LAN and dumps the device description for triage), then read
CONTRIBUTING and open an issue. We read all of them.
Code (tools/, future daemon): MIT. Β· Docs (everything else): CC-BY-SA 4.0. The split keeps code reusable while keeping the painstakingly-collected research open and credited.
The HAP-Z1ES is out of warranty in 2026 regardless. Opening the case, probing UART, or flashing custom firmware can damage your device. Everything here is as-is, no warranty β you are responsible for your own hardware.
danielrweber/HAPxFer (SMB reference) Β· frazei's gist (first public API docs) Β· rytilahti/python-songpal (protocol cousin) Β· the Japanese audiophile community (emuzu, briareos, saionjihouse, the kakaku.com regulars) for a decade of HDD-swap documentation nobody else matched β ζ¬ε½γ«γγγγ¨γγγγγΎγ Β· Sony Engineering for outstanding 2014 hardware and publishing the GPL bundle that makes this possible. Β· And you, if you contribute β especially if you actually listen on one of these.

