在KernelSU环境中,当SELinux设置为Enforcing模式时,使用su命令切换到Root权限后,执行pm或am这类调用cmd指令的操作会出现报错,提示'cmd: Failure calling service package: Failed transaction (2147483646)'。这个问题在使用KernelSU原版时并不会出现,即使SELinux为Enforcing。用户期望KernelSU的表现能与原版相同,即正常执行pm或am指令并返回帮助信息。以下是详细的复现步骤和设备信息。

复现步骤

  1. 打开终端模拟器(例如MT管理器的终端模拟器,并新建系统会话)。
  2. 输入su命令进入Root会话。
  3. 运行pm或am指令(本质上都是调用cmd指令)。
  4. 观察到报错信息:

    cmd: Failure calling service package: Failed transaction (2147483646)

预期行为

正常执行pm或am指令,并返回帮助信息(与KernelSU原版表现一致)。

屏幕截图

报错截图

日志信息

无响应

设备信息

  • 设备:Redmi Note 12 Turbo
  • 操作系统版本:Android 15, HyperOS 2.0.203.0.VMRCNXM
  • KernelSU版本:SukiSU Ultra v3.1.8-5ba4f73e@main
  • 内核版本:5.10.226-android12-9-00064-gea4a6f067d3f-ab12969919

附加信息

SELinux状态:Enforcing