Skip to content

Releases: YiJieqwq/Inode-Hijacker

Inode-Hijacker v2.3.1

Choose a tag to compare

@YiJieqwq YiJieqwq released this 08 Aug 15:18

紧急修复:禁止 mv 退化为 copy+delete

v2.3.0 使用普通 mv。即使 stat.st_dev 相同,Android 的 FBE policy、bind mount 或其他 VFS 边界仍可能令 rename 返回 EXDEV;Toybox 随后会自动复制并删除源目录,从而给两个路径分配新 inode。

v2.3.1 修复

  • 固定调用 /system/bin/toybox mv -x,使用内核 RENAME_EXCHANGE 原子交换两个现存路径;
  • 普通文件、目录、FIFO、隐藏项和符号链接均先创建同类型占位项,再原子交换;
  • 不再存在普通 mv 的 copy+delete 回退路径;
  • 在接触 target/donor 前用两个测试目录自检 mv -x,并验证双方 inode 确实交换;
  • 不支持 mv -x 或自检失败时直接退出,真实目录不会被修改;
  • 根目录交换与回滚均改为单次原子 RENAME_EXCHANGE
  • 继续支持非空 /data/local/tmp,并保留 v2.3 的 SELinux fail-closed 与风险列表修复。

校验

  • sh -n:通过
  • ShellCheck:通过
  • v2.3.0 已标记为撤回并删除危险脚本附件

Inode-Hijacker v2.3.0

Inode-Hijacker v2.3.0 Pre-release
Pre-release

Choose a tag to compare

@YiJieqwq YiJieqwq released this 08 Aug 14:42

Caution

此版本已撤回,请勿使用。 普通 mv 在 Android 上可能因 FBE/挂载边界触发 copy+delete 回退,导致低 inode 丢失。请升级到 v2.3.1

Inode-Hijacker v2.3.0

本版本重点修复候选风险分级、非空目录数据保留和 SELinux 上下文恢复。

主要改进

  • /data/local/tmp 不要求为空:目标与候选原内容均通过同分区 rename 事务化迁移并恢复,不再使用 cp -a
  • 修复旧版会删除目标原内容、并把候选内容复制进目标的问题;
  • cotaoplus_libopluscvtnvm 改为禁止项;工程、OTA、日志、主题等目录改为谨慎项;
  • 名称通配符只进入 unknown,unknown 不再自动推荐;
  • 拒绝符号链接、挂载点、跨文件系统候选,并在执行前二次核对 inode/type/dev;
  • SELinux 改为 fail-closed:restorecon 错误不再静默忽略,恢复后严格比较目标和候选根目录 context;
  • 使用 mktemp + 0700 事务目录;失败时优先回滚,无法安全回滚则保留事务现场;
  • 检测事务期间的并发写入并停止操作;
  • README 补充使用条件和已知边界。

校验

  • sh -n:通过
  • ShellCheck(POSIX sh):通过
  • 非空目标/候选、普通文件、隐藏文件、双点文件名、子目录和符号链接事务测试:通过

仍建议在维护环境使用,并停止持续访问目标或候选目录的服务。已有 inotify watch、目录 fd 和 cwd 不会随路径 inode 替换自动迁移。

Inode-Hijacker-v2.2

Choose a tag to compare

@YiJieqwq YiJieqwq released this 01 Jul 01:45
f368f08

Inode-Hijacker-v2.2 — 智能候选 · 风险分级 · 秒级交换

更新内容

  • 完善了selinux上下文修复

核心功能

  • 秒级 inode 交换:原理从"排队等转子回绕"改为"找现有低 inode 目录直接交换",耗时从数十分钟降至 < 1 秒
  • 风险自动分级:安全 / 谨慎 / 禁止三档,自动排除 system_ce 等关键目录
  • 智能推荐:优先选安全区 + 空目录 + 最低 inode
  • 非空目录处理:捐献者若有内容,先备份再交换后恢复
  • 失败回滚:交换过程任一步失败自动恢复原状

使用方式

直接使用 ROOT 权限执行

默认目标 /data/local/tmp,默认阈值 10000

注意事项

脚本会自动排除系统关键目录,但建议在操作前确认捐献目录的安全性。如果设备出现异常,重启即可恢复(新创建的捐献目录有原始备份)。

Inode-Hijacker-v2.1

Choose a tag to compare

@YiJieqwq YiJieqwq released this 16 Jun 10:36
116532b

Inode-Hijacker-v2.1 — 智能候选 · 风险分级 · 秒级交换

核心功能

  • 秒级 inode 交换:原理从"排队等转子回绕"改为"找现有低 inode 目录直接交换",耗时从数十分钟降至 < 1 秒
  • 风险自动分级:安全 / 谨慎 / 禁止三档,自动排除 system_ce 等关键目录
  • 智能推荐:优先选安全区 + 空目录 + 最低 inode
  • 非空目录处理:捐献者若有内容,先备份再交换后恢复
  • 失败回滚:交换过程任一步失败自动恢复原状

使用方式

直接使用 ROOT 权限执行

默认目标 /data/local/tmp,默认阈值 10000

注意事项

脚本会自动排除系统关键目录,但建议在操作前确认捐献目录的安全性。如果设备出现异常,重启即可恢复(新创建的捐献目录有原始备份)。

Low-Inode-Swapper v2.1

Choose a tag to compare

@YiJieqwq YiJieqwq released this 15 Jun 02:56
49d833c

Low-Inode-Swapper v2.1版本 正式发布

使用场景

需要降低已获取root权限的安卓手机的/data/local/tmp文件夹inode值,如

需要通过春秋检测 Suspicious suroundings(b) 检测项
需要通过其他含有root检测的app的检测
etc.

预计时间

通常需要几分钟,实际情况视进度条而定。