Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 694e10ba authored by David 'Digit' Turner's avatar David 'Digit' Turner
Browse files

Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density

ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.

In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop

This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.

A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
parent 55a72ba8
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -193,6 +193,14 @@ void DisplayHardware::init(uint32_t dpy)
        LOGW("ro.sf.lcd_density not defined, using 160 dpi by default.");
        LOGW("ro.sf.lcd_density not defined, using 160 dpi by default.");
        strcpy(property, "160");
        strcpy(property, "160");
    }
    }

    /* Override the property value if qemu.sf.lcd_density is defined. */
    {
        char  qemu_property[PROPERTY_VALUE_MAX];
        if (property_get("qemu.sf.lcd_density", qemu_property, NULL) > 0) {
            strlcpy(property, qemu_property, sizeof property);
        }
    }
    mDensity = atoi(property) * (1.0f/160.0f);
    mDensity = atoi(property) * (1.0f/160.0f);