A Script to thin Universal Apps on macOS quickly

Overview

UBThinner

A Script to thin Universal Apps on macOS quickly. It traverses through the given folder recursively, identifies any universal binaries and thins them using lipo. The default arch that is thinned is the opposite of your system's. Example - if you are on any M1 device, then your system arch is arm64, so x86_64 portions will be removed from every universal binary within the given folder/app.

Usage

Usage: UBThinner[.sh/.py] appDir [options]
Options:
 -b, makes a backup of the app
 -c, makes a copy of the app and modifies it instead of the original app
 -q, quiets the output
 -r, reverses the architecture to remove (for testing purposes or to send a thinned app to someone else)
 -p, only prints list of files that can be thinned (lipo is not called)

Notes

  • You will probably need the XCode Command Line Tools for lipo, install them in terminal by running xcode-select --install
  • The .cpp file can be compiled using g++, which also needs the command line tools. After installing them, run the following g++ -std=c++17 UBThinner.cpp -o UBThinner
  • If you get the Directory not writeable. Copy it to another folder where it can be written to error than you can either copy the app elsewhere (to the Documents folder for example) and run UBThinner there or you can run it as root. (su -> enter password -> run UBThinner)
  • I first made it in bash, which is why comments are included only in the .sh file. Then I ported the code to python. Lastly, I thought of trying it out in C++ to see how the speeds would compare. I used std::filesystem from C++17 to remain sane.
  • The bash script is quite obviously the slowest. There is not much difference between the python and cpp scripts on my machine (M1 Air 8/256 GB)
Owner
Arm
Mobile game modder. Dabbling in Obj-C, C++, Assembly (AArch64), Node.js, Python, Bash, Rust, Java, C#
Arm
Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11

Command-Line-SnapShot-Mounter Credit: chris1111 Apple This utility uses the macOS terminal Command Line SnapShot Mounter is an utility that allows you

chris1111 19 Jul 15, 2022
Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Cylance 218 Jul 28, 2022
A simple tool that aims to efficiently and quickly parse the outputs of web scraping tools like gau

massurl is a simple tool that aims to parse the outputs of tools like gau, and extract the parameters for each URL, remove duplicates and do it all very quickly. Because web scraping tools' outputs can get very large very quickly, it is nice to have a tool that parses them and and outputs something clean and easy to read.

Fr1nge 13 Jul 24, 2022
Helper C++ classes to quickly preintegrate IMU measurements between SLAM keyframes

mola-imu-preintegration Integrator of IMU angular velocity readings. This repository provides: IMUIntegrator and RotationIntegrator: C++ classes to in

The MOLA SLAM framework 9 Feb 11, 2022
A set of projects for quickly calculating the sine function using Chebyshev polynomials

sin_approx_04 Содержит несколько проектов, написанных на языке С. Цель их создания - реализовать быстрое вычисление тригонометрической функции синуса

null 8 Jul 11, 2022
Blade - A simple, fast, clean, and dynamic language that allows you to develop complex applications quickly.

The Blade Programming Language Quick links: BUILDING | CONTRIBUTING | DOCS | LICENSE | tl;dr Blade is a simple, fast, clean and dynamic language that

Blade Programming Language 96 Jul 30, 2022
A simulation of Newton's law of universal gravitation

Newton's law of universal gravitation This simulation uses the famous equation of Isaac Newton

Long Nguyen 54 Feb 24, 2022
A universal way to create a noclip mod in Unity games (Mono/IIL2CPP)

Universal-Unity-NoClip This projects aim to show how a noclip mod can be created in any unity game, regardless if its using an il2cpp or mono backend.

Jonah 21 Jul 24, 2022
Universal State Monitor software for home automation input devices

Universal State Monitor Copyright 2019-2021 SuperHouse Automation Pty Ltd www.superhouse.tv A binary state monitor for DIY home automation projects. T

SuperHouse Automation 3 Aug 24, 2021
Universal binaries for Linux.

FatELF The latest information about FatELF can be found at https://icculus.org/fatelf/ What is this? FatELF is a simple file format that allows you to

Ryan C. Gordon 32 May 22, 2022
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout.

Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout. This is the Miryoku implementation for QMK.

Manna Harbour 66 Jul 28, 2022
Somewhat Universal Widescreen Fix

SUWSF Somewhat Universal Widescreen Fix is intended to enable widescreen aspect ratios (e.g. 21:9, 32:9, 48:9) in games where it is unsupported. WARNI

Chris Yeninas 30 Jul 10, 2022
Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout

Miryoku is an ergonomic, minimal, orthogonal, and universal keyboard layout. Miryoku KMonad is the Miryoku implementation for KMonad.

Manna Harbour 21 Jul 28, 2022
This package contains the common algorithms in robotic arm, and I have developed it based on universal robot. It will be continuously updateing.

Robotic_Arm_Algorithms It contains the common algorithms in robotic arm, and will be recording the development as soon as I have completed the any one

Mingshan-Beal 54 Jul 29, 2022
Universal fix for Google SafetyNet on Android devices with hardware attestation and unlocked bootloaders.

Universal SafetyNet Fix This is a universal fix for SafetyNet on devices with hardware-backed attestation and unlocked bootloaders (or custom verified

Danny Lin 3.6k Aug 7, 2022
Vmpfix - Universal x86/x64 VMProtect 2.0-3.X Import fixer

vmpfix VMPfix is a dynamic x86/x64 VMProtect 2.0-3.x import fixer. The main goal of this project was to build correct and reliable tool to fix imports

Pavel 183 Jul 26, 2022
Basis Universal GPU Texture Codec

basis_universal Basis Universal Supercompressed GPU Texture Codec Basis Universal is a "supercompressed" GPU texture data interchange system that supp

null 2.1k Jul 29, 2022
A python script loader for Grand Theft Auto San Andreas

PyLoader Introduction This is a .asi plugin that allows writing custom Python scripts for GTA SanAndreas. This plugin is still in the early stages of

Grinch_ 23 May 22, 2022
Simple and easy script language for your dead brain, or break time of you.

What is this trush? Shut up, this isnt a trush. Lol This is a easy and simple script language. Change the world. Rotation the world. BIG REVOLUTION OF

zkr 6 May 28, 2021