Skip to content

fix: Android 36 hook compatibility for AMS/PMS lifecycle callbacks #105

@magisk317

Description

@magisk317

Background

在设备 /data/adb/lspd/log/ 中,XSmsCode 相关日志出现:

  • SystemInputInjectorHook: failed to hook AMS.systemReady
  • NoSuchMethodError: com.android.server.am.ActivityManagerService#systemReady()#exact
  • Cannot find onSystemReady in PermissionManagerService
  • Cannot find onPackageInstalled in PermissionManagerService

Root Cause

Android 36 / QPR 变更后,部分 system_server 方法签名与回调形态发生变化,当前实现依赖单一精确反射签名,导致 hook 安装失败或回调参数解析不稳定。

Fix

  1. SystemInputInjectorHook:改为按 systemReady 方法集合(overloads)动态 hook
  2. SystemInputInjectorHook:增加 mContext/mSystemContext 兜底解析
  3. PermissionManagerServiceHook36
    • onSystemReady/systemReady 动态匹配
    • 安装回调支持 onPackageInstalled/onPackageAdded
    • packageName/userId 参数改为形态自适应解析

Acceptance Criteria

  • 日志不再出现上述 XSmsCode 的 NoSuchMethodError/Cannot find ... 错误
  • Android 36 设备上系统输入注入接收器注册路径保持可用
  • 权限授予 hook 在安装与开机路径可触发

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions