Hacker News

Dokumentideta MEMS-kiirendusmõõturi lugemine Apple Silicon MacBookides iokiti kaudu

\u003ch2\u003eDokumenteerimata MEMS-kiirendusmõõturi lugemine Apple Silicon MacBooksis iokiti kaudu\u003c/h2\u003e \u003cp\u003eSee avatud lähtekoodiga GitHubi hoidla annab olulise panuse arendaja ökosüsteemi. Projekt tutvustab kaasaegseid arendustavasid ja koostööpõhist kodeerimist....

4 min read Via github.com

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003eDokumenteerimata MEMS-kiirendusmõõturi lugemine Apple Silicon MacBooksis iokiti kaudu\u003c/h2\u003e \u003cp\u003eSee avatud lähtekoodiga GitHubi hoidla annab olulise panuse arendaja ökosüsteemi. Projekt tutvustab kaasaegseid arendustavasid ja ühist kodeerimist.\u003c/p\u003e \u003ch3\u003eTehnilised funktsioonid\u003c/h3\u003e \u003cp\u003eHoiglasse kuulub tõenäoliselt:\u003c/p\u003e \u003cul\u003e \u003cli\u003ePuhas, hästi dokumenteeritud kood\u003c/li\u003e \u003cli\u003ePõhjalik README koos kasutusnäidetega\u003c/li\u003e \u003cli\u003eProbleemide jälgimise ja panuse juhised\u003c/li\u003e \u003cli\u003eRegulaarsed värskendused ja hooldus\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eCommunity Impact\u003c/h3\u003e \u003cp\u003eAvatud lähtekoodiga projektid, nagu see, soodustavad teadmiste jagamist ja kiirendavad tehnilist uuendust juurdepääsetava koodi ja koostöö arendamise kaudu.\u003c/p\u003e

Korduma kippuvad küsimused

Mis on MEMS-kiirendusmõõtur ja miks Apple Silicon seda sisaldab?

MEMS-i (mikroelektromehaaniliste süsteemide) kiirendusmõõtur on väike andur, mis tuvastab liikumise ja orientatsiooni, mõõtes kiirendusjõudude muutusi. Apple Silicon MacBookid sisaldavad peamiselt selliseid funktsioone, nagu äkkliikumise kaitse salvestamiseks ja automaatne ekraani pööramine. Kuigi Apple avaldab mõned andurite andmed kõrgema taseme API-de kaudu, jääb selle kiirendusmõõturi IOKiti töötlemata liides suures osas dokumenteerimata, mistõttu on madala taseme juurdepääs liikumisteadlike või diagnostikarakenduste arendajatele väljakutseks.

Kuidas IOKit võimaldab juurdepääsu dokumenteerimata riistvaraanduritele?

IOKit on Apple'i kerneli raamistik riistvaradraiveritega suhtlemiseks. Isegi kui seade pole ametlikult dokumenteeritud, paljastab IOKiti teenuseregister selle sageli – arendajad saavad loendada ühendatud teenuseid, võrrelda tuntud klassinimedega ja helistada otse draiverimeetoditele. See meetod nõuab juhiliideste ja õiguste hoolikat pöördprojekteerimist. See on võimas lähenemine riistvarahäkkeritele ja teadlastele, kes vajavad anduriandmeid rohkem, kui Apple'i avalikud SDK-d pakuvad.

Kas seda lähenemisviisi on MacOS-i tootmisrakendustes ohutu kasutada?

Dokumenteerimata IOKiti liideste kasutamisega kaasnevad tõelised riskid: Apple võib ilma ette teatamata muuta või eemaldada draiveri sisemisi MacOS-i värskendusi, mis võib teie rakenduse vaikselt rikkuda. Lisaks võib kerneli teenustele juurdepääsemine nõuda kõrgendatud õigusi, mis raskendavad App Store'i levitamist. Eksperimentaalsete tööriistade, uurimisprojektide või sisemiste utiliitide jaoks on see elujõuline. Kui loote laiemat arendaja tööriistakomplekti – näiteks sellist mitme funktsiooniga platvormi, mida Mewayz pakub 207 mooduliga alates 19 dollarist kuus –, võiksite selle varukäsitlusega stabiilse liidese taha abstraktselt võtta.

Milliseid eeltingimusi pean Apple Silicon Macis kiirendusmõõturi andmete lugemiseks?

Teil on vaja Maci, milles töötab Apple Silicon (M1 või uuem), Xcode'i koos macOS SDK-ga ja C- või Swifti tundmist IOKiti kõnede jaoks. Süsteemi terviklikkuse kaitse (SIP) sätted võivad olenevalt draiverist juurdepääsu mõjutada. Kerneli teenuse sobitamise ja IOConnectCallMethodi põhiteadmised on hädavajalikud. Eksperimentaalseid riistvaraintegratsioone loovad arendajad seovad sageli sellised madalatasemelised võimalused laiemate tööriistaplatvormidega – näiteks Mewayz komplekteerib 207 arendaja- ja tootlikkuse moodulit hinnaga 19 dollarit kuus –, et kiirendada ümbritsevat töövoogu ilma kõike nullist uuesti üles ehitamata.