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

Fix: awk: towc: multibyte conversion failure on: '?! ' #83

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

genhack
Copy link

@genhack genhack commented Sep 7, 2024

Hello,
installing spotify with brew and show this problem with awk.

`awk: towc: multibyte conversion failure on: '?! '

input record number 1, file /Applications/Spotify.app/Contents/Info.plist
source line number 1


BlockTheSpot-Mac by @Nuzair46


Spotify version:
BlockTheSpot-Mac version: 1.2.32.985.g3be2709c`

Instead with plutil retrieve the correct value as expected:
./install.sh
Spotify client version: 1.2.45.454


BlockTheSpot-Mac by @Nuzair46


Spotify version: 1.2.45.454
BlockTheSpot-Mac version: 1.2.32.985.g3be2709c

Creating backup...
Extracting xpui...
Applying BlockTheSpot patches...
Removing ad-related content...
Patching Binary...
Removing premium-only features...
Removing logging...
Adding credits...
Signing Spotify...
BlockTheSpot finished patching!

Fix: awk: towc: multibyte conversion failure on: '?! '
@Ali-Aljufairi
Copy link

Thanks for solving the issue

@bygalacos
Copy link

The current script is using awk to parse values from a binary .plist file, resulting in the following error:

awk: towc: multibyte conversion failure on: '?! '
input record number 1, file /Applications/Spotify.app/Contents/Info.plist
source line number 1

This happens because the Info.plist file format is binary, and awk expects text input. The binary format contains characters that are not correctly interpreted by the tool, causing multibyte conversion errors.

@jonxuxu
Copy link

jonxuxu commented Nov 19, 2024

I fixed it by replacing this line in install.sh:

CLIENT_VERSION=$(awk '/CFBundleShortVersionString/{getline; print}' "${INSTALL_PATH}/Contents/Info.plist" | cut -d\> -f2-$

with this:

CLIENT_VERSION=$(plutil -extract CFBundleShortVersionString xml1 -o - "${INSTALL_PATH}/Contents/Info.plist" | sed -n 's/.*<string>\(.*\)<\/string>.*/\1/p')

@MaEtUgR
Copy link

MaEtUgR commented Nov 22, 2024

I'd prefer this solution: #85
defaults read "/Applications/Spotify.app/Contents/Info.plist" CFBundleVersion gives you back the installed Spotify version without bash hackery 😉

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

Successfully merging this pull request may close these issues.

5 participants