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.

