Repository navigation
AirSIM v0.9.7.1 — Android 10–13 修复版,推荐安装
AirSIM v0.9.7.1 — Android 10–13 修复,推荐安装
日期:2026-10-14(Asia/Shanghai)。从 VoBLE 分支发布,推荐 Android 10、11、12、13 用户安装本版,优先选择 Standalone。修复旧系统启动与 VoBLE 配对闪退,并包含云端挂断和语音抖动优化。Linux AVF Agent 保持 v0.4.6;不修改 Relay 或 workflow,不合并 main。
下载与升级
AirSIM-Android-Standalone-0.9.7.1-Android10-13.apkAirSIM-Android-AVF-0.9.7.1-Android10-13.apk(仅供旧 AVF 部署)AirSIM-iOS-0.9.7-build81-unsigned.ipa(主 App、Watch 与 Live Activity,须自行重签)SHA256SUMS.txt
包名 com.airsim.phonecontrol.standalone,versionName=0.9.7.1,versionCode=81,minSdk=29、targetSdk=35,不可调试。面向 Android 10、11、12、13 的旧 Java API 兼容修复,不强行限制更高系统安装,不通过降低 targetSdk 或绕过权限解决闪退。
沿用原正式 Android 发布证书,可直接覆盖正式版 Standalone,保留配对、配置和本地数据,无需清理日志或卸载。调试证书/第三方重签版本不能直接覆盖;签名冲突不是允许清除数据的理由。AVF 版包名不同,不能相互覆盖。
根因与修复
小米 Android 12 真机和用户提供的 vivo Android 11 报告均出现 NoSuchMethodError,第一处为首页读取日志时调用旧系统不存在的 ByteArrayOutputStream.toString(Charset)。继续实机核验又定位权限列表的 Collection.toArray(IntFunction)。不是 Relay 限额、配对错误或用户数据损坏,清数据不能修复。
修复七处 UTF-8/ASCII 解码、四处定长流读取,以及两处权限列表转换;涉及日志、闪退报告、Agent/installer HTTP、Standalone Relay/WS、VoWLAN 和 PCM 握手。采用旧系统可用的字符串构造、DataInputStream.readFully、toArray(new String[0]),保留原认证、帧长度和不完整帧拒绝行为。
新增编译产物方法引用检查,在旧实现上复现失败后修复通过,并接入共享测试和正式 APK 构建。该检查只防止这几种已知回归,不是完整 API lint。增加真实诊断文件 UTF-8 读写测试,避免只有日志替身通过测试。
验证边界
审查修复:替换 StringBuilder.isEmpty、URL 编解码 Charset 重载、InputStream.nullInputStream;短信工厂按 API 31 分支;AVF 新后台启动选项按 API 34 分支。静音不再依赖 OEM cmd audio,改用 shell 身份 AudioManager 与回读校验,失败不误报成功,恢复保留原始静音/音量快照供重试。
- 重新执行共享 Android 测试、Standalone 集成、诊断文件读写、47 项 PCM 桥检查及正式签名 APK 构建;以本次发布核验结果为准。
- Redmi M2004J19C(API 31 / Android 12):修复包已保留数据覆盖安装并启动,用户确认 VoBLE 配对正常;兼容分支通过
app_process与音频后端只读检查。最新双端云端通话用户反馈「不再重现,声音更稳」,不将此等同于完整 OEM 静音/恢复或所有网络场景验收。 - vivo V2111A(API 30 / Android 11):用户旧版崩溃报告命中同一日志读取根因,尚未复测本修复包。
- Android 10、13 与 realme(真我)未完成本轮真机验证;不宣称所有机型均无闪退或均支持蜂窝 PCM。默认电话角色、Shizuku、蓝牙权限和 OEM 音频路由仍须按设备设置和验证。
本项目仅限 PolyForm Noncommercial License 1.0.0 允许的非商业用途。Release 不包含签名私钥、用户日志、号码或设备凭据。
iOS 与云端通话优化
- iOS 为
0.9.7 (81)(Apple 版本号与本次 Android 补丁版本号分开),维护者通过 Xcode 使用 production APNs 上传 TestFlight;上传成功不等于处理完成、外测可用或审核通过。 - 「配对三星开发机」改为「配对安卓手机」,增加仅控制本次配置包的「本地模式配对」开关:打开不读取/写入 Relay、推送与云端参数,关闭按云端配对流程写入;不改变全局模式。
- 挂断后拒绝旧通话的迟到 active/connecting、旧拨号结果与重连回调,避免 UI 再次出现或误操作下一通;同样保护 Watch 与灵动岛状态。
- 云端 PCM 双端采用有界自适应缓冲、20 ms 播放/发送节奏、短时缺帧补偿及过期语音丢弃;Android 音频采集/收发解耦,重连后可重新启动媒体。
- 保持现有 Relay 与 PCM 协议,未更换 VoWLAN/VoBLE 的媒体实现。WebSocket/TCP 的严重弱网队头阻塞仍有边界,详见设计与验证记录。
- 发布前运行 iOS 110 项测试、Android 共享/Standalone 测试、47 项 PCM 检查、旧 Java API 引用扫描与 NewApi lint。完整 lint 历史权限诊断仍不等同于零告警;更多厂商、Android 10/13、Watch 和长时间弱网需继续验收。
公开 IPA 没有 Apple 签名或描述文件,不能直接安装、不能直接上传 TestFlight。请使用自己的 Team、Bundle ID 和完整嵌套目标签名;Release 不公开开发设备 UDID。正式签名 APK 可覆盖原同证书包并保留数据;无需卸载、清除日志或重新配对。
发布核验(2026-10-14)
源码与发布标签提交:8b8b9b2ade4e95b9329757eb4e2c83380ea48951,已推送到 VoBLE。工件从该提交的独立源码副本构建,GitHub Release 为公开非草稿;仓库 Latest 继续指向 Linux Agent v0.4.6,防止旧 installer 将应用发布误判为 Linux 包更新。
两份 APK 均为 0.9.7.1 (81)、不可调试,正式证书 SHA-256 为 cde660af4c3e053615a4967e5188ca29eee084e50958ead1fd5cc80837b0965b,与前版一致。公开 IPA 为 0.9.7 (81),主 App/Watch/Live Activity 版本一致,不含 _CodeSignature 或 embedded.mobileprovision。另附 LICENSE、NOTICE 与第三方声明。
| 工件 | SHA-256 |
|---|---|
| AVF Bridge APK | e8e46fd8b140200c18dea8c5d84f0d989871fe1b44c3baa374cde480036bd36d |
| Standalone APK | 76961fea2ef65ee36e73d90b3f847b126b404a79d95b0750bfacac719c0ba73c |
| unsigned IPA | 56f6fb38fb484b36dea3cc7a0ff440ee63302b34f7095b8419a9637e6164c3d3 |
维护者 production 归档另行通过 Xcode Organizer 的 App Store Connect 通道上传,界面已明确显示 AirSIM 0.9.7 (81) uploaded、Uploaded to Apple 和 Build Number 81。这证明上传成功,不证明 Apple 已处理完成、外测可用或审核通过;设备先前的 sandbox 覆盖安装与此次 TestFlight production 分发为不同构建。