wolf: fix install-ea-app — correct installer path, clear fake InstallSuccessful
Two bugs in install-ea-app:
1. Installer search included compatdata (the Wine prefix), so it found the
temp-extracted copy at drive_c/windows/temp/{UUID}/.cr/EAappInstaller.exe
instead of the bundled copy at steamapps/common/…/__Installer/…/
Fixed: search only under steamapps/common.
2. Our fake InstallSuccessful=true (written by fix-ea-game to bypass the
install-script loop) caused EAappInstaller to detect EA App as "already
installed" and exit in ~15 seconds without doing anything.
Fixed: delete the InstallSuccessful values via wine reg delete inside the
container BEFORE launching the installer. The real EA App installer writes
them back correctly after a successful install.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D8ckUJQtj1pH8jtAddBDZs
This commit is contained in:
+21
-3
@@ -1907,12 +1907,14 @@ PYEOF
|
|||||||
echo " Open the Steam app in Moonlight, wait for Steam to load, then re-run."
|
echo " Open the Steam app in Moonlight, wait for Steam to load, then re-run."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Find EAappInstaller bundled with the game
|
# Find EAappInstaller bundled with the game (in steamapps/common, NOT in
|
||||||
|
# compatdata — ignore temp-extracted copies inside the Wine prefix).
|
||||||
_ia_installer_host=$(sudo find \
|
_ia_installer_host=$(sudo find \
|
||||||
"$_ia_steam_home/.steam/steam/steamapps" -maxdepth 12 \
|
"$_ia_steam_home/.steam/steam/steamapps/common" -maxdepth 12 \
|
||||||
-name "EAappInstaller.exe" -print -quit 2>/dev/null)
|
-name "EAappInstaller.exe" -print -quit 2>/dev/null)
|
||||||
if [ -z "$_ia_installer_host" ]; then
|
if [ -z "$_ia_installer_host" ]; then
|
||||||
echo "EAappInstaller.exe not found. Make sure the game (AppID $_ia_appid) is installed."
|
echo "EAappInstaller.exe not found under steamapps/common."
|
||||||
|
echo "Make sure the game (AppID $_ia_appid) is fully downloaded/installed."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# Container mounts the session home at /home/retro — translate paths
|
# Container mounts the session home at /home/retro — translate paths
|
||||||
@@ -1941,7 +1943,23 @@ PYEOF
|
|||||||
echo " Click through it and log in to your EA account."
|
echo " Click through it and log in to your EA account."
|
||||||
echo " This may take 2-10 minutes."
|
echo " This may take 2-10 minutes."
|
||||||
echo ""
|
echo ""
|
||||||
|
# Remove the fake InstallSuccessful keys we added earlier with fix-ea-game.
|
||||||
|
# If those keys are present, EAappInstaller detects EA App is "already installed"
|
||||||
|
# and exits immediately without doing anything — this is why it exited in ~15s.
|
||||||
|
# The real EA App installer will re-create these keys correctly after install.
|
||||||
|
echo "Clearing fake InstallSuccessful registry markers (so the installer actually runs)..."
|
||||||
|
for _ia_key in \
|
||||||
|
"HKLM\\\\Software\\\\Electronic Arts\\\\EA Desktop" \
|
||||||
|
"HKLM\\\\Software\\\\Wow6432Node\\\\Electronic Arts\\\\EA Desktop"; do
|
||||||
|
docker exec -u 1000 \
|
||||||
|
-e DISPLAY="$_ia_display" \
|
||||||
|
-e WINEPREFIX="$_ia_wineprefix" \
|
||||||
|
"$_ia_container" \
|
||||||
|
"$_ia_wine" reg delete "$_ia_key" /v InstallSuccessful /f 2>/dev/null || true
|
||||||
|
done
|
||||||
|
sleep 1
|
||||||
# Launch the installer inside the container (background so we can poll)
|
# Launch the installer inside the container (background so we can poll)
|
||||||
|
echo "Launching EA App installer..."
|
||||||
docker exec -u 1000 \
|
docker exec -u 1000 \
|
||||||
-e DISPLAY="$_ia_display" \
|
-e DISPLAY="$_ia_display" \
|
||||||
-e WINEPREFIX="$_ia_wineprefix" \
|
-e WINEPREFIX="$_ia_wineprefix" \
|
||||||
|
|||||||
Reference in New Issue
Block a user