Hacker News

خواندن شتاب‌سنج MEMS بدون سند در مک‌بوک‌های سیلیکون اپل از طریق iokit

\u003ch2\u003e خواندن شتاب سنج MEMS بدون سند در مک بوک های Apple Silicon از طریق iokit\u003c/h2\u003e \u003cp\u003e این مخزن منبع باز GitHub کمک قابل توجهی به اکوسیستم توسعه دهندگان است. این پروژه شیوه های توسعه مدرن و کدگذاری مشترک را به نمایش می گذارد.

1 min read Via github.com

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003e خواندن شتاب سنج MEMS بدون سند در مک بوک های Apple Silicon از طریق iokit\u003c/h2\u003e \u003cp\u003e این مخزن منبع باز GitHub کمک قابل توجهی به اکوسیستم توسعه دهندگان است. این پروژه شیوه های توسعه مدرن و کدنویسی مشترک را به نمایش می گذارد.\u003c/p\u003e \u003ch3\u003e ویژگی های فنی\u003c/h3\u003e \u003cp\u003e مخزن احتمالاً شامل موارد زیر است:\u003c/p\u003e \u003cul\u003e \u003cli\u003eکد تمیز و مستند\u003c/li\u003e \u003cli\u003e README جامع با مثال های استفاده\u003c/li\u003e \u003cli\u003eدستورالعمل‌های ردیابی و مشارکت را صادر کنید\u003c/li\u003e \u003cli\u003eبه روز رسانی و نگهداری منظم\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eCommunity Impact\u003c/h3\u003e \u003cp\u003eپروژه های متن باز مانند این پروژه به اشتراک گذاری دانش را تقویت می کند و نوآوری فنی را از طریق کد قابل دسترس و توسعه مشارکتی تسریع می کند.\u003c/p\u003e

سوالات متداول

شتاب‌سنج MEMS چیست و چرا سیلیکون اپل شامل آن می‌شود؟

شتاب‌سنج MEMS (سیستم‌های میکرو الکترومکانیکی) یک حسگر کوچک است که حرکت و جهت‌گیری را با اندازه‌گیری تغییرات در نیروهای شتاب تشخیص می‌دهد. مک‌بوک‌های سیلیکونی اپل شامل یکی از ویژگی‌هایی مانند حفاظت از حرکت ناگهانی برای ذخیره‌سازی و چرخش خودکار نمایشگر هستند. در حالی که اپل برخی از داده‌های حسگر را از طریق APIهای سطح بالاتر در معرض نمایش قرار می‌دهد، رابط خام IOKit برای این شتاب‌سنج تا حد زیادی مستند نشده است و دسترسی سطح پایین را برای توسعه‌دهندگانی که برنامه‌های کاربردی آگاه از حرکت یا تشخیصی ایجاد می‌کنند به چالشی تبدیل می‌کند.

چگونه IOKit دسترسی به حسگرهای سخت افزاری غیرمستند را فعال می کند؟

IOKit چارچوب هسته اپل برای برقراری ارتباط با درایورهای سخت افزار است. حتی زمانی که دستگاهی به طور رسمی مستند نشده است، رجیستری سرویس IOKit اغلب آن را فاش می کند - توسعه دهندگان می توانند خدمات متصل را برشمارند، با نام کلاس های شناخته شده مطابقت داشته باشند و روش های درایور را مستقیماً فراخوانی کنند. این تکنیک نیاز به مهندسی معکوس دقیق رابط‌ها و حقوق راننده دارد. این یک رویکرد قدرتمند برای هکرهای سخت افزاری و محققانی است که به داده های حسگر فراتر از آنچه SDK های عمومی اپل ارائه می دهند، نیاز دارند.

آیا استفاده از این رویکرد در برنامه‌های تولیدی macOS ایمن است؟

استفاده از رابط‌های IOKit غیرمستند خطرات واقعی را به همراه دارد: اپل می‌تواند در هر به‌روزرسانی macOS بدون اطلاع قبلی، بخش‌های داخلی درایور را تغییر داده یا حذف کند، و به طور بالقوه برنامه شما را بی‌صدا خراب کند. علاوه بر این، دسترسی به سرویس‌های هسته ممکن است به حقوق بالایی نیاز داشته باشد که توزیع App Store را پیچیده می‌کند. برای ابزارهای آزمایشی، پروژه‌های تحقیقاتی، یا ابزارهای داخلی، قابل اجرا است. اگر در حال ساختن یک جعبه ابزار توسعه‌دهنده گسترده‌تر هستید - برای مثال، نوعی پلتفرم چند ویژگی Mewayz با 207 ماژول با شروع قیمت 19 دلار در ماه - می‌خواهید این را در پشت یک رابط پایدار با مدیریت بازگشتی خلاصه کنید.

برای خواندن داده های شتاب سنج در Apple Silicon Mac به چه پیش نیازهایی نیاز دارم؟

برای تماس‌های IOKit به یک Mac با Apple Silicon (M1 یا جدیدتر)، Xcode با macOS SDK و آشنایی با C یا Swift نیاز دارید. تنظیمات حفاظت از یکپارچگی سیستم (SIP) ممکن است بسته به درایور بر دسترسی تأثیر بگذارد. درک اولیه از تطبیق سرویس هسته و روش IOConnectCall ضروری است. توسعه‌دهندگانی که ادغام‌های سخت‌افزاری آزمایشی ایجاد می‌کنند، اغلب چنین قابلیت‌های سطح پایین را با پلتفرم‌های ابزار گسترده‌تر جفت می‌کنند - به عنوان مثال، Mewayz، ماژول‌های توسعه‌دهنده و بهره‌وری 207 را با قیمت 19 دلار در ماه - برای تسریع گردش کار اطراف بدون بازسازی همه چیز از ابتدا، جفت می‌کنند.