Skip to content

Instantly share code, notes, and snippets.

@cecekpawon
Last active August 5, 2019 01:18
Show Gist options
  • Save cecekpawon/e4cd8fc035a3c2c4b9f400e2a7d2d8bd to your computer and use it in GitHub Desktop.
Save cecekpawon/e4cd8fc035a3c2c4b9f400e2a7d2d8bd to your computer and use it in GitHub Desktop.
AppleALC stripdown
#!/bin/bash
# AppleALC stripdown | @cecekpawon Sun Jul 28 14:14:02 2019
#
# User defined
#
gCodecIdDec=283904146
gDeviceId=ALC892
gTarget=Release
#
# Global
#
gPlistBuddyCmd="/usr/libexec/plistbuddy -c"
WorkingDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${WorkingDir}"
#
# Repo
#
if [ ! -d AppleALC ]; then
git clone https://github.com/acidanthera/AppleALC
fi
#
# Lilu
#
if [ ! -d "${WorkingDir}/AppleALC/Lilu.kext" ]; then
if [ ! -f "${WorkingDir}/Lilu.zip" ]; then
json=$(curl -s https://api.github.com/repos/Acidanthera/Lilu/releases/latest)
tag=$(echo "${json}" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
url=($(echo "${json}" | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/'))
for u in "${url[@]}"
do
if [[ "${u}" == *"DEBUG"* ]]; then
echo "Downloading ${tag}"
curl -L "${u}" -o Lilu.zip
fi
done
fi
unzip Lilu.zip -d AppleALC
fi
#
# AppleALC
#
cd "${WorkingDir}/AppleALC"
git fetch origin
git reset --hard origin/master
git pull
gInfoPlist="Resources/PinConfigs.kext/Contents/Info.plist"
gHDAHardwareConfigResource="IOKitPersonalities:'HDA Hardware Config Resource'"
gHDAConfigDefault="$gHDAHardwareConfigResource:HDAConfigDefault"
$gPlistBuddyCmd "Add ':Tmp' dict" $gInfoPlist
$gPlistBuddyCmd "Copy :$gHDAHardwareConfigResource ':Tmp:$gHDAHardwareConfigResource" $gInfoPlist
$gPlistBuddyCmd "Add :Tmp:$gHDAConfigDefault array" $gInfoPlist
Configs=($(echo $($gPlistBuddyCmd "Print :$gHDAConfigDefault" $gInfoPlist -x) | grep -o "<dict>"))
let Cid=0
let NewCid=0
for i in "${Configs[@]}"
do
CodecId=$($gPlistBuddyCmd "Print :$gHDAConfigDefault:${Cid}:CodecID" $gInfoPlist 2>&1)
if [ $CodecId -eq $gCodecIdDec ]; then
$gPlistBuddyCmd "Copy :$gHDAConfigDefault:${Cid} :Tmp:$gHDAConfigDefault:${NewCid}" $gInfoPlist
fi
let Cid++
let NewCid++
done
$gPlistBuddyCmd "Delete :$gHDAConfigDefault" $gInfoPlist
$gPlistBuddyCmd "Copy :Tmp:$gHDAConfigDefault :$gHDAConfigDefault" $gInfoPlist
$gPlistBuddyCmd "Delete :Tmp" $gInfoPlist
if [ -d "Resources/$gDeviceId" ]; then
Dirs=(Resources/*/)
for Dir in "${Dirs[@]}"; do
if [[ $Dir != *".kext"* && $Dir != *$gDeviceId* ]]; then
rm -rf $Dir
fi
done
fi
xcodebuild -configuration $gTarget
cp -Rf build/$gTarget/*.kext ${WorkingDir}
#rm -rf "${WorkingDir}/AppleALC/Lilu.kext"
xcodebuild -alltargets clean
cd "${WorkingDir}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment