โมดูล "ashmem" ไม่โหลดเมื่อเปิด Secure Boot (แต่ "binder" จะโหลดเมื่อเปิด Secure Boot)

Aug 17 2020

สรุป

ฉันใช้Ubuntu 20.04.1พร้อมเคอร์เนลเริ่มต้น5.4.0-42-generic (ติดตั้งจาก Main) บนระบบ UEFI ฉันต้องการโหลดโมดูลเคอร์เนลสองโมดูล (" ashmem " และ " binder ") โดยเปิดใช้ Secure Boot อย่างน้อยสำหรับฉัน "binder" โหลดได้ดีเมื่อเปิดใช้ Secure Boot แต่ "ashmem" ไม่โหลดเมื่อเปิดใช้ Secure Boot โมดูลทั้งสองโหลดโดยปิดใช้ Secure Boot

รายละเอียด

แพ็คเกจเคอร์เนล (ติดตั้งจาก Main)

  • ลินุกซ์ส่วนหัว -5.4.0-42

  • linux-headers-5.4.0-42-generic

  • ลินุกซ์ภาพ 5.4.0-42 ทั่วไป

  • ลินุกซ์โมดูล -5.4.0-42 ทั่วไป

  • ลินุกซ์โมดูลพิเศษ 5.4.0-42 ทั่วไป

ปิด Secure Boot แล้ว

เมื่อปิดใช้งาน Secure Boot ฉันสามารถโหลดโมดูล "ashmem" ได้โดยใช้สิ่งต่อไปนี้:

sudo modprobe ashmem_linux

ยิ่งไปกว่านั้นเมื่อปิด Secure Boot ฉันสามารถโหลดโมดูล "binder" โดยใช้สิ่งต่อไปนี้:

sudo modprobe binder_linux

ดังนั้นสิ่งที่เป็นสิ่งที่ดีที่มีการรักษาความปลอดภัย Boot ปิดการใช้งาน

เปิดใช้ Secure Boot

เมื่อเปิดใช้ Secure Boot ฉันไม่สามารถโหลดโมดูล "ashmem" โดยใช้สิ่งต่อไปนี้:

sudo modprobe ashmem_linux

เมื่อพยายามทำฉันจะได้รับสิ่งต่อไปนี้:

modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted

อย่างไรก็ตามแม้จะเปิดใช้ Secure Boot ฉันก็ยังสามารถโหลดโมดูล "binder" ได้โดยไม่มีปัญหาใด ๆ โดยใช้สิ่งต่อไปนี้:

sudo modprobe binder_linux

ดังนั้นฉันจึงงงว่าทำไม "binder" จึงโหลดโดยเปิดใช้ Secure Boot แต่ "ashmem" ไม่โหลดเมื่อเปิดใช้ Secure Boot

และสำหรับสิ่งที่คุ้มค่าฉันไม่มีปัญหาอื่น ๆ ในการใช้ Secure Boot

คำถาม

  1. มีวิธีบังคับให้ "ashmem" โหลดโดยเปิดใช้ Secure Boot หรือไม่?

  2. การไม่สามารถโหลด "ashmem" ด้วย Secure Boot ได้เปิดใช้งานคุณลักษณะหรือข้อบกพร่องหรือไม่?

  3. และถ้าเป็นบั๊กที่ใดใน Launchpad จะเป็นที่ที่ดีที่สุดในการรายงานข้อบกพร่อง

ภาคผนวก

ข้างต้นฉันจะเพิ่มที่ฉันได้เปิดใช้งาน Boot ปลอดภัย (และลงทะเบียนเรียน Mok) ในช่วงเริ่มต้นติดตั้ง Ubuntu 20.04 ถึงอย่างนั้นตามคำแนะนำที่ดีเยี่ยมที่รินซวินด์ให้ไว้ฉันก็ทำสิ่งต่อไปนี้หลังจากการติดตั้งครั้งแรก:

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

และหลังจากดำเนินการข้างต้นฉันก็วิ่งใหม่:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux

ความสำเร็จ! โหลดทั้ง "ashmem" และ "binder"! ขอบคุณRinzwind !!

ยิ่งไปกว่านั้นAnboxเริ่มต้นให้ฉันตอนนี้ด้วยการเปิดใช้ Secure Boot ซึ่งเป็นเป้าหมายสุดท้ายของฉัน :)

เนื่องจากตอนนี้ทั้ง“ ashmem” และ“ binder” โหลดให้ฉันโดยเปิดใช้ Secure Boot ฉันจึงทำเครื่องหมายคำถามนี้ว่าตอบ อย่างไรก็ตามฉันสังเกตเห็นข้อผิดพลาดอื่นเกี่ยวกับโมดูล "ตัวยึด" สำหรับผู้ที่สนใจผมโพสต์คำถามที่เกี่ยวข้องกับข้อผิดพลาดที่นี่

คำตอบ

5 Rinzwind Aug 17 2020 at 07:40

คุณต้องลงนามโมดูล ดูเหมือนว่าสามารถทำได้ด้วย:

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