Skip to content

Instantly share code, notes, and snippets.

@Barracuda72
Last active March 14, 2024 16:07
Show Gist options
  • Save Barracuda72/0b965fa7f7fbdf3ec6de558a1d219a1d to your computer and use it in GitHub Desktop.
Save Barracuda72/0b965fa7f7fbdf3ec6de558a1d219a1d to your computer and use it in GitHub Desktop.
Simple Genshin Impact clean installation script
#!/bin/bash
# Genshin impact simple installation script
# Dependencies: aria2c, jq, curl, 7z
GET="aria2c -c -x 5 -m 0"
DIR="GenshinImpact"
UPDATE_URL="https://sdk-os-static.mihoyo.com/hk4e_global/mdk/launcher/api/resource?channel_id=1&key=gcStgarh&launcher_id=10"
TMPFILE=`mktemp`
MD5LIST=`mktemp`
curl -s "${UPDATE_URL}" -o ${TMPFILE}
URLS=(`cat ${TMPFILE} | jq .data.game.latest.segments[].path | sed 's/"//g'`)
MD5S=(`cat ${TMPFILE} | jq .data.game.latest.segments[].md5 | sed 's/"//g'`)
AUDIO=(`cat ${TMPFILE} | jq '.data.game.latest.voice_packs[] | select(.language == "en-us") | .path' | sed 's/"//g'`)
AUMD5=(`cat ${TMPFILE} | jq '.data.game.latest.voice_packs[] | select(.language == "en-us") | .md5' | sed 's/"//g'`)
URLS+=(${AUDIO})
MD5S+=(${AUMD5})
#echo ${URLS[@]}
for i in `seq 0 $((${#URLS[@]}-1))`; do
URL=${URLS[$i]}
MD5=${MD5S[$i]}
FILE=`echo ${URL} | sed 's/^.\+\/\([^/]\+\)/\1/'`
${GET} ${URL}
echo ${MD5} ${FILE} >> ${MD5LIST}
done
md5sum -c ${MD5LIST}
FIRST_FILE=`echo ${URLS[0]} | sed 's/^.\+\/\([^/]\+\)/\1/'`
AUDIO_FILE=`echo ${AUDIO} | sed 's/^.\+\/\([^/]\+\)/\1/'`
mkdir -p ${DIR}
pushd ${DIR}
7z x -y "../${FIRST_FILE}"
7z x -y "../${AUDIO_FILE}"
popd
rm ${TMPFILE}
rm ${MD5LIST}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment