Skip to content

Commit d6fd017

Browse files
fix: set pixel_9 screen dimensions
1 parent 14cd6c4 commit d6fd017

1 file changed

Lines changed: 27 additions & 7 deletions

File tree

.maestro/scripts/setup-android-emulator.sh

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,28 @@ if ! sdkmanager --list_installed 2>/dev/null | grep -q "system-images;android-${
3434
sdkmanager "$SYSTEM_IMAGE"
3535
fi
3636

37+
# Pixel 9 screen specs injected into config.ini only when the native profile isn't available.
38+
PIXEL_9_LCD_WIDTH="1080"
39+
PIXEL_9_LCD_HEIGHT="2424"
40+
PIXEL_9_LCD_DENSITY="422"
41+
42+
AVD_DEVICE_PROFILE="$DEVICE_ID"
43+
PATCH_PIXEL9_DIMENSIONS=""
3744
if ! avdmanager list device -c | grep -qx "$DEVICE_ID"; then
38-
echo "Error: Device definition '$DEVICE_ID' not found."
39-
exit 1
45+
AVD_DEVICE_PROFILE="pixel_7"
46+
PATCH_PIXEL9_DIMENSIONS="true"
47+
if ! avdmanager list device -c | grep -qx "$AVD_DEVICE_PROFILE"; then
48+
echo "Error: Neither '$DEVICE_ID' nor fallback '$AVD_DEVICE_PROFILE' device definition found."
49+
exit 1
50+
fi
51+
echo "Warning: '$DEVICE_ID' not found, using '$AVD_DEVICE_PROFILE' as base and patching Pixel 9 screen dimensions."
4052
fi
4153

4254
if ! avdmanager list avd -c | grep -qx "${AVD_NAME}"; then
4355
echo "Creating AVD '$AVD_NAME'..."
44-
echo "no" | avdmanager create avd \
45-
--name "$AVD_NAME" \
46-
--device "$DEVICE_ID" \
47-
--package "$SYSTEM_IMAGE" \
48-
--skin "$DEVICE_ID"
56+
CREATE_CMD=(avdmanager create avd --name "$AVD_NAME" --device "$AVD_DEVICE_PROFILE" --package "$SYSTEM_IMAGE")
57+
[ -z "$PATCH_PIXEL9_DIMENSIONS" ] && CREATE_CMD+=(--skin "$DEVICE_ID")
58+
echo "no" | "${CREATE_CMD[@]}"
4959
fi
5060

5161
AVD_CONFIG="$HOME/.android/avd/${AVD_NAME}.avd/config.ini"
@@ -54,6 +64,16 @@ if [ -f "$AVD_CONFIG" ]; then
5464
grep -q "^hw.keyboard=" "$AVD_CONFIG" || echo "hw.keyboard=yes" >> "$AVD_CONFIG"
5565
sed -i.bak 's/^hw\.mainKeys=.*/hw.mainKeys=yes/' "$AVD_CONFIG"
5666
grep -q "^hw.mainKeys=" "$AVD_CONFIG" || echo "hw.mainKeys=yes" >> "$AVD_CONFIG"
67+
# Only patch screen dimensions when using the fallback profile; the native pixel_9
68+
# profile already sets the correct values via the skin.
69+
if [ -n "$PATCH_PIXEL9_DIMENSIONS" ]; then
70+
sed -i.bak "s/^hw\.lcd\.width=.*/hw.lcd.width=${PIXEL_9_LCD_WIDTH}/" "$AVD_CONFIG"
71+
grep -q "^hw.lcd.width=" "$AVD_CONFIG" || echo "hw.lcd.width=${PIXEL_9_LCD_WIDTH}" >> "$AVD_CONFIG"
72+
sed -i.bak "s/^hw\.lcd\.height=.*/hw.lcd.height=${PIXEL_9_LCD_HEIGHT}/" "$AVD_CONFIG"
73+
grep -q "^hw.lcd.height=" "$AVD_CONFIG" || echo "hw.lcd.height=${PIXEL_9_LCD_HEIGHT}" >> "$AVD_CONFIG"
74+
sed -i.bak "s/^hw\.lcd\.density=.*/hw.lcd.density=${PIXEL_9_LCD_DENSITY}/" "$AVD_CONFIG"
75+
grep -q "^hw.lcd.density=" "$AVD_CONFIG" || echo "hw.lcd.density=${PIXEL_9_LCD_DENSITY}" >> "$AVD_CONFIG"
76+
fi
5777
rm -f "$AVD_CONFIG.bak"
5878
fi
5979

0 commit comments

Comments
 (0)