Skip to content

Releases

XPatch 0.1.6

Choose a tag to compare

@xunyyds xunyyds released this 08 Nov 05:58

内核

  • 内核版本提升到 42(0.1.5 为 41)。已打包的应用需要重新打包,旧产物不会自动升级内核;
  • 日志写入多级降级,写盘失败不再静默;wrapper dex 预载改为只打开一次 APK(约省 44 ms/进程);
  • 新增远程访问桥(FrameworkBridgeProvider),RemotePreferences / 远程文件 API 可用;
  • 日志行新增 [pid:进程名],同一宿主的多个进程可以区分。

新功能

  • 重启提示:模块作用域 / API 级别变更后弹可忽略对话框,同时发常驻通知(重启 / 忽略);
  • 首页「待重启」轻提示:多应用聚合、逐个重启;关闭提示不会撤销通知;状态落盘,进程被杀后仍在;
  • 版本更新与模块仓库下载改为后台任务:通知内暂停 / 继续 / 取消,不再弹不可关闭的进度框;
  • 下载器重写:256 KB 缓冲、断点续传、多镜像测速与慢源切换、实时速度显示;
  • Android 13+ 首次启动申请通知权限。

改进

  • 日志读取改为 ParcelFileDescriptor 按偏移流式读取,旧管理器自动回退到 readText;
  • 从详情页返回时保留仓库筛选与列表位置、设置页滚动位置,彻底离开后重置;
  • 仓库「可更新」按版本号大小比较(版本名优先、版本号兜底),不再因为版本字符串不同误报;
  • 模块列表与模块作用域页移除「旧版 / 新版模块」标签;
  • 仓库下载入口移到标题栏右上角,固定显示。

修复

  • 修复部分设备上内核日志无法落盘、以及写盘失败静默的问题;
  • 修复远程访问桥在每个进程启动时刷两条错误日志;
  • 修复仓库 / 设置返回后丢失筛选与滚动位置的问题。

XPatch 0.1.5

Choose a tag to compare

@xunyyds xunyyds released this 07 Nov 14:21

安装

  • 修正 Shizuku 静默安装总是失败的问题:产物先暂存到 /data/local/tmp 再交给 pm install,不再受 Android/data 的 SELinux 限制
  • 卸载与安装都限定当前用户,应用分身、隐私空间里有同名安装时不再因签名冲突失败
  • 卸载后校验应用确实已移除才继续安装,失败会中止并给出真实原因
  • 安装失败提示改为提取 Failure / Exception 行,不再显示调用栈尾部

实验性

  • 强行覆盖安装改为跟随产物记录,打包历史与复用产物重试时不再降级为普通安装
  • 签名不一致弹窗新增「卸载原应用」,二次确认后调用系统卸载,完成后自动继续安装
  • 弹窗按钮按内容宽度紧排,长标签保持单行显示

方向

  • 下一步围绕多用户场景做完整支持:识别应用分身与隐私空间中的同名安装,提供按用户分组的安装与卸载入口,避免跨用户签名冲突

XPatch 0.1.4

Choose a tag to compare

@xunyyds xunyyds released this 07 Nov 06:26

性能

  • 仓库列表的过滤与排序移出主线程并做记忆化,搜索输入不再逐键卡顿(单帧 450ms → 20–30ms)
  • 下载进度改为按百分比回调,下载过程中不再触发整页重组(单帧 1150ms → 10–15ms)
  • 安装态改为一次批量查询,仓库页不再逐行查询 PackageManager、不再逐行解析下载缓存
  • 日志页筛选、分组与列表改为惰性渲染与派生状态,长列表滚动与切换更稳
  • 页面切换动画时长与位移收敛,进入重型页面更跟手

打包

  • 新增打包历史与产物复用:相同配置再次打包会提示复用,直接复用原来的打包完成弹窗
  • 首页右上角新增打包历史入口,可管理本应用产出的产物与导出副本
  • 记录上限可自定义(默认 50),支持清理失效记录、删除时同时删除产物并可记住选择

界面

  • 仓库详情 README 改为原生渲染,不再使用内嵌网页
  • 下载数字角标改为圆形气泡,下载进度环贴合图标且尺寸稳定
  • 下载管理显示已安装版本号

XPatch 0.1.3

Choose a tag to compare

@xunyyds xunyyds released this 07 Nov 06:26

打包

  • 修复源包检测:识别 assets/npatch/、assets/lspatch/ 注入布局,未还原的内嵌原始包自动剥离后重新打包,NPatch / LSPatch 产物可正常重打
  • 修复选择外部安装包被替换为已安装应用的问题,选中的 APK 文件直接作为打包源
  • 产物导出重名自动追加 (1)、(2)…,不再覆盖旧文件

安装与分享

  • 结果页「打开方式」改为系统分享
  • 安装默认走 Shizuku 静默安装,不可用或失败自动回退系统安装器
  • 安装 / 分享 / 导出全程明确反馈,不再静默失败

XPatch 0.1.2

Choose a tag to compare

@xunyyds xunyyds released this 06 Nov 15:19

重要提示

本版本升级了运行时(v40),配置文件位置也迁移到了 <包名>/XPatch/ 子目录。

因此已打包的应用需要重新打包一次,才能用上新的作用域读取路径与新运行时。管理器会自动迁移旧配置,但目标应用内的运行时不会自动更新——请在应用详情页点「更新核心」(需该应用内嵌了原始包),或直接重新打包安装。

模块作用域

  • 修复模块不生效:运行时只读 Android/data,管理器却写 Android/media
  • 作用域改为 Android/media 单一来源,不再依赖 Android/data
  • 旧版遗留的 data 作用域文件自动清理,避免已关闭的模块复活
  • 配置迁移到 <包名>/XPatch/ 子目录,旧位置检测到即自动迁移
  • 运行时版本 40,新目录优先、旧路径兜底
  • 开关切换后立即写盘,不再等管理器回前台同步
  • 模块作用域页只显示已打包应用

日志页

  • 模块列表改为独立详情页
  • 详情页支持级别筛选、时间排序、按日期与内容搜索
  • 修复右上角按钮点击无响应
  • 筛选与排序改为底部弹层
  • 修复同名模块跨应用日志串台

界面

  • 模块列表:搜索前置并覆盖推荐模块,推荐模块加「推荐」徽章不再单独分区
  • 已启用模块恒定前置,排序改为 默认 / 名称 / 首字母(拼音)
  • 列表点击进详情,仅开关区域响应切换
  • 开关动画播完后条目再前移并高亮
  • 应用详情新增运行时版本显示

XPatch 0.1.1

Choose a tag to compare

@xunyyds xunyyds released this 05 Nov 13:39

0.1.1

管理器界面

  • 日志页顶部由五行控件压缩为两行:页签与操作图标一行,搜索框一行,筛选与排序收进底部面板
  • 搜索框改为紧凑单行样式,带搜索图标与一键清除
  • 日志页状态行只在存在筛选、截断或读取失败时出现
  • 下拉刷新文案改为中文:下拉刷新 / 松开刷新 / 正在刷新… / 刷新完成
  • 首页 Shizuku 授权卡片改为卡片样式,未授权时提供「去授权」与「重新检测」按钮,点击后先查询真实状态再决定是否弹授权窗口
  • 去掉日志空状态与错误状态里多余的「重新加载」按钮

日志读取

  • 修复刷新标志缺少异常保护导致协程取消后永久卡住、后续刷新静默失效的问题
  • 日志文件改为并行读取,最多四路并发
  • 抽出公共解析逻辑,文件读取与特权读取共用
  • 新增 UserService 兜底读取

Shizuku

  • 强制停止、重启、Dexopt 改由 UserService 承载,不再反射调用系统服务
  • 新增 IXPatchService AIDL 接口,运行在 shell 身份
  • 移除对 Shizuku.newProcess 私有方法的反射调用
  • 补充混淆保留规则