【免费下载链接】InxLocker
Xposed-based Installer Locker for Android (Powered by YukiHookAPI)
InxLocker 是一款基于 Xposed(libxposed / YukiHookAPI)的 Android 安装器锁定模块,核心功能之一是拦截现代 Android 系统的 Session 安装确认请求(
CONFIRM_INSTALL),把系统自带的安装确认界面重定向到你指定的第三方安装器。本文带你从零理解 Session 安装拦截的原理,并完成「拦截 CONFIRM_INSTALL」功能的完整配置。
一、什么是 Session 安装,为什么要拦截它?
从 Android 11(API 30)开始,系统引入PackageInstallerSession 机制:应用不再直接通过INSTALL_PACKAGEIntent 完成安装,而是先创建一个安装会话(Session),随后由系统弹出CONFIRM_INSTALL(android.content.pm.action.CONFIRM_INSTALL)确认界面。深度定制系统(如某些国产 ROM)会在这一环节强制把安装请求拉回系统安装器,导致第三方安装器"失灵"。
InxLocker 的做法是:Hook 系统的 Activity 分发入口,捕获CONFIRM_INSTALL/CONFIRM_PERMISSIONS两个 Intent,并将其重定向到你选择的安装器,从而"锁住"安装入口。
拦截逻辑源码速览
判断"是否重定向"的核心在 IntentAnalyzer.kt:
CONFIRM_INSTALL/CONFIRM_PERMISSIONS动作只有在开关intercept_session_install打开时才会被重定向- 重定向动作由 IntentRedirector.kt 执行:清空原有组件、把目标包名设为你选定的安装器,并附加
FLAG_GRANT_READ_URI_PERMISSION权限标志
💡 简单说:你开启「拦截会话安装」开关后,所有走 Session 通道的安装确认界面都会先经过 InxLocker 的"检查站",再被交棒给你的目标安装器。
二、一键开启拦截:CONFIRM_INSTALL 配置步骤
- 安装并激活模块
- 安装 InxLocker 后,在 Xposed 管理器(推荐 LSPosed)中激活本模块
- 作用域至少勾选System Framework(系统框架),这是拦截系统级安装分发的关键
- 重启系统(或重启被勾选的进程)
- 选择默认安装器
- 打开 InxLocker,在「默认安装器设置」中选择目标安装器(如第三方包管理器)
- 若列表中的应用选择后无法被调起,可长按该条目开启"强制组件调用"
- 开启会话安装拦截
- 在「拦截会话安装(Intercept Session Install)」卡片打开开关
- 界面文案对应 strings.xml 中的"拦截 CONFIRM_INSTALL 请求"
- 该开关写入的偏好键为
intercept_session_install,定义见 PrefsProvider.kt
三、Android 14+ 专属:修复会话路径权限
Android 14(API 34)引入了READ_INSTALLED_SESSION_PATHS权限保护:第三方应用默认无法读取 Session 安装路径,部分安装器会因此读不到 APK。
InxLocker 提供实验性「修复权限(Fix Permissions)」开关:
- 开启后会 Hook
ContextImpl.checkCallingOrSelfPermission,在会话生成阶段对该权限检查直接返回通过(返回 0),实现见 HookEntry.kt - 同时修补
PackageInstallerSession.generateInfoInternal生成信息中缺失的resolvedBaseCodePath(HookEntry.kt) - ⚠️ 该选项为实验性功能,仅在 Android 14+ 且已开启会话安装拦截时才显示,见 MainActivity.kt
🔧 注意:关闭「拦截会话安装」时,「修复权限」开关会被自动关闭(MainActivity.kt),避免无意义的权限绕过。
四、Hook 点分布:InxLocker 在哪里拦截?
模块通过 HookEntry.kt 在两层注入 Hook:
| 层级 | Hook 目标 | 作用 |
|---|---|---|
| 系统服务(system_server) | ActivityStarter.execute(API 28+) | 拦截系统级 Activity 分发,覆盖 Session 安装确认 |
| 应用进程 | Activity.startActivity/startActivityForResult | 拦截普通应用发出的安装请求 |
所有捕获到的 Intent 统一交给handleIntentIfNeeded判定与重定向(HookEntry.kt)。
五、常见问题与注意事项
- 模块状态:若界面显示"模块未激活",请回到 Xposed 管理器检查模块是否已勾选并重启
- 热重载:InxLocker 基于 libxposed api 102 支持热重载(Hot Reload),更新模块后无需重启系统即可刷新 Hook,见 HookEntry.kt
- 隐藏图标:隐藏桌面图标后,需通过 Xposed 管理器模块列表进入设置界面
- 作用范围:本功能拦截的是"确认界面"的分发,最终安装仍由目标安装器发起
- 开源协议:项目遵循 GPLv3,见 LICENSE
小结
InxLocker 的 CONFIRM_INSTALL 拦截功能,本质是用 Xposed 把 Android 现代 Session 安装的"必经之路"接进你的工具箱:选一个你信任的安装器,打开「拦截会话安装」开关,再在 Android 14+ 按需打开「修复权限」,即可把深度定制系统的安装入口牢牢锁在自己手里。
【免费下载链接】InxLocker
Xposed-based Installer Locker for Android (Powered by YukiHookAPI)
相关推荐
Parabolic:开源免费、免命令行的图形化视频下载工具
Parabolic:开源免费、免命令行的图形化视频下载工具 Parabolic 是一个开源免费、覆盖数百个网站的图形化视频下载工具。它把命令行工具 yt dlp
如何安全运行Python代码:5个PySandbox实战应用场景
如何安全运行Python代码:5个PySandbox实战应用场景 在当今数字化时代,安全执行Python代码已成为开发者必备技能。PySandbox作为一个专业
Puppeteer 请求拦截完全指南:从基础拦截到 Cooperative Intercept Mode 协作式拦截
Puppeteer 请求拦截完全指南:从基础拦截到 Cooperative Intercept Mode 协作式拦截 </||DSML||tool </||DS
测试网页爬虫开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考