Repository navigation
Releases
Releases · xunyyds/xpatch-manager
XPatch 0.1.6
内核
- 内核版本提升到 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
安装
- 修正 Shizuku 静默安装总是失败的问题:产物先暂存到
/data/local/tmp再交给pm install,不再受Android/data的 SELinux 限制 - 卸载与安装都限定当前用户,应用分身、隐私空间里有同名安装时不再因签名冲突失败
- 卸载后校验应用确实已移除才继续安装,失败会中止并给出真实原因
- 安装失败提示改为提取
Failure/Exception行,不再显示调用栈尾部
实验性
- 强行覆盖安装改为跟随产物记录,打包历史与复用产物重试时不再降级为普通安装
- 签名不一致弹窗新增「卸载原应用」,二次确认后调用系统卸载,完成后自动继续安装
- 弹窗按钮按内容宽度紧排,长标签保持单行显示
方向
- 下一步围绕多用户场景做完整支持:识别应用分身与隐私空间中的同名安装,提供按用户分组的安装与卸载入口,避免跨用户签名冲突
XPatch 0.1.4
性能
- 仓库列表的过滤与排序移出主线程并做记忆化,搜索输入不再逐键卡顿(单帧 450ms → 20–30ms)
- 下载进度改为按百分比回调,下载过程中不再触发整页重组(单帧 1150ms → 10–15ms)
- 安装态改为一次批量查询,仓库页不再逐行查询 PackageManager、不再逐行解析下载缓存
- 日志页筛选、分组与列表改为惰性渲染与派生状态,长列表滚动与切换更稳
- 页面切换动画时长与位移收敛,进入重型页面更跟手
打包
- 新增打包历史与产物复用:相同配置再次打包会提示复用,直接复用原来的打包完成弹窗
- 首页右上角新增打包历史入口,可管理本应用产出的产物与导出副本
- 记录上限可自定义(默认 50),支持清理失效记录、删除时同时删除产物并可记住选择
界面
- 仓库详情 README 改为原生渲染,不再使用内嵌网页
- 下载数字角标改为圆形气泡,下载进度环贴合图标且尺寸稳定
- 下载管理显示已安装版本号
XPatch 0.1.3
打包
- 修复源包检测:识别
assets/npatch/、assets/lspatch/注入布局,未还原的内嵌原始包自动剥离后重新打包,NPatch / LSPatch 产物可正常重打 - 修复选择外部安装包被替换为已安装应用的问题,选中的 APK 文件直接作为打包源
- 产物导出重名自动追加 (1)、(2)…,不再覆盖旧文件
安装与分享
- 结果页「打开方式」改为系统分享
- 安装默认走 Shizuku 静默安装,不可用或失败自动回退系统安装器
- 安装 / 分享 / 导出全程明确反馈,不再静默失败
XPatch 0.1.2
重要提示
本版本升级了运行时(v40),配置文件位置也迁移到了 <包名>/XPatch/ 子目录。
因此已打包的应用需要重新打包一次,才能用上新的作用域读取路径与新运行时。管理器会自动迁移旧配置,但目标应用内的运行时不会自动更新——请在应用详情页点「更新核心」(需该应用内嵌了原始包),或直接重新打包安装。
模块作用域
- 修复模块不生效:运行时只读
Android/data,管理器却写Android/media - 作用域改为
Android/media单一来源,不再依赖Android/data - 旧版遗留的 data 作用域文件自动清理,避免已关闭的模块复活
- 配置迁移到
<包名>/XPatch/子目录,旧位置检测到即自动迁移 - 运行时版本 40,新目录优先、旧路径兜底
- 开关切换后立即写盘,不再等管理器回前台同步
- 模块作用域页只显示已打包应用
日志页
- 模块列表改为独立详情页
- 详情页支持级别筛选、时间排序、按日期与内容搜索
- 修复右上角按钮点击无响应
- 筛选与排序改为底部弹层
- 修复同名模块跨应用日志串台
界面
- 模块列表:搜索前置并覆盖推荐模块,推荐模块加「推荐」徽章不再单独分区
- 已启用模块恒定前置,排序改为 默认 / 名称 / 首字母(拼音)
- 列表点击进详情,仅开关区域响应切换
- 开关动画播完后条目再前移并高亮
- 应用详情新增运行时版本显示
XPatch 0.1.1
0.1.1
管理器界面
- 日志页顶部由五行控件压缩为两行:页签与操作图标一行,搜索框一行,筛选与排序收进底部面板
- 搜索框改为紧凑单行样式,带搜索图标与一键清除
- 日志页状态行只在存在筛选、截断或读取失败时出现
- 下拉刷新文案改为中文:下拉刷新 / 松开刷新 / 正在刷新… / 刷新完成
- 首页 Shizuku 授权卡片改为卡片样式,未授权时提供「去授权」与「重新检测」按钮,点击后先查询真实状态再决定是否弹授权窗口
- 去掉日志空状态与错误状态里多余的「重新加载」按钮
日志读取
- 修复刷新标志缺少异常保护导致协程取消后永久卡住、后续刷新静默失效的问题
- 日志文件改为并行读取,最多四路并发
- 抽出公共解析逻辑,文件读取与特权读取共用
- 新增 UserService 兜底读取
Shizuku
- 强制停止、重启、Dexopt 改由 UserService 承载,不再反射调用系统服务
- 新增 IXPatchService AIDL 接口,运行在 shell 身份
- 移除对 Shizuku.newProcess 私有方法的反射调用
- 补充混淆保留规则