TL;DR

SideImpactor là một SPA mã nguồn mở (MIT) của lbr77 ký và cài IPA lên iOS hoàn toàn trong trình duyệt. Nó dùng WebUSB để nói chuyện với iPhone qua cáp, chạy OpenSSL, libcurlzsign dưới dạng WebAssembly để ký lại IPA bằng Apple Developer account của bạn — không cần Sideloadly, AltServer hay bất kỳ desktop app nào. Demo trực tiếp tại sideload.nvme0n1p.dev.

What's new

Sideload iOS từ trước đến nay luôn bị buộc vào một desktop app: Cydia Impactor (đã bỏ), Sideloadly (Win/macOS), AltStore + AltServer (cần helper chạy nền), hay Dadoum/Sideloader (native cross-platform). SideImpactor là dự án đầu tiên gom toàn bộ pipeline — pair device, đăng nhập Apple ID, lấy provisioning profile, ký lại IPA, push qua usbmux, gọi installation_proxy — vào một trang web duy nhất.

Điểm cốt lõi không phải là "chạy trên web cho cool", mà là phá thế độc quyền của desktop installer: Linux user và Chromebook user lần đầu có một con đường ký IPA "chính chủ" mà không phải dựng máy ảo macOS hay tự build libimobiledevice từ source.

Why it matters

Ba điều khiến nó đáng chú ý:

  • Hạ rào cản cho Linux/ChromeOS. Sideloadly chưa bao giờ có bản Linux. Người dùng Linux trước đây phải tự ghép libimobiledevice + ldid + scripts. Giờ chỉ cần Chrome.
  • Sign client-side, password không rời máy. Mọi thao tác crypto chạy trong WASM ngay trong tab. Cloudflare Workers relay chỉ proxy HTTP request tới Apple để né CORS, không thấy Apple ID password của bạn.
  • Distribution mới cho indie dev. Nhúng được vào landing page riêng: ship IPA + nút "Sign & Install". Không cần TestFlight, không cần dạy user cài AltServer.

How it works

Kiến trúc SPA gồm bốn lớp WASM ghép lại:

  1. webmuxd — implement giao thức usbmuxd/lockdown của Apple trên WebUSB, tương thích với libimobiledevice. Đây là lớp chịu trách nhiệm pair device và mở các service như installation_proxy, afc, misagent.
  2. OpenSSL WASM — TLS handshake với lockdownd và sinh pair record (cặp khóa lưu lại trust giữa máy bạn và iPhone).
  3. libcurl WASM — gọi Apple Developer API (đăng nhập, lấy team, sinh certificate, sinh provisioning profile, đăng ký device UDID). Routed qua một WISP proxy trên Cloudflare Workers vì browser không hit thẳng được endpoint của Apple.
  4. zsign WASM — re-sign nội dung IPA bằng cert vừa sinh, đóng gói lại, đẩy qua installation_proxy.

Frontend là React + Tailwind dựng bằng Vite, chạy local đơn giản:

bun install --ignore-scripts
bun run dev
# http://localhost:5173

Comparison

ToolDesktop appSign trong browserOpen sourceLinux ready
SideImpactorKhôngCó (WebUSB + WASM)MITCó (Chrome)
SideloadlyWin/macOSKhôngĐóngKhông
AltStore + AltServerHelper chạy nềnKhôngMột phầnKhông chính thức
SideStoreCompanion serviceKhôngHạn chế
Cydia ImpactorDesktop (đã bỏ)KhôngĐóngKhông

Use cases

  • Linux/Chromebook user muốn cài app sideload mà không dựng VM macOS.
  • Indie iOS dev phát hành build beta cho người không quen TestFlight: gửi link, người nhận click, ký, cài.
  • AltStore refugee mệt mỏi vì AltServer hay đứt sau update macOS.
  • Quick one-off install trên máy lạ — không muốn cài 200MB Sideloadly cho một IPA duy nhất.
  • Privacy-minded sideloader — vì signing chạy local, password Apple ID không qua server bên thứ ba (chỉ HTTPS thẳng tới Apple, qua WISP relay làm proxy CORS).

Limitations & pricing

  • Miễn phí, MIT, self-host được. Vẫn cần Apple Developer account: free cert (7 ngày, phải ký lại hằng tuần) hoặc paid $99/năm.
  • Chỉ Chromium browser: Chrome, Edge, Opera, Brave. Safari và Firefox không hỗ trợ WebUSB nên không chạy được. Hệ quả: bạn không thể ký từ chính chiếc iPhone — phải có một desktop/laptop chạy Chrome.
  • Cần cáp USB — chưa có Wi-Fi pair. Pure-Wi-Fi sideload kiểu AltStore vẫn là lãnh địa của AltServer/SideStore.
  • Cần WISP relay cho production vì browser không hit thẳng được Apple API. Repo có sẵn Cloudflare Workers relay; bạn có thể self-host.
  • README còn mỏng phần troubleshooting, project ở giai đoạn sớm. Một số thiết bị/iOS version có thể trục trặc — log console trong DevTools là bạn của bạn.
  • Quy tắc của Apple vẫn áp dụng: free cert revoke sau 7 ngày, paid cert giới hạn 100 device/năm. SideImpactor không phá được giới hạn đó.

What's next

Roadmap chưa được formalize trong README, nhưng nhìn vào codebase, các bước tự nhiên kế tiếp là: ma trận test cho nhiều iOS version hơn, vòng lặp re-sign tự động kiểu AltStore, UX cho lỗi đỡ thô, và biết đâu một ngày — khi WebUSB hoặc Web Bluetooth cho phép — pair qua Wi-Fi. Cần để mắt: nếu Apple siết usbmuxd hay revoke free cert mạnh tay hơn (như từng làm trong các đợt sideloading EU), cả lớp công cụ này — SideImpactor trong đó — sẽ ăn đòn cùng nhau.

Trong lúc chờ, đây là cách nhanh nhất để một Linux user lần đầu ký được IPA mà không phải đụng tới một dòng brew install.

Nguồn: github.com/lbr77/SideImpactor, sideload.nvme0n1p.dev, webmuxd, libimobiledevice.