Mac apps often do various things on your computer. Just because you dragged it to Bin, doesn't mean there are no leftovers on your computer. I'd prefer proper uninstaller any day.
I started developing for my Mac a few weeks ago and I'm blown away by how easy it is to make an app that feels Mac native and includes quality of life features like CloudKit sync across all your devices. It's become clear that most companies don't give the tiniest shit about any of that.
"Does it have a way to uninstall, and does that uninstallation clean every application artifact?" is such a great litmus test for just how much a software company actually cares about having a proper finished product that respects the user. Nobody forces a company to do it, but when they don't do it, you can probably bet that they're cutting corners and disrespecting the user's machine in other ways, too.
It's like "Do you return your shopping cart to the cart storage or leave it in the carpark?" You're allowed to just shove your cart away and drive off, but people who do that are highly probably assholes in other ways, too.
Partition Magic was among the first utilities recommended to me by my more experienced water I got my first PC. It served me well for many years since!
It still is for a lot of Mac Apps. You download a DMG, and you get somethinglike [0] where you drag the icon over, and it installs. The last app I uninstalled also removed the matching Library Support folders, which was neat!
Years ago I shipped a MacOS product. If you deleted it, you would get an error emptying the recycle bin (or force-deleting the application bundle if you did an rm -R to it.)
Why? Well, at the time Windows Explorer had an API for extensions, but MacOS didn't for Finder. We needed to add some menu items to the context menu, which on MacOS required reverse engineering Finder and injecting code into it. This then meant that Finder had an open file handle into our application bundle until you either restarted Finder or restarted MacOS. Then, as long as you didn't start our application, you could cleanly delete it. (Thankfully MacOS cleaned this up with the Finder extension API about a decade ago.)
Having gotten familiar with internals of both Windows and MacOS... MacOS has its own set of gremlins too.
I don’t understand. Any MacOS Finder that had an open file handle into an application bundle runs on the Unix version of MacOS, and that allows deletion of open files (the inode stays around until the process exits), doesn’t it?
Or did/does the Finder check whether to-be-deleted files are open? Or did I forget how older Mac file systems behaved?
As a mac user for 10+ years that cycled about 7 macs for personal and professional use, I've used Finder about biweekly to click on the airdrop button..
I think the most obscene thing here is that macOS is now littered with permission prompts for camera, background execution, etc, but makes no effort to stop even industry partners from spraying the disk with dozens of files that can’t be removed easily.
That's because this particular sort of cyber security is merely theatrics with the goal of reducing user agency and increasing paranoia and vendor lock-in. The user facing friction is the goal. There will always be scams and viruses; the only practical outcome will be that you have less control over your computer, and Apple/MS/Google have more. See: Sideloading, Wayland, UWPs, iOS JIT, Windows XP and 7 still being used for accessibility
I often have apps on my Mac or iPhone that ask for permission to see my camera, microphone, contacts, etc etc that I don't want it to see. But I do want other apps to be able to access those things.
Being able to stop those apps from accessing before they do instead of trying to fix it after is incredibly valuable.
Sure some users just accept everything, but that is not an argument against them existing in the first place.
Those examples are very reasonable. However I also had Mac OS suddenly treat all m4a files on the system as potential malware and it blocked any attempt at opening them. Why did it do that? Because I checked the "set as default app" option, one minute after I had already opened the same file using the same application. The only way to open the files was by entering the password in the settings app each time - but re-setting the same app as default in the file's Get Info dialog got rid of that "protection" system-wide without any password prompts or extra permissions. I don't see how that was supposed to help with security.
We are moving away from the old world where you can trust the applications you are running on your computer, to today's world where you can't. The unix permission model is based on apps running as your user having access to every device and file you, the user, have access to. The threat was "other system users trying to access your files and devices" but now the threat is "applications you run trying to access your files and devices." OS vendors have been slow to adapt to this new threat model.
Even today, any rando application I download and run can read and/or write to any file on my system that I own and have permission to read and/or write, unless I go out of my way to run it in a chroot, a container, a jail or whatever. That's just poor security in a world where nearly every commercially developed application is an attacker.
You often cannot even tell what the permission prompts are for. Sometimes they have generic names like a programming language is requesting something. Not sure what that’s about.
those are interpreters, the language is interpreted by a binary called `ruby` or `python`, for example, so that happens to be the process that's requesting the permission
> I shut down my Mac. Held the power button. Booted into Recovery Mode. Opened Terminal. Ran csrutil disable. Rebooted. Opened Terminal. Deleted the kernel extensions. Ran find to confirm they’re gone. Shut down AGAIN. Booted into Recovery Mode AGAIN. Ran csrutil enable. Rebooted AGAIN. All this just to delete four dead files and their mirrors from a disk utility.
This one is entirely on Apple. It was Apple who decided that "root isn't good enough" and that you, the user, shouldn't be able to administer your own goddamn system as root, without performing backflips while singing Happy Birthday.
> It makes me wonder why did large companies are investing so much in web and putting web devs to write disk utility desktop apps?
It's because in these environments where corporate cancer has metastasised, programmers are not in charge of hiring programmers, or much of anything when it comes to decision-making really. HR is composed of people who are not programmers. They are looking to hire people with a list of shiny hot new web stack keywords on a resume, because they have literally no other concept of how to filter candidate applications. So they end up with a bunch of hot React devs and nobody capable of making software that is fit for task.
Because they lack any better signals from within the company. At several places I have worked, hiring is almost fully detached from the groups that need the workers. They never could find good candidates for our teams. This kind of disconnect is what corporate cancer looks like, and it is endemic in big business.
To a non-developer, every application they read might as well be a list of buzzwords. They cannot comprehend a word of it. Web stacks offer the opportunity to list more and newer buzzwords. Do I set up an interview with the person who lists "C systems programmer" or with the person who is a "full stack React, Tailwind, Next.js, Node.js, Electron, Docker, Kubernetes, AWS engineer seasoned in Javascript, Typescript, HTML, and CSS"? Well, the latter certainly sounds 10x more impressive. Into the trashbin the systems programmer application goes, they just don't have enough skills for an enterprise of our scale!
this reminds me, I still have an ancient version of iTunes on my old win7 box because something got corrupted at some point and now I can't uninstall it.
Not being able to simply remove a program like you would any other program is next level evil in my book.
I have a modern application from the macOS App Store in a permanent update purgatory. I dared drag to delete it, now it won’t update nor open. But an update is always shown available!
I empathize with many of the complaints, but some are a bit ridiculous. Using custom fonts in software UI is completely reasonable and normal, even if you don't like it.
I remember a time when UIs looked consistent, instead of custom-branded, and I still think the "completely reasonable and normal" state is the former, not the latter.
As I remember, that was before the rise of multi-platform, web-based and mobile apps.
You'd get Office 2003 and it'd follow the Windows XP style with lots of blue [1] and you'd get Office 2004 for Mac with the brushed metal styling [2] - and many applications only targeted a single platform.
Whereas in the modern age you get Slack for Web, Slack for Windows, Slack for Mac, Slack for Linux, Slack for iOS and Slack for Android - and it tries to be consistent across different platforms, instead of being consistent with different platforms.
We never pushed back on it when we could, because we thought WinAmp was sooooo cool, and now every application you run on your machine has a different look and feel and does not respect your desktop themes or customizations.
I feel like the complaints here are…not really Samsung's fault?
> So I’ve dug around and found a cleanup script buried six folders deep inside the app bundle. Let’s try to run it:
> sh ~/Library/'Application Support'/Samsung/'Samsung Magician'/SamsungMagician.app/Contents/Resources/CleanupMagician_Admin_Mac.sh
> It ran. And my kitty exploded. Sweet kitty overflowed. Hundreds - literally hundreds - of lines of chown: Operation not permitted.
I mean, if you read on, you'll find that most of the things that were removed were from system folders that are owned by root? Presumably this was run without sudo…
> I rm -rf every Samsung folder I could find. The Preferences. The Caches. The LaunchAgents. The LaunchDaemons. The kernel extensions. The crash reports.
…that's where you put your stuff on macOS. Would you prefer that they picked some non-standard location you had to dig up?
> Package receipts in /private/var/db/receipts/ (Samsung left its receipts behind like a burglar leaving a bunch of turds in the living room)
This is again for your benefit so you know what was installed on your system
> Cached processes in /private/var/folders/7v/<your username hash>/C/ (yes, Samsung is in there too)
That's getconf DARWIN_USER_CACHE_DIR
> I shut down my Mac. Held the power button. Booted into Recovery Mode. Opened Terminal. Ran csrutil disable. Rebooted. Opened Terminal. Deleted the kernel extensions.
That's just how kernel extensions are on Apple silicon
* going into some internal directory and running a script based on the name
* deleting a bunch of directories
Seem like pretty bad ideas. Especially for software provided by a hardware vendor, which is probably a little clunky and inherently touches deep stuff.
But not including a removal script seems like bad form.
Edit: On the other hand, I don’t actually know for certain that the tool doesn’t have an uninstall script. Just, that the author didn’t find it. This seems worth noting because the author really wasn’t giving them the benefit of the doubt on anything, see all of the irrelevant complaints about animations.
I mean, there clearly was an uninstall script. It was in the app's Contents/Resources file, and it was called CleanupMagician_Admin_Mac.sh. Which means there was some intended way to trigger running it. Perhaps Samsung's instructions or their menu system weren't clear and they managed to hide it from him. But there most definitely was an uninstall script, and if he had managed to find the intended button in the interface, it would have asked for admin permissions and then done all the cleanup for him. The very cleanup that he complained about having to do by hand.
> I feel like the complaints here are…not really Samsung's fault?
I don't know man, the last time I uninstalled an app on macOS, all I had to do was drag it to the trash. If you find this procedure sane, then I don't know what to tell you.
Samsung is responsible of how users interact with their app, including its install and removal.
It's a .sh script, so he could have read it before running it. And when he saw "chown: Operation not permitted", he could have realized that the word Admin in the script was a clue that it needed, well, admin-level privileges, and he should try running it with sudo (after reading it first, naturally). I'm with you, I feel like this is someone who caused himself a lot of self-inflicted pain.
I mean, if he had read the script before deleting it (that's the third time I've mentioned reading the script, do you think I'm dropping enough hints?), he might have found a handy list of ... ALL THE FILES HE WAS LOOKING FOR. You know, all the 18 or so locations that he had to find by hand.
But nope, he didn't ... yes, I'm going to say it for the fourth time ... READ THE SCRIPT.
And what about for users that either can’t find this uninstall script or wouldn’t know how to read it or what the contents mean? While I think you do have a point, we also can’t assume that the uninstall script really would’ve removed all traces.
I hate how Mac OS makes it harder to delete than to add stuff to system folders. I forgot what was it, but adding something worked with sudo, removing it required disabling sip. Is there a reason for that?
I recently tried to install Samsung magician on Windows 11. Tried. It flat out doesn’t work, tried some basic remediation and internet searching to figure it out, but could not get it to run at all. Completely nonfunctional. Seems to be an issue with some electron configuration or command line args. I gave up because it wasn’t worth more effort, but I believe it when I read that the software is a dumpster fire.
This type of writing is very grating on the nerves. It's not AI slop, but it feels the same way, where AI slop is trying to trick you into thinking every sentence is the pinnacle insight of human endeavor of all history, this writing stops every single sentence to say "Are you outraged? I'm outraged! You should be outraged! This is outrageous!"
Especially when the outrage is that the user didn't follow instructions to use sudo on an uninstaller that needs to touch root owned files.
The writing style has a name called ragebaiting. The gold:
> Localization files for every language on Earth
Yeah because English is the only one language that matters. Let's fuck up all the non-native speakers to save, I don't know, 50kb of text files? How could one frame this as a bad thing?
> Help documentation with 40+ screenshots in 10 languages
Seriously how Anglocentric could this author be? Even physical products have multi-language manuals nowadays.
In the past I've certainly seen that, but more and more I see all the language files being installed. You never know when someone is going to change their language, add another one, or add a new user.
Well I once watched an sysadmin with 430 years of experience swear his way through an installation process. Until I, back then a intern, pointed out that maybe reading the install instructions would have been a good idea, since there were some steps in there that would have saved us some time. We scrapped everything and reinstalled following the instructions and 15 minuted later it worked.
I admit that I also often deviate from installation processes, but only when I really know why I want to do that. And I tend to read the instructions first.
But I know people who are snuggly proud about not reading the manual and I really don't get it.
> But I know people who are snuggly proud about not reading the manual and I really don't get it.
Agreed... but there seem to be more and more products that either don't have manuals, or whose manuals are so badly written that reading them turns out to be a waste of time. I feel like people are being trained not to read manuals anymore, so I understand the people whose first instinct is "that thing is going to be useless, I'm not going to waste my time reading it". But not the ones who are proud of not reading manuals, that doesn't make sense to me either.
Parts of that article are just downright terrible.
First, the criticism of Electron is moot. Yes it's not sleek, but it's sufficient. This app is not supposed to be used heavily on a daily basis. Run it once to setup your drive, run it a few months later for a firmware upgrade or a quick health check and that's all. And when you had a taste of the absolute UX monsters some hardware vendors can produce on the software side, really an Electron app feels nice.
But it gets more ridiculous. Embedded fonts? God forbid companies enforce their own design guidelines in their software. Translations? Fuck non-English speakers. User guide with screenshots? The audacity.
Maybe Samsung used that when naming their product.
I am old, but I miss the days when the install process was copy . to /<appFolder> and the uninstall process was delete /<appFolder>
Personally, I'd look for another alternative from a company that better understands the Mac.
Chrome, for instance, previously used an installer that had to run with administrative permissions and famously ended up rendering systems unbootable.
System utilities and drivers are the exception, since they have to modify system folders to install.
Partition Magic was pretty awesome, BTW.
And the companies that make such products _never_ care about making sure an uninstallation is actually clean.
It's like "Do you return your shopping cart to the cart storage or leave it in the carpark?" You're allowed to just shove your cart away and drive off, but people who do that are highly probably assholes in other ways, too.
I don't remember this ever being the case, even in times of DOS.
[0] https://stackoverflow.com/questions/8680132/creating-nice-dm...
Due to "new and better" approach, each program puts its data in 5 different folders for "multi user" reasons.
What is infuriating that all those folders are hidden and all of them are on C: drive. So your C: drive gets clogged.
This makes it impossible to track how much space each program uses.
(On a side note its been years since floppy drives were the A: drive... and yet we are still stuck with the primary disk being called C:)
The logic behind that is pretty obvious isn't it?
Why? Well, at the time Windows Explorer had an API for extensions, but MacOS didn't for Finder. We needed to add some menu items to the context menu, which on MacOS required reverse engineering Finder and injecting code into it. This then meant that Finder had an open file handle into our application bundle until you either restarted Finder or restarted MacOS. Then, as long as you didn't start our application, you could cleanly delete it. (Thankfully MacOS cleaned this up with the Finder extension API about a decade ago.)
Having gotten familiar with internals of both Windows and MacOS... MacOS has its own set of gremlins too.
You can't really blame macOS for this one. Interesting to hear this isn't just a Windows thing though.
Or did/does the Finder check whether to-be-deleted files are open? Or did I forget how older Mac file systems behaved?
I often have apps on my Mac or iPhone that ask for permission to see my camera, microphone, contacts, etc etc that I don't want it to see. But I do want other apps to be able to access those things.
Being able to stop those apps from accessing before they do instead of trying to fix it after is incredibly valuable.
Sure some users just accept everything, but that is not an argument against them existing in the first place.
Even today, any rando application I download and run can read and/or write to any file on my system that I own and have permission to read and/or write, unless I go out of my way to run it in a chroot, a container, a jail or whatever. That's just poor security in a world where nearly every commercially developed application is an attacker.
I can see the rest, but why did you mix in Wayland, a open source display protocol?
Anyway, I kinda like PearCleaner for removing the cruft. It’s not perfect but it’s open source and one of the better options imo.
This one is entirely on Apple. It was Apple who decided that "root isn't good enough" and that you, the user, shouldn't be able to administer your own goddamn system as root, without performing backflips while singing Happy Birthday.
Even most power users leave it on except for temporary situations like this because it’s a helpful security protection.
It makes me wonder why did large companies are investing so much in web and putting web devs to write disk utility desktop apps?
It's because in these environments where corporate cancer has metastasised, programmers are not in charge of hiring programmers, or much of anything when it comes to decision-making really. HR is composed of people who are not programmers. They are looking to hire people with a list of shiny hot new web stack keywords on a resume, because they have literally no other concept of how to filter candidate applications. So they end up with a bunch of hot React devs and nobody capable of making software that is fit for task.
buttons being jpegs is the norm
Not being able to simply remove a program like you would any other program is next level evil in my book.
You'd get Office 2003 and it'd follow the Windows XP style with lots of blue [1] and you'd get Office 2004 for Mac with the brushed metal styling [2] - and many applications only targeted a single platform.
Whereas in the modern age you get Slack for Web, Slack for Windows, Slack for Mac, Slack for Linux, Slack for iOS and Slack for Android - and it tries to be consistent across different platforms, instead of being consistent with different platforms.
[1] https://en.wikipedia.org/wiki/Microsoft_Office_2003 [2] https://en.wikipedia.org/wiki/Microsoft_Office_2004_for_Mac
> So I’ve dug around and found a cleanup script buried six folders deep inside the app bundle. Let’s try to run it:
> sh ~/Library/'Application Support'/Samsung/'Samsung Magician'/SamsungMagician.app/Contents/Resources/CleanupMagician_Admin_Mac.sh
> It ran. And my kitty exploded. Sweet kitty overflowed. Hundreds - literally hundreds - of lines of chown: Operation not permitted.
I mean, if you read on, you'll find that most of the things that were removed were from system folders that are owned by root? Presumably this was run without sudo…
> I rm -rf every Samsung folder I could find. The Preferences. The Caches. The LaunchAgents. The LaunchDaemons. The kernel extensions. The crash reports.
…that's where you put your stuff on macOS. Would you prefer that they picked some non-standard location you had to dig up?
> Package receipts in /private/var/db/receipts/ (Samsung left its receipts behind like a burglar leaving a bunch of turds in the living room)
This is again for your benefit so you know what was installed on your system
> Cached processes in /private/var/folders/7v/<your username hash>/C/ (yes, Samsung is in there too)
That's getconf DARWIN_USER_CACHE_DIR
> I shut down my Mac. Held the power button. Booted into Recovery Mode. Opened Terminal. Ran csrutil disable. Rebooted. Opened Terminal. Deleted the kernel extensions.
That's just how kernel extensions are on Apple silicon
* going into some internal directory and running a script based on the name
* deleting a bunch of directories
Seem like pretty bad ideas. Especially for software provided by a hardware vendor, which is probably a little clunky and inherently touches deep stuff.
But not including a removal script seems like bad form.
Edit: On the other hand, I don’t actually know for certain that the tool doesn’t have an uninstall script. Just, that the author didn’t find it. This seems worth noting because the author really wasn’t giving them the benefit of the doubt on anything, see all of the irrelevant complaints about animations.
I don't know man, the last time I uninstalled an app on macOS, all I had to do was drag it to the trash. If you find this procedure sane, then I don't know what to tell you.
Samsung is responsible of how users interact with their app, including its install and removal.
I mean, if he had read the script before deleting it (that's the third time I've mentioned reading the script, do you think I'm dropping enough hints?), he might have found a handy list of ... ALL THE FILES HE WAS LOOKING FOR. You know, all the 18 or so locations that he had to find by hand.
But nope, he didn't ... yes, I'm going to say it for the fourth time ... READ THE SCRIPT.
Especially when the outrage is that the user didn't follow instructions to use sudo on an uninstaller that needs to touch root owned files.
> Localization files for every language on Earth
Yeah because English is the only one language that matters. Let's fuck up all the non-native speakers to save, I don't know, 50kb of text files? How could one frame this as a bad thing?
> Help documentation with 40+ screenshots in 10 languages
Seriously how Anglocentric could this author be? Even physical products have multi-language manuals nowadays.
I admit that I also often deviate from installation processes, but only when I really know why I want to do that. And I tend to read the instructions first.
But I know people who are snuggly proud about not reading the manual and I really don't get it.
Agreed... but there seem to be more and more products that either don't have manuals, or whose manuals are so badly written that reading them turns out to be a waste of time. I feel like people are being trained not to read manuals anymore, so I understand the people whose first instinct is "that thing is going to be useless, I'm not going to waste my time reading it". But not the ones who are proud of not reading manuals, that doesn't make sense to me either.
That is way to simplistic to be one size fits all.
A lit of practices save you 10s each day but when they fail you lose 10 years’ worth of savings.
It was funny and helpful.
First, the criticism of Electron is moot. Yes it's not sleek, but it's sufficient. This app is not supposed to be used heavily on a daily basis. Run it once to setup your drive, run it a few months later for a firmware upgrade or a quick health check and that's all. And when you had a taste of the absolute UX monsters some hardware vendors can produce on the software side, really an Electron app feels nice.
But it gets more ridiculous. Embedded fonts? God forbid companies enforce their own design guidelines in their software. Translations? Fuck non-English speakers. User guide with screenshots? The audacity.