Skip to content

Releases: YiHoooong/AirliftSilence-iOS

v1.1.1 — share-sheet import and an honest pairing status

Choose a tag to compare

@YiHoooong YiHoooong released this 15 Oct 14:12

Since v1.1.0: the share-sheet import works from a cold start, and a pairing broadcast that never
started is reported instead of hidden.

What's fixed

  • "Open in AirliftSilence" from the share sheet did nothing (reported in #5). SwiftUI's
    onOpenURL never receives a document that another app opens while this app is cold-starting —
    the normal case for a sideloaded app that is not already running — so the request went nowhere.
    Document opens now arrive through UIApplicationDelegate.application(_:open:options:), which does
    fire on a cold launch; onOpenURL keeps handling airliftsilence:// URLs.
    Pairing files whose extension has no declared UTI (.mobiledevicepairing, .mobilepairing) are
    offered by the share sheet too, and a URL delivered twice is only imported once.
  • A denied Local Network permission looked like a working app. NetService.publish() fails
    silently without it, and Settings then never offers the Pair with App entry while the app kept
    saying "Advertising…". The status now reports what actually happened, error code included, and
    points at the permission.

Install

AirliftSilence-v1.1.1.ipa is unsigned — sign it with whatever you normally use (AltStore,
SideStore, Sideloadly, TrollStore, …). Re-signing gives the app a fresh container, so export the
pairing file first if you have a working one.

Requires iOS 18.0 – 27.2 beta 2. Apple patched the underlying exploit in 27.2 beta 3.

Also needs LocalDevVPN in loopback mode (never 127.0.0.1), a pairing record, and the
official Apple Books app opened at least once.

AirliftSilence-v1.1.1.ipa   3,348,064 bytes
sha256  daa32fe3cbf4673178abbc9f297ceb1d25e463c2bb644eee5ad1679b7301ce4e

v1.1.0 — Shortcuts and languages

Choose a tag to compare

@YiHoooong YiHoooong released this 15 Oct 13:48

Shortcuts and Siri

The app now ships App Intents, so it appears in the Shortcuts app as actions of its own:

Shortcut action Notes
Call-recording announcement one step with an Action menu: Check / Silence / Restore
Silence the call-recording announcements no parameters — the one to put on the Home Screen
Restore the call-recording announcements no parameters

Each action returns the outcome as text (Call-recording announcements: Silenced, …), so a Shortcut
can branch on it or show it in a notification. Siri phrases are registered in both languages, e.g.
"AirliftSilence 去掉通话录音提示音".

The intents open the app when they run. That is deliberate: a run is a long device-side session, and
an iOS background intent is cut off after a few seconds, which would tear the tunnel down
mid-transfer.

There is also a URL scheme, for anything that can only open a URL (an Open URLs action, a launcher,
a bookmark):

airliftsilence://check
airliftsilence://silence
airliftsilence://restore

Languages

English is now the development language, with a Simplified Chinese translation. The interface, the
pairing status lines, the run log and the Local Network permission prompt all follow the system
language. Adding another language means copying en.lproj, translating the values and re-running
xcodegen generate — see Languages.

Also in this release

  • StartDisclosure.caf is covered too. All three announcements iOS plays during call recording
    are replaced now, not just two. Greeting.caf and GreetingWithTone.m4a sit in the same folder and
    are still deliberately left alone — those are voicemail greetings.
  • Runs are serialised. A Shortcut that arrives while the app is still checking waits its turn;
    the device only tolerates one exploit session at a time.
  • A check reads three files instead of two, so the check after launch takes a little longer.

Unchanged: the periodic reminder twinkle (recurringDisclosureTwinkle.caf) lives on the sealed
system volume and cannot be replaced by this exploit.

Install

Unsigned on purpose — re-sign with AltStore, SideStore, Sideloadly, … iOS 18.0 – 27.2 beta 2 only
(Apple patched the exploit in 27.2 beta 3). The official Apple Books app has to be installed and
opened once, and LocalDevVPN has to be running in loopback mode.

AirliftSilence-v1.1.0.ipa   3,340,425 bytes
sha256  b5b658cfc00b70b61e8727cc09112517fec06ef34e0320fd031fb2886e9b44b5

AirliftSilence v1.0.2

Choose a tag to compare

@YiHoooong YiHoooong released this 15 Oct 13:28

Since v1.0.1: pairing records can now be imported from inside the app.

What's new

导入配对文件 — an in-app file picker next to the export button. Pick a pairing
record straight out of Files instead of the two indirect routes that were the
only option before (dropping it into the app's Documents folder, or Open in
AirliftSilence
from the share sheet). It accepts .plist plus the
.mobiledevicepairing / .mobilepairing names SideStore, LiveContainer and
Jitterbug produce.

What's fixed

  • "Open in AirliftSilence" could fail on a perfectly good pairing file. The
    handler was missing startAccessingSecurityScopedResource(), which a URL from
    outside the sandbox needs before it can be read. Both routes now share one
    code path.
  • Import now says so when a file turns out not to be a usable record, instead of
    silently appearing to work.

Install

AirliftSilence.ipa is unsigned — sign it with whatever you normally use
(AltStore, SideStore, Sideloadly, TrollStore, …).

Requires iOS 18.0 – 27.2 beta 2. Apple patched the underlying exploit in
27.2 beta 3.

Also needs LocalDevVPN in loopback mode (never 127.0.0.1), a pairing
record
, and the official Apple Books app opened at least once.

Note for iOS 18.x: Settings › Developer Mode has no Pair with App entry, so the
built-in pairing flow does not apply — import a record instead.

sha256  04f1063ecc00f43ab89ece7d25ef9eed88103dc029a0e9c7645dc6c735575d8e
size    3,294,611 bytes

相比 v1.0.1:配对文件现在可以在 App 内直接导入。

「导入配对文件」按钮(就在导出旁边)会打开系统文件选择器,直接从「文件」里挑配对记录 ——
不用再走之前那两条绕路(丢进 Documents,或者分享菜单里的「在 AirliftSilence 中打开」)。
支持 .plist 以及 SideStore / LiveContainer / Jitterbug 用的
.mobiledevicepairing / .mobilepairing。

同时修了一个真问题:分享菜单的导入路径少了安全作用域访问,会导致一个完全正常的
配对文件读不出来。

iOS 18.x 用户注意:18.x 的「设置 › 开发者模式」里没有「与 App 配对」入口,
App 内的自配对流程对不上,请用导入。

AirliftSilence v1.0.1

Choose a tag to compare

@YiHoooong YiHoooong released this 15 Oct 08:14

Since v1.0.0: the pairing PIN now arrives as a notification (it appears while you are inside Settings typing it, where the app is off-screen), the app calls itself AirliftSilence everywhere instead of showing AirCard in the pairing list, there is a new icon, and the pairing record can be exported and imported.

Button What it does
去除提示音 writes the bundled silent files over both announcement files
检测 reads both back and reports 静音 / 原版 / 未知版本
恢复原版 puts the bundled originals back
导出配对文件 hands the pairing record to the share sheet (AirDrop, Save to Files, …)

Install

AirliftSilence.ipa is unsigned — sign it with whatever you normally use (AltStore, SideStore, Sideloadly, TrollStore, …).

Requires iOS 18.0 – 27.2 beta 2. Apple patched the underlying exploit in 27.2 beta 3.

Also needs LocalDevVPN in loopback mode (never 127.0.0.1), a pairing record (use 开始配对, and allow notifications so the PIN reaches you), and the official Apple Books app opened at least once.

Worth knowing

  • Export your pairing record. Re-signing a sideloaded build gives it a fresh container, so the record does not survive a reinstall. 导出配对文件 → Save to Files. The reverse works too: open a .plist with AirliftSilence, or drop it into the app's Documents folder.
  • Apple updates the announcement files as a silent MobileAsset update, so the sound can come back with no iOS version change. Reopen the app and press 去除提示音.
  • The announcement plays to both parties. Removing it may be unlawful where recording requires all-party consent.
sha256  4d3f6a79144ba9a904f57a0e9efe69c7117f8859d5d9495c9f010400aa91210f
size    3,290,069 bytes

相比 v1.0.0:配对码现在会以通知弹出(配对码出现时你正在设置里输入,看不到 App 界面)、App 名字全部统一成 AirliftSilence(配对列表里不再显示 AirCard)、换了新图标、并且新增了配对记录的导出与导入。

三个主按钮不变:去除提示音 / 检测 / 恢复原版。

安装:IPA 未签名,用你惯用的工具自签。需要 iOS 18.0 – 27.2 beta 2(27.2 beta 3 起了补丁)。

还需要:LocalDevVPN 回环模式(千万别填 127.0.0.1)、一份配对记录(用「开始配对」,记得允许通知才能收到配对码)、以及打开过一次 Apple Books。

建议:装好后先把配对文件导出存一份 —— 侧载重装会清空 App 容器,配对记录会丢。

AirliftSilence v1.0.0

Choose a tag to compare

@YiHoooong YiHoooong released this 07 Oct 14:47

Toggle the iPhone call-recording announcement from the phone itself — no computer needed.

The app talks to the device's own internal services over a LocalDevVPN loopback tunnel and swaps
the two audio files iOS plays when call recording starts and stops. Same AirTraffic/Airlock
technique as airlift, running on-device.

Button What it does
去除提示音 writes the bundled silent files over both announcement files
检测 reads both back and reports 静音 / 原版 / 未知版本
恢复原版 puts the bundled originals back

Install

AirliftSilence.ipa is unsigned — sign it with whatever you normally use (AltStore, SideStore,
Sideloadly, TrollStore, …).

Requires iOS 18.0 – 27.2 beta 2. Apple patched the underlying exploit in 27.2 beta 3; past that,
nothing here works.

Also needs:

  • LocalDevVPN running in loopback mode. Never point it at 127.0.0.1 — on iOS that wedges
    remotepairingdeviced until Developer Mode is toggled off and on.
  • A pairing record. Use the built-in 开始配对 and type the PIN under
    Settings › Privacy & Security › Developer Mode › Pair with AirliftSilence. The PIN also arrives
    as a notification, since the app is off-screen while you type it. Allow notifications when asked.
  • The official Apple Books app installed and opened once — com.apple.atc refuses the sync
    otherwise.
  • Do not auto-remove the app while LocalDevVPN is attached.

Notes

  • Apple updates these audio files as a silent MobileAsset update — no iOS version change, no
    warning. When that happens the sound returns; reopen the app and press 去除提示音. A reboot on its
    own does not undo it (verified by byte-comparing both files before and after a restart).
  • The announcement plays to both parties on the call. Removing it may be unlawful where recording
    requires all-party consent (Germany, several US states). Get consent before recording anyone — the
    law applies to you whatever your phone does or does not announce.
sha256  699cd223844d3b04f3f1015e29c9b53b76f7c92a3868d6e7aed1f7c053fe78b8
size    3,283,918 bytes

不用电脑,直接在手机本机开关「通话录音」提示音。

App 通过 LocalDevVPN 回环隧道访问设备自身的内部服务,把 iOS 在录音开始/结束时播放的两个音频
文件换成等长静音文件。用的是和 airlift 同一套 AirTraffic /
ATAirlock 手法,只是跑在设备上。

三个按钮:去除提示音 / 检测(读回并比对,显示当前是静音还是原版)/ 恢复原版。

安装:AirliftSilence.ipa 是未签名的,用你惯用的工具自签(AltStore、SideStore、Sideloadly、
TrollStore 等)。

需要 iOS 18.0 – 27.2 beta 2 —— Apple 在 27.2 beta 3 修掉了底层漏洞,再往上都不行。

另外还需要:LocalDevVPN 开着(回环模式,千万别填 127.0.0.1,会让设备网络卡死到要手动开关
开发者模式才能恢复);一份配对记录(用内置的「开始配对」,配对码会同时以通知弹出,所以请允许通知
权限);以及装上并打开过一次 Apple Books(否则 com.apple.atc 会拒绝同步)。

注意:Apple 会用 MobileAsset 静默更新这两个音频文件 —— 不换系统版本、不提示,更新后声音会回来,
重新点一下「去除提示音」即可;单纯重启不会失效(已用前后字节比对验证过)。提示音是双方都能听到
的告知,在要求「双方同意」才能录音的法域去掉它可能违法,录音前请先取得对方同意。