模块“ashmem”不会在安全启动时加载(但“binder”会在安全启动时加载)

Giz*_*ken 3 kernel modprobe secure-boot anbox

概括

我在UEFI 系统上运行带有默认内核 5.4.0-42-generic(从 Main 安装)的Ubuntu 20.04.1。我想在启用安全启动的情况下加载两个内核模块(“ ashmem ”和“ binder ”)。至少对我来说,“binder”在启用安全启动的情况下加载良好,但在启用安全启动的情况下无法加载“ashmem” 。 两个模块都在禁用安全启动的情况下加载。

细节

内核包(从主安装)

  • linux-headers-5.4.0-42

  • linux-headers-5.4.0-42-generic

  • linux-image-5.4.0-42-generic

  • linux-modules-5.4.0-42-generic

  • linux-modules-extra-5.4.0-42-generic

安全启动已禁用

禁用安全启动后,我可以使用以下命令加载模块“ashmem”:

sudo modprobe ashmem_linux
Run Code Online (Sandbox Code Playgroud)

此外,在禁用安全启动的情况下,我可以使用以下命令加载模块“活页夹”:

sudo modprobe binder_linux
Run Code Online (Sandbox Code Playgroud)

因此,禁用安全启动一切都很好。

启用安全启动

启用安全启动后,我无法使用以下内容加载模块“ashmem”:

sudo modprobe ashmem_linux
Run Code Online (Sandbox Code Playgroud)

尝试这样做后,我得到以下信息:

modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

但是,即使启用了安全启动,我仍然可以使用以下方法毫无问题地加载模块“活页夹”:

sudo modprobe binder_linux
Run Code Online (Sandbox Code Playgroud)

所以,我很困惑为什么“binder”在启用安全启动的情况下加载,而“ashmem”在启用安全启动的情况下加载。

值得一提的是,我在使用安全启动时没有遇到任何其他问题。

问题

  1. 有没有办法强制“ashmem”在启用安全启动的情况下加载?

  2. 无法在启用安全启动的情况下加载“ashmem”是功能还是错误?

  3. 如果它是一个错误,那么 Launchpad 上的哪个位置是报告错误的最佳位置?

附录

对于上述内容,我将补充说我在Ubuntu 20.04的初始干净安装期间启用了安全启动(并注册了 MOK)。即便如此,按照Rinzwind提供的优秀建议,我在初始安装运行了以下内容:

sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko
Run Code Online (Sandbox Code Playgroud)

运行上述命令后,我重新运行:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux
Run Code Online (Sandbox Code Playgroud)

成功!“ashmem”和“binder”都加载了!由于Rinzwind

更重要的是,Anbox现在开始为我启用安全启动,这是我的最终目标。:)

鉴于“ashmem”和“binder”现在在启用安全启动的情况下为我加载,我将此问题标记为已回答。但是,我注意到关于“binder”模块的另一个错误。对于那些感兴趣的人,我在这里发布了一个与该错误相关的问题。

Rin*_*ind 6

您需要对模块进行签名。看起来可以通过以下方式完成:

kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko
Run Code Online (Sandbox Code Playgroud)