Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Appears to be broken with Safari 10.1 on 10.12.4 beta 2 #38

Closed
orbitly opened this issue Feb 12, 2017 · 132 comments
Closed

Appears to be broken with Safari 10.1 on 10.12.4 beta 2 #38

orbitly opened this issue Feb 12, 2017 · 132 comments
Labels

Comments

@orbitly
Copy link

orbitly commented Feb 12, 2017

Stand not loading.

@bauerp
Copy link

bauerp commented Feb 12, 2017

Yup, same here

@Fofer
Copy link

Fofer commented Feb 12, 2017

I wonder if Safari 10.1 uses Library-Validation, just like Safari Technology Preview does? Fortunately mySIMBL has been updated to work around that. But SafariStand would need to be updated to deal with the same.

@c0ppo
Copy link

c0ppo commented Feb 13, 2017

Same thing here :(
mySimbl is not the problem, it was updated a while ago. SafariStand is the one that needs updating :)

@Fofer
Copy link

Fofer commented Feb 13, 2017

Yes, read my post again slowly, that is exactly what I wrote.

@Cal-Ed
Copy link

Cal-Ed commented Mar 8, 2017

Fofer is correct, Library-Validation has been introduced - I see a couple of errors when trying to load Safari / SafariStand on 10.12.4:

Error loading /Library/Application Support/SIMBL/Plugins/SafariStand.bundle/Contents/MacOS/SafariStand: dlopen(/Library/Application Support/SIMBL/Plugins/SafariStand.bundle/Contents/MacOS/SafariStand, 265): no suitable image found. Did find:
/Library/Application Support/SIMBL/Plugins/SafariStand.bundle/Contents/MacOS/SafariStand: code signing blocked mmap() of '/Library/Application Support/SIMBL/Plugins/SafariStand.bundle/Contents/MacOS/SafariStand'

then

Library Validation failed: Rejecting '/Library/Application Support/SIMBL/Plugins/SafariStand.bundle/Contents/MacOS/SafariStand' (Team ID: none, platform: no) for process 'Safari(45400)' (Team ID: none, platform: yes), reason: mapped file has no cdhash (unsigned or signature broken?)

@c0ppo
Copy link

c0ppo commented Mar 8, 2017

Will this be fixed? :(

@ibrokemypie
Copy link

+1

1 similar comment
@otherguy
Copy link

👍

@DearDeparted00
Copy link

I know nothing about WebKit development but decided to try to get my hands dirty again last night. I noticed stand is fully functional on the latest Mac OS beta release if you open safari with the "run-safari" script without making any changes to the code. I just happened to notice it as the primary objective was just to make sure WebKit build without error, but all of he stand settings including expanded search bar were right there. Don't really know enough about either stand or WebKit to give more details nor have I had much time to play around but this might be a useful tidbit to someone more skilled than I.

@DearDeparted00
Copy link

To give specifics I'm running Mac OS 10.12.4 beta version 8 from March 20th, 2017

@Fofer
Copy link

Fofer commented Mar 27, 2017

So macOS 10.12.4 is now released, available for all via the App Store. But I'm afraid to install it for fear of losing compatibility with SafariStand.

@staniki
Copy link

staniki commented Mar 27, 2017

Doesn't work at macOS 10.12.4 (Safari 10.1) :(

@drewauff
Copy link

@DearLostPoetry is correct, it does work with the latest webkit..

@w0lfschild
Copy link

w0lfschild commented Mar 28, 2017

Hmmm. It's definitely a mySIMBL issue. Problem is that SIP needs to be disabled to remove Library-Validation from Safari since it's a system file. This is something I'll have to look into fixing as Apple makes more apps include this flag.

To fix this issue on your own you can turn off SIP and use unsign to remove code signing, which includes Library-Validation, from Safari.

Any updates to Safari will require the binary to be unsigned again.

@b0gdanw
Copy link

b0gdanw commented Mar 28, 2017

@w0lfschild Wouldn't be easier to sign SafariStand? We need a Cydia Impactor for MacOS :-)

@w0lfschild
Copy link

@bogdangit80 Unfortunately no. Signing a bundle does not allow it to be loaded.

For right now you can use /Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment which still allows loading of mySIMBL plugins.

@BigMacOS
Copy link

BigMacOS commented Mar 28, 2017

@anakinsk any news when a new version of SafariStand will be released? I can't code or debug but I'm happy to contribute to the project? 👍 I'm finding it hard to cope without Safari stand!
I'm not clear on how to unsign to get it working again. Would a new release work? Thanks for all the hard work.

@drewauff
Copy link

@w0lfschild any progress so far?

@Autoplayhater5
Copy link

following as I've confirmed SafariStand not working

@drewauff
Copy link

well..for now I'm going to stick to the "WebKit Nightly" .. everything works perfectly..

@DearDeparted00
Copy link

DearDeparted00 commented Mar 30, 2017

While using the WebKit project is how I found stand to be functional, it doesn't seem necessary to have a build of the project for stand to work. As @w0lfschild mentioned, running /Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment seems to work fine. Would recommend making an alias for the script or importing it. That being said I haven't tried this without the WebKit project files all together. Simply having the project seems like a more comfortable alternative than taking the time and space to rebuild WebKit esspecially with how often it's updated.

@BigMacOS
Copy link

I've updated to 10.12.4 releases to the public this week and it doesn't work. I'm not that technical :( Is there anything we can do to get this working?

@media-lush
Copy link

media-lush commented Mar 30, 2017

Glims used to be perfect for this and a whole more cool Safari stuff but the developer just stopped upgrading [it was free]... somebody should have a look at it and try and replicate it and monetise it... pretty sure they'd make a small fortune if they charged $5 for it... how anybody at Apple looked at a whole bunch of tabs with favicons and thought that plain grey would be better beats me.

Kudos for whoever made SIMBL but whilst it did the job the installation was pretty inelegant

@Fofer
Copy link

Fofer commented Mar 30, 2017

As @w0lfschild mentioned, running /Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment seems to work fine. Would recommend making an alias for the script or importing it

Can you be more specific about this? I made an alias of this file (the original is actually in /Library/Application Support/Apple/Safari/SafariForWebKitDevelopment) but I'm not sure what to do with it, or how it would allow SafariStand to work with Safari in macOS 10.1.2.4. Double-clicking it opens a Terminal window and runs some commands. What next?

@DearDeparted00
Copy link

DearDeparted00 commented Mar 30, 2017

I am also currently using public beta 10.12.4 ~ The easiest way I would recommend would be creating an alias by entering: alias safariJump="/Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment" into the terminal. Though this would be a temporary and the step would have to be repeated whenever you start a new terminal session. A bit more involved but persisting method would be making a permanent alias. You would enter in the terminal nano .bash_profile if your shell is bash and nano ~/.zshrc if you're using ZSH. There you'll be greeted with with your configuration. In bash you'll enter export PATH="/Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment/sbin:$PATH" in ZSH you'll find a space for personal aliases near the very bottom of the configuration page reading "# Set personal aliases." At the very bottom add alias safariJump="/Applications/Safari.app/Contents/MacOS/SafariForWebKitDevelopment" (though you can really name it anything you want, safariJump was just the first thing that came to mind). Click control + x and hit y at the prompt to confirm and save the new changes to the configuration. Bash users can confirm the changes have taken by entering echo $PATH and checking if SafariForWebKitDevelopment has been added to the PATH list, whilst ZSH would enter source ~/.zshrc to update their current configuration. Enter your alias in the terminal instead of clicking the Safari icon in launchpad or the applications folder and Safari Stand should be active at opening.

@BigMacOS
Copy link

BigMacOS commented Mar 30, 2017

There's only been one release of this extension and nothing since. Ah glims, I remember glims. @anakinsk Anything you need for another release?

@DearDeparted00
Copy link

DearDeparted00 commented Mar 30, 2017

Also @Fofer I've avoided using the original in explanation because I've noticed the terminal wasn't a fan of spaces. I often forget this myself but it usually won't read the full path name if theres a space in such as Application Support and not register text after the space but I believe either one would be fine in terms of preference. You'd just have to represent the spaces as backslash when entering the path into the terminal: /Library/Application\ Support/Apple/Safari/SafariForWebKitDevelopment

@m-thomson
Copy link

I'm able to run "SafariForWebKitDevelopment" and SafariStand works with it. Thanks for the tip @DearLostPoetry @w0lfschild

One problem - none of my extensions are installed. I don't think re-installing normally will work since "regular" safari will open any .safariextz file I download rather than the "SafariForWebKitDevelopment" version.

Anyone have an idea?

@ghost
Copy link

ghost commented Apr 18, 2017

Was anybody able to install the Patcher successfully without disabling SIP?

@cooperred
Copy link

@askern nope you have to disable SIP to install. You can reenable it after the patch

@staniki
Copy link

staniki commented Apr 19, 2017

@anakinsk спасибо бро, все заработало с патчем :)

@mmmmark
Copy link

mmmmark commented Apr 20, 2017

This is the best news since sliced bread! I'm no wizard, but by reading this thread I was able to make it happen. I'm a little curious what will happen when Sierra does its next update. Hopefully it won't blow anything up. I guess I'll come back here and see!

Seriously, i love having safaristand work again. I was a user of Saft and then Glims (which was an awesome bit of coding) but they have all gone AWOL. Apple probably is bumping them off one by one. lol

Keep up the good work.

@anakinsk
Copy link
Owner

Alright, tons of thanks to everyone and especially to those who participated, new release of Safari Stand is now live and I added notes about the patcher to the project homepage.

This issue is now officially "fixed", and hopefully our workaround will survive at least til the next major Safari release.

Cheers

@anakinsk anakinsk added the bug label Apr 21, 2017
@anakinsk anakinsk self-assigned this Apr 21, 2017
@gurubulldozer
Copy link

Following what @almeath found, I tried to go a bit further and got interesting results.

if you go inside Safari.app and look at the actual binary, you will notice that it is really small (just around 20kb).
Try to use class dump on it and you will find nothing but a path to /System/Library/PrivateFrameworks/Safari. Now that thing is actually quite big and contains a lot of objective c headers. Which leads me to a thought that may be safari.app thing that we all have in our application folder is merely a launcher. And this launcher is what actually specifies whether the system needs to use library validation on the process or not.

Running a hex editor on both binaries (10.1 and 10.01) show very minor differences related to entitlements and how they include that safari private framework thing.

Now, if you grab your "Safari" binary from version 10.01 and put into the current safari (10.1) folder (therefore replacing the existing one) and run safari as you would usually do you will find out that extensions, history menu and safari stand work just fine. But it won't restore tabs from previous session on the next launch :)

That is due to mismatch in info.plist and the binary, therefore we also need to use one from the previous safari version. However, because info.plist is signed, we need to replace _CodeSignature so the signature will match. After that everything seems to be working fine, at least at a very glanced look. The drawback of it is that the safari will always display the 10.01 version even though this may not be true. But there's no way of changing it, cause if you alter info.plist it will ruin the signature :)

I am now wondering if this is a universal library that will work for any computer or not.

Attached is the archive that includes everything mentioned above for Safari 10.01 from my system, I now need a volunteer to put that into their Safari.app and let us all know if it works. Don't forget to back up your original safari.app first.

Archive.zip

This Method works also for Safari Technology Preview ;)

@BigMacOS
Copy link

Just a quick question. Does the latest fix restore tabs or not? It seems a bit unclear. Thanks!

@anakinsk
Copy link
Owner

Yes it does @ilovesafaristand Everything seems to be working just like before the library validation.

@BigMacOS
Copy link

☺️👌

@Autoplayhater5
Copy link

Upgraded to MacOS 10.12.5 today. The upgrade broke SafariStand as predicted. Used the patcher on the Safari Stand patcher and all seems to be working.

Interestingly, the Safari version (as identified via the About Safari in Apple Menu) after MacOS upgrade and prior to using the patcher was not changed to the current version. So, MacOS upgrade does not "correct" Safari version displayed.

@Autoplayhater5
Copy link

Sadly I spoke too soon. I got stand working using the patcher. however after a reboot stand is no longer working. Safari still signed as 10.0.1...

@rotorek
Copy link

rotorek commented May 19, 2017

@Autoplayhater5 For me, the last upgrade changed Safari version to the current version. I had to re-apply the patch and that corrected the thing. It's working ok even after reboot. However, I have never used the patcher, I applied the patch manually from the Archive.zip mentioned in previous comments.

@Autoplayhater5
Copy link

Autoplayhater5 commented May 19, 2017 via email

@cooperred
Copy link

So 10.12.5 breaks SafariStand, but the patch still works?

@Autoplayhater5
Copy link

I have been able to get it working and appears to be stable now. I did have install via the patcher twice after updating to 10.12.5.

@julianschiavo
Copy link

Does this work with 10.13?

@bertobox
Copy link

I installed the patch on 10.2.5 and it worked like a charm on the first try! Thanks very much!

@Autoplayhater5
Copy link

Curious if anyone has attempted to use SafariStand with High Sierra Beta?

@almeath
Copy link

almeath commented Jul 29, 2017

On a fresh partition, I installed High Sierra 10.13 Beta (17A315i) which includes Safari version 11. Interestingly, I noticed that SIP was not enabled by default - I guess this is normal for the macOS beta releases. I then installed mySIMBL 0.5.3(29) and SafariStand 10.1.1 via the established methods. I finished by installing the patch by @anakinsk.

It appears to work fine. The 'Stand' menu shows up as normal and I was able to get the full length address bar and reduce tab width. All the functions appear to be working. Safari 11 is reporting itself as 10.0.1.

Only one minor issue - every time I start Safari I get a warning message that states:

"SafariStand 10.1.1 can't act with this Safari. Wait for new version of SafariStand"

However, as mentioned everything is working fine, so the message must be triggered by a version check function when SafariStand starts. If this can somehow be disabled then everything will be perfect.

As long as nothing major changes between now and the final High Sierra and Safari 11 releases, then there seems to be a good chance of keeping SafariStand going for the duration of another macOS annual release.

@orbitly
Copy link
Author

orbitly commented Jul 30, 2017

Interesting, for me favicons on tabs broke in Safari 11 beta on regular Sierra 10.12.6, but favicons on the bookmarks bar work.

@anakinsk
Copy link
Owner

Thanks @almeath and @orbitly. Once I am done fixing yosemite issues, I will install High Sierra and take a look at it myself.

@almeath
Copy link

almeath commented Jul 30, 2017

I should clarify that the favicons on tabs feature is not working on Safari 11 in the 10.13 Beta. Apologies for overlooking that. However, the favicons do work in both the bookmarks and address bars.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests