Pierderea instantanee în greutate cum să dezbraci aplicațiile universale; Compania Eclectic Light

De îndată ce obținem o îmbunătățire precum aplicațiile universale, care rulează nativ fără probleme atât pe computerele Intel, cât și pe cele Apple Silicon Mac, utilizatorii vor să elimine codul executabil din ele și să le transforme numai în Intel sau ARM. Acest articol analizează ceea ce este implicat în eliminarea unei aplicații universale, astfel încât să ruleze doar pe o singură arhitectură și dacă acest lucru este fezabil sau le rupe semnătura.

pierderea

Ultima tranziție a procesorului Apple a început în 2006, când au devenit disponibile Mac-urile Intel. Anul următor, în Mac OS X 10.5, a fost introdusă semnarea codului și a fost verificată pentru prima dată de Gatekeeper până în 2012, în Mac OS X 10.8. Deci, întreaga ultimă tranziție, cu binarele sale universale, a fost finalizată înainte ca semnarea codului să devină predominantă sau aplicată. Cu Catalina și Big Sur, securitatea s-a schimbat dincolo de orice recunoaștere: deși pot rula în continuare cod nesemnat, aceasta este acum excepția de la regula conform căreia tot codul executabil trebuie semnat și, de asemenea, notarizat.

În timpul ultimei tranziții, mulți utilizatori și-au eliminat binarele universale, fie din codul PowerPC, fie din codul Intel, conform arhitecturii Mac-urilor lor din acel moment. Deoarece codul executabil este adesea doar o mică parte din dimensiunea totală a aplicației, spațiul de stocare pe care l-au câștigat adesea pur și simplu nu a meritat efortul. La acea vreme, am criticat această dezbrăcare, dar utilizatorii au făcut-o la fel.

Este fezabil cu aplicațiile universale de astăzi și cu protecția modernă de securitate? Modificarea binarelor universale va sparge semnăturile de cod și notarizarea și va provoca haos?

Dezactivarea unei aplicații universale

Sunt sigur că cineva construiește deja un utilitar pentru a face acest lucru, dar pentru moment voi folosi instrumentul de comandă lipo, care este conceput pentru acest lucru și sarcini conexe cu fișiere Mach-O. Ca test, am ales una dintre aplicațiile mele universale, Mints, care are o structură simplă. Se compune dintr-un binar executabil Mach-O care se află în folderul său standard Conținut/MacOS/Mints din aplicație. Aplicațiile mai complexe vor conține binare Mach-O în alte locații, cum ar fi aplicațiile de ajutor. Aplicațiile conțin aproape invariabil și dylibs, în/Contents/Frameworks, care pot fi și binare universale, dar aici le voi ignora.

Înainte de a elimina binarele universale, confirmați ce arhitecți acceptă fișierul Mach-O folosind o comandă de genul