Repository navigation
HyperDL v1.3.55
HyperDL v1.3.55
b13550 · full-zip release · changes since
v1.3.54
Stops the module from resolving media libraries through the Termux toolchain, trims the bundled Python runtime, and makes the build and release helpers refuse to ship a broken or accidental result.
Highlights
| Area | What changed |
|---|---|
| Library resolution | The native bridge no longer carries a Termux RUNPATH or accepts a Termux libavformat as proof that FFmpeg works |
| Bundled runtime | venv, distutils, and lib2to3 are gone from python314.zip; asyncio stays because yt-dlp needs it |
| Version helper | Unknown arguments now abort instead of silently bumping the version |
| Release metadata | update.json reuses the release notes intro verbatim again, and tests pin the contract |
| Build safety | The build fails loudly if the bridge still points back at the builder |
Honest media-tool detection
- Dropped the Termux library check.
runtime_libs_present()treated alibavformat.sounder/data/data/com.termuxas proof that FFmpeg works, because that path was left over from development. The wrapper pinsLD_LIBRARY_PATHto/system/lib64:/system/lib:<module>/lib, so a Termux copy could never load and the check reported a broken install as healthy. - Kept the check local to the module. Only
<module>/lib/libavformat.socounts now, because that is the one location the wrapper actually searches.
No more toolchain paths in the bridge
- Stripped the Termux RUNPATH. The Termux
clangdriver prepends its own toolchain path on every link, sobin/libhyperdl.soshipped with/data/data/com.termux/files/usr/bin/../../usr/libin its dynamic section. On a device that has Termux installed, the loader could resolvelibc.sofrom there, which defeats the standalone guarantee. - Failed the build instead of shipping it.
build.shremoves the RUNPATH after linking and aborts if anyDT_RPATH/DT_RUNPATHstill names that path, because a silent regression here is invisible until it breaks someone's install. - Confirmed the bridge only needs Android. The shipped bridge declares just
libc.soandlibdl.soinNEEDED, so it runs before anything is staged.
Leaner bundled Python
- Pruned unreachable modules.
venv,distutils, andlib2to3slipped past the stdlib skip list and added weight topython314.zipfor code nothing on device can reach. - Kept
asyncioon purpose. yt-dlp'sdownloader/websocket.pycimports it, so pruning it would have broken websocket downloads silently.
Build and release tooling that refuses accidents
- Validated every argument first.
bump_version.pywrites to all six versioned files as soon as parsing succeeds, and its loop silently ignored anything unrecognised. Running it with--helptherefore bumped the version instead of printing usage. Unknown flags, stray words, repeated bump types, and--noteswithout a value now exit2without touching a file, and--helpexits0. - Restored the notes contract.
update.json:notesmust be the release notes intro verbatim, because the root manager prompt and the release page should never describe the same build differently. v1.3.54 shipped a paraphrase; this release carries the v1.3.55 intro unchanged. - Pinned all of it with tests. Three new suites cover the version helper, the release metadata standard, and the standalone isolation rules, so a fresh clone catches these regressions without a device.
Install
| Method | Steps |
|---|---|
| Flash the zip | Download HyperDL-v1.3.55.zip below, then install it from KernelSU, APatch, or Magisk › Install from storage |
| Live deploy | ./build.sh --deploy updates the module on a connected device without a reboot |
Requires Android 10+ on ARM64 with root. Cookies stay optional for public media.
Full changelog: README.md
Update from your root manager or flash HyperDL-v1.3.55.zip.