Fix 10.9 compatibility. #9

Closed
mralexgray opened this Issue Oct 3, 2013 · 65 comments

Projects

None yet
@mralexgray
Contributor

How can I help? Whats the problem?

@D-an-W
D-an-W commented Oct 5, 2013

I too would really appreciate 10.9 compatibility, what are the chances?

@darwin
Member
darwin commented Oct 10, 2013

Current implementation is not possible under Mavs. They check all dynamically loaded libraries for apple code signature. We would have to "jailbreak" dynamic library loader, which would be a bad thing.

I'm thinking about implementing Asepsis in TotalFinder again. As I originally did under Snow Leopard. This wouldn't be perfect solution because it would redirect only .DS_Store files manipulated by Finder, but would work reasonably well, because Finder is the root cause of evil.

The problem is that I spent way too much time dealing with this Asepsis toy...

@mralexgray
Contributor

is TF making enough money to justify adding a (desirable) feature?

@darwin
Member
darwin commented Oct 10, 2013

The question should be: "could Asepsis potentially increase TotalFinder sales to justify working on it?" :) I have long list of requested features from paying TotalFinder users.

I've removed Asepsis from TotalFinder and lived happily since then. Asepsis feature in TotalFinder was not only earning any money, worse: it was causing a lot of support requests because people didn't know what it does and what it is good for (only minority of users read docs). I got nightmare emails that someone broke computer and claiming that last thing he did was enabling Asepsis - and the real cause could have been any other random thing.

This time I would keep Asepsis as a separate product, which would install a TotalFinder plugin. This way I would not trigger support hell.

@protomouse

Hey @darwin. I really appreciate the work you've put into Asepsis and the fact that you made it open source. I originally made a comment about kext signing, but soon realized that you were talking about user space code. Apologies for that. Just a thought for anyone interested - would a 100% kernel space solution of intercepting FS operations be viable at all?

@darwin
Member
darwin commented Oct 11, 2013

@protomouse I don't think kext solution is viable. You have easy KAUTH but that is usable only for observing file operations, not to rewrite paths. Other solutions could probably integrate deeper in kernel disk subsystem, but that would be too complex/dangerous IMO.

@mralexgray
Contributor

What about an FSEventStreamRef that just looks for changes on the "directory level", with a good built-in list of black and white-listed folders with which it should or should not touch - and then checks whether that folder has a Ds-Dumdum - and simply trashes it... I think that's what BlueHarvest does...

@darwin
Member
darwin commented Oct 11, 2013

@mralexgray well, this would work for cleanup, but I'm afraid Finder would be loosing state which is stored in .DS_Store files (labels, icon positions, expanded folders in list view, etc.)

@mralexgray
Contributor

thats why the proxied cache/redirect/whatever it was that you did was so great/mysterious/iffy. what is it about mavericks that breaks that implementation?

@darwin
Member
darwin commented Oct 11, 2013

As I wrote, they hardened security measures when loading dynamic libraries, I cannot replace theirs without breaking signature chain anymore:
"Current implementation is not possible under Mavs. They check all dynamically loaded libraries for apple code signature. We would have to "jailbreak" dynamic library loader, which would be a bad thing."

@mralexgray
Contributor

oh, duh, right. what about fsevents? it could even be manual / periodic with that feature that you can replay events since your last check... https://github.com/pebrc/Sorter

@coaxmetal

for what it's worth (and this is on me, but its bound to come up) activating and/or installing the updater on a recently upgraded 10.9 system breaks it completely, not even safe mode can restore it. Reinstalling 10.9 is a working fix. I removed all traces of it via single user mode but that still didn't help, only a reinstall did

@mralexgray
Contributor

i feel as if it (asepsis).. maybe needs to be deprecated / hidden from passerby, etc. it's like poisonous candy dangling within babies' reach. or an old hag, that used to be a sexy mermaid... calling from the shores of yonder.. where DS_Store has never plagued the masses, with her incessant reminder that... Apple doesn't care. waaaaaah.
131023-0001

@darwin
Member
darwin commented Oct 23, 2013

@coaxmetal I wonder how did you get updater to offer you a new version. Did you upgrade from OS 10.7 ? Yes 1.3 is dangerous, but everyone should already have it and it disables when upgrading to Mavericks.

1.3.1 is the latest on the website and it refuses to install on Mavericks.

@coaxmetal

@darwin I upgraded from 10.8, but after I did I used asepsisctl to manually reinstall it (which of course wasn't very smart) and that broke it. I ended up reinstalling 10.9 which fixed it.

@nickskull

I unfortunately did the same thing and now OSX won't even boot. Is there a way how to fix this? I would prefer not have to reinstall.

@darwin
Member
darwin commented Oct 24, 2013

@nickskull have you tried to follow this article: http://asepsis.binaryage.com/#panic-mode- ?

@nickskull

Oh, I need to learn how to read. It worked, thanks :)

@NicolasFritz

"They check all dynamically loaded libraries for apple code signature. We would have to "jailbreak" dynamic library loader, which would be a bad thing."

There is our solution. How about a nice tutorial on how to do this? Then i'll be happy to run your asepsis again.

@darwin
Member
darwin commented Nov 5, 2013

@NicolasFritz I don't have a tutorial for you. I don't fully understand code signing changes implemented in Mavericks. I would need to do some studying and reverse-engineering again :(

@danielcampo

"This time I would keep Asepsis as a separate product, which would install a TotalFinder plugin. This way I would not trigger support hell."

Could you potentially do the opposite of this and offer Asepsis as a paid plugin to TotalFinder? (Unless I misunderstood your previous statement)

Another alternative would be to calculate the time you think it would take to achieve Asepsis' functionality in 10.9, add a buffer for the expected "unexpected" hiccups, and then launch a small crowd funding campaign to gauge interest and potentially flip the bill altogether.

@darwin
Member
darwin commented Nov 6, 2013

I'm happy to announce that I just found a way how to make existing implementation work under Mavericks.

I plan to finish the plumbing and testing today and release Mavericks-compatible Asepsis 2.0 this week.

@danielcampo

@darwin Great news! I look forward to it.

@protomouse

@darwin You, sir, are a gentleman and a scholar!

@ghost
ghost commented Nov 6, 2013

Best news evah.

@darwin darwin closed this in 6d7849c Nov 6, 2013
@GabLeRoux

Woohoo! :D

@D-an-W
D-an-W commented Nov 6, 2013

Excellent news, did I peak too soon in trying to install it via the terminal as I couldn't boot and had to uninstall it from single user mode?

Does "asepsisctl uninstall" completely remove everything?

@darwin
Member
darwin commented Nov 6, 2013

I'm still testing it. Please do not install it from sources today. Recent HEAD has still some flaws :(

Please email me at antonin@hildebrand.cz and I will help you to get it boot again. You have to do it manually by copying A_Backup over A (in single user mode):

cp -r "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_Backup"/* "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A"

@darwin
Member
darwin commented Nov 6, 2013

Newly sudo is also dependent on DesktopServicesPriv.framework and this makes whole "revert" process somewhat tricky.

@cidzoo
cidzoo commented Nov 6, 2013

Great job! Thanks ๐Ÿ‘

@jgrevich
jgrevich commented Nov 7, 2013

๐Ÿ‘ to all this! Thanks for saving us from Apple filesystem litter.

@mintystark

Can't wait!

Thanks for your Hard work.

@mralexgray
Contributor

Is it safe to use yet?

@darwin
Member
darwin commented Nov 7, 2013

Had quite busy day doing other stuff. Wait for me to test it properly on
all systems with and without prior asepsis installations.

On Thursday, November 7, 2013, Alex Gray wrote:

Is it safe to use yet?

โ€”
Reply to this email directly or view it on GitHubhttps://github.com/binaryage/asepsis/issues/9#issuecomment-27986736
.

@mintystark

I know we are all eager, but I would prefer to wait until it has been properly tested. I would help test it, but I only use Mac as my product computer, so I wont be able to.

Thanks

@darwin
Member
darwin commented Nov 7, 2013

Ok, guys. I have tested it on all 10.7 - 10.9 as installing from scratch. Under 10.7-10.8 also installing over installed asepsis 1.3.2. All went ok.

Please go here and download Asepsis 1.4 and install it on your machines:
http://asepsis.binaryage.com/#changelog

If anything goes wrong, don't panic, I'm here to help.

@D-an-W
D-an-W commented Nov 7, 2013

Booted ok this time ;)

@danielcampo

Freshly installed on 10.9 with no issues.

Thanks for your hard work!

@mintystark

Installed it and Reboot. No Change.
Ran the Uninstaller, Rebooted.
Installed Again, Rebooted, No Change.
Installed Again, Rebooted, WORKING!

Thanks

@mralexgray
Contributor

Im skeered.

@darwin
Member
darwin commented Nov 7, 2013

Do you want your system to live forever? ;)

@jeremyworboys

Worked first time for me (10.9) ๐Ÿ‘

@mralexgray
Contributor

This Mac Pro 3,1 is like 6 years old, has a really loud Graphics card, and 17 hard drives.. It wants its DS_Store's like crack. Dare I tempt fate?

sad_mac_1280x800

@NicolasFritz

Thanks a lot man ! This is amazing ๐Ÿ‘ :)

@acjay
acjay commented Nov 8, 2013

@darwin Awesome work! How'd you do it?

@cidzoo
cidzoo commented Nov 9, 2013

Installed the new 1.4 version on Mavericks. It's working like a charm, one shot! Many thanks!

@BartoszKaszewczuk

Doesn't seem to be working for me (fresh 10.9) despite installing, reinstalling and overwriting installation few times. Always throws:

DesktopServicesPriv (/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv) is not properly installed.
  => Have you installed system update recently? It might revert it back to the original version.

[Update]
Got this fixed. Apparently GUI installer doesn't prompt you that you need to accept Xcode ToS for it to run. Ran reinstall script and got prompted to do so in terminal when it was replacing signature:

/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv: replacing existing signature

You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode.
@darwin
Member
darwin commented Nov 10, 2013

@BartoszKaszewczuk Aha, this is quite serious problem. Thanks for reporting.

@hiramhibbard

Got it working no problem. I'm stoked! Can't live without it :)

@leiweke
leiweke commented Nov 15, 2013

@BartoszKaszewczuk what should i do exactly to fix it? Xcode is starting normally.

@BartoszKaszewczuk

@leiweke Reinstall Asepsis wrapper by running uninstall and install script in terminal (reboot after uninstall is complete):

asepsisctl uninstall_wrapper
asepsisctl install_wrapper

If you haven't accepted Xcode's ToS then install script should prompt you to do so in terminal.

@leiweke
leiweke commented Nov 15, 2013

Thanks a lot looks good now

@cgtm
cgtm commented Nov 19, 2013

[Mavericks / Asepsis 1.4]
Hmm โ€ฆ I uninstalled via the command line as Asepsis kept telling me there was a problem. Rebooted. Then tried command line install. Here's what I got:

$ asepsisctl install_wrapper

sudo cp -r "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A" "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_Backup"
Password:
sudo touch "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/asepsis-1.4"
sudo cp -r "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A" "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_"
sudo "/Library/Application Support/Asepsis/install_name_tool" -id "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv" "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv"
sudo "/Library/Application Support/Asepsis/codesign" --force --sign - "/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv"
/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv: replacing existing signature
xcrun: error: invalid active developer path (/usr/bin), missing xcrun at: /usr/bin/usr/bin/xcrun
/System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A_/DesktopServicesPriv: the codesign_allocate helper tool cannot be found or used
failed with code pid 835 exit 1

Any ideas? I only have the Xcode command line tools installed. I guess I'll see if there is an update โ€ฆ

@cgtm
cgtm commented Nov 19, 2013

OK, updated to latest command line tools and, after a couple of uninstall/reboot/install cycles, it's all working again.

Thanks for such a useful tool!

@peterjwest

Thanks so much for getting this working! Time to purge those bastards.

@thejase
thejase commented Feb 27, 2014

Updating to 10.9.2 has broken asepsis again. I tried uninstall_wrapper and install_wrapper to no avail.

@darwin
Member
darwin commented Feb 27, 2014

Have you restarted? People have been reporting that restart resolved the
issue.

On Wed, Feb 26, 2014 at 7:23 PM, Jason Featheringham <
notifications@github.com> wrote:

Updating to 10.9.2 has broken asepsis again. I tried uninstall_wrapper and
install_wrapper to no avail.

โ€”
Reply to this email directly or view it on GitHubhttps://github.com/binaryage/asepsis/issues/9#issuecomment-36195822
.

@adrianopaladini

EDITED: I rebooted with asepsis installed and went back to work properly.

After update to 10.9.2, asepsis broke. In terminal i do:
1- asepsisctl uninstall_wrapper
2- asepsisctl install_wrapper
3- asepsisctl diagnose
"Your Asepsis setup seems to be OK"

But i need to uninstall again to mac work. When asepsis is installed, any file clicked, hangs or show me a crash window like this:
screen shot 2014-02-27 at 13 15 02

@pencilcheck

After upgrading to 10.9.2 and reinstalled asepsis, I can't launch calender app because of the change in DesktopServicePriv

@shaders
shaders commented Mar 3, 2014

Having exactly the same issue as adrianopaladini

@D-an-W
D-an-W commented Mar 3, 2014

After a reinstall and reboot everything was ok here.

On Mon, Mar 3, 2014 at 1:29 PM, shaders notifications@github.com wrote:

Having exactly the same issue as adrianopaladini

Reply to this email directly or view it on GitHub:
#9 (comment)

@shaders
shaders commented Mar 3, 2014

I confirm after reinstall and reboot it works smoothly so far. Yay!

@hugoram
hugoram commented Apr 9, 2014

Is it normal that asepsis doesn't work since I updated to 10.9.2?

@darwin
Member
darwin commented Apr 9, 2014

@hugoram Yes, Asepsis could break after system updates.

Please follow this page and restart after reinstalling the wrapper:
http://asepsis.binaryage.com/#diagnose

@mintystark

Hugoram,
Did you read the other comments?
Reinstall Asepsis and Reboot and you should be good.

@hugoram
hugoram commented Apr 9, 2014

Sorry for missing that, should have read. I reinstalled and it works! Thanks for the fast response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment