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”在启用安全启动的情况下不加载。
值得一提的是,我在使用安全启动时没有遇到任何其他问题。
有没有办法强制“ashmem”在启用安全启动的情况下加载?
无法在启用安全启动的情况下加载“ashmem”是功能还是错误?
如果它是一个错误,那么 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”模块的另一个错误。对于那些感兴趣的人,我在这里发布了一个与该错误相关的问题。
您需要对模块进行签名。看起来可以通过以下方式完成:
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)