จะรับสิทธิ์“ com.apple.developer.driverkit.userclient-access” ได้อย่างไร?

Aug 31 2020

เราได้ขอสิทธิ์ทั้งหมดที่เกี่ยวข้องกับ DriverKit สิ่งที่เราได้รับมีดังต่อไปนี้:

  • com.apple.developer.driverkit
  • com.apple.developer.driverkit.transport.hid
  • com.apple.developer.driverkit.family.hid.device
  • com.apple.developer.driverkit.family.hid.eventservice
  • com.apple.developer.driverkit.family.hid.virtual.device

เราเพิ่งเรียนรู้ว่าเราต้องการเผยแพร่แอปที่สามารถสื่อสารกับ DriverKit ได้หรือcom.apple.developer.driverkit.userclient-accessไม่จำเป็นต้องมีสิทธิ์ อย่างไรก็ตามเราไม่ทราบวิธีสร้างโปรไฟล์การจัดเตรียมที่มีสิทธิ์นี้ เราพลาดอะไรบางอย่างเมื่อส่งคำขอสิทธิ์ไปยัง Apple หรือไม่? หรือสิทธิ์นี้พร้อมสำหรับบางรายการเมื่อเราเลือกความสามารถที่เหมาะสม?

คำตอบ

2 pmdj Aug 31 2020 at 19:15

เราพลาดอะไรบางอย่างเมื่อส่งคำขอสิทธิ์ไปยัง Apple หรือไม่?

แบบฟอร์มไม่ได้ถามเกี่ยวกับเรื่องนี้ แต่คุณต้องขออย่างชัดเจนในช่องข้อความรูปแบบอิสระ ตรวจสอบให้แน่ใจว่าคุณระบุรหัสบันเดิล dext ทั้งหมดที่แอปของคุณต้องใช้ในการสื่อสารด้วยเนื่องจากสิทธิ์จะได้รับสำหรับแต่ละ dext ทีละรายการ (หรืออย่างน้อยก็เมื่อไม่กี่สัปดาห์ที่ผ่านมา)

คุณสามารถส่งแบบฟอร์มอีกครั้งหรือลองตอบกลับอีเมลเกี่ยวกับการให้สิทธิ์เดิมของคุณ ตรวจสอบให้แน่ใจว่าคุณร้องขออย่างชัดเจนว่าช่องทางการเผยแพร่ใด (การพัฒนา, รหัสนักพัฒนา, App Store) ที่คุณจะใช้สิทธิ์กับ (และตรวจสอบว่าได้รับสิทธิ์ที่มีอยู่ทั้งหมดสำหรับช่องที่คุณต้องการ) เนื่องจากลูกค้ารายหนึ่งของฉันได้รับสิทธิ์บางอย่างสำหรับ การพัฒนาเท่านั้นไม่ใช่การแจกจ่ายเนื่องจากเราไม่ได้ร้องขออย่างชัดเจนเป็นอย่างอื่น

สำหรับวัตถุประสงค์ในการพัฒนาจนกว่าคุณจะได้รับสิทธิ์คุณสามารถเปิดใช้งานboot-argsพารามิเตอร์เคอร์เนลต่อไปนี้เพื่อให้ระบบเพิกเฉยว่าการให้สิทธิ์ขาดหายไปในโปรไฟล์การจัดเตรียมของคุณ (แต่แอปยังคงต้องการการให้สิทธิ์ในรายการ) - วิธีนี้แอปพลิเคชันยังคงสามารถทำได้ เปิดใช้งานและสิทธิ์การเข้าถึงผู้ใช้ฝั่งเคอร์เนลจะผ่านไป โดยปกติแอปจะถูกฆ่าทันทีโดย AMFI หากแสดงรายการสิทธิ์ที่ไม่ได้อยู่ในโปรไฟล์การจัดเตรียม

nvram boot-args="amfi_get_out_of_my_way=1"

(สิ่งนี้สามารถตั้งค่าได้จากสภาพแวดล้อมการกู้คืนเท่านั้นตรวจสอบให้แน่ใจว่าคุณไม่ได้เขียนทับสิ่งที่มีอยู่boot-argsเพียงแค่ผนวกเข้ากับสิ่งที่มีอยู่หากจำเป็น)

สุดท้ายนี้หากคุณวางแผนที่จะสื่อสารกับ dext จากแอปแซนด์บ็อกซ์(เช่นแอปใด ๆ ที่เผยแพร่ผ่าน App Store) ฉันคิดว่าคุณจำเป็นต้องสมัครข้อยกเว้นชั่วคราวสำหรับคลาสไคลเอ็นต์ของผู้ใช้ IOKit เพิ่มเติมจากแซนด์บ็อกซ์ นี่คือcom.apple.security.temporary-exception.iokit-user-client-classสิทธิ์และจะต้องออกให้สำหรับIOUserUserClientชั้นเรียน ฉันไม่ทราบรายละเอียดเกี่ยวกับวิธีการทำงาน แต่ฉันจะพูดถึงมันพร้อมกับสิทธิ์การเข้าถึง userclient ของชุดโปรแกรมควบคุมของคุณหากเกี่ยวข้องกับคุณ