@@ -34,18 +34,28 @@ if ! sdkmanager --list_installed 2>/dev/null | grep -q "system-images;android-${
3434 sdkmanager " $SYSTEM_IMAGE "
3535fi
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=" "
3744if ! 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."
4052fi
4153
4254if ! 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[@]} "
4959fi
5060
5161AVD_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"
5878fi
5979
0 commit comments