a503456526
The qemu-props program is launched at boot to read a series of system property assignments from the emulator and apply them. This is necessary to deal with the dynamic nature of the emulated platform (e.g. the screen density which depends on the skin and cannot be hard-coded in the platform image). This patch ensures that qemu-props is started before any other service that may read one of these properties (e.g. surface flinger). This is done by encapsulating the program into a 'core' service. Core services are all stared before regular ones. Before the patch, qemu-props was started manually inside a script that is called from a late emulator-specific boot service (goldfish-setup). The problem was that sometimes qemu-props was run too late. This resulted in random flakiness, especially when running on a low-end host machine. Fix for bug 2161189 (and probably a few others) Change-Id: I2933a25dcb5fecbb1fc238f157264e621b8f295b
78 lines
2.3 KiB
Text
78 lines
2.3 KiB
Text
on early-init
|
|
export EXTERNAL_STORAGE /mnt/sdcard
|
|
mkdir /mnt/sdcard 0000 system system
|
|
# for backwards compatibility
|
|
symlink /mnt/sdcard /sdcard
|
|
|
|
on boot
|
|
setprop ARGH ARGH
|
|
setprop net.eth0.gw 10.0.2.2
|
|
setprop net.eth0.dns1 10.0.2.3
|
|
setprop net.gprs.local-ip 10.0.2.15
|
|
setprop ro.radio.use-ppp no
|
|
setprop ro.build.product generic
|
|
setprop ro.product.device generic
|
|
|
|
# fake some battery state
|
|
setprop status.battery.state Slow
|
|
setprop status.battery.level 5
|
|
setprop status.battery.level_raw 50
|
|
setprop status.battery.level_scale 9
|
|
|
|
# disable some daemons the emulator doesn't want
|
|
stop dund
|
|
stop akmd
|
|
|
|
# start essential services
|
|
start qemud
|
|
start goldfish-logcat
|
|
start goldfish-setup
|
|
|
|
setprop ro.setupwizard.mode EMULATOR
|
|
|
|
# enable Google-specific location features,
|
|
# like NetworkLocationProvider and LocationCollector
|
|
setprop ro.com.google.locationfeatures 1
|
|
|
|
# For the emulator, which bypasses Setup Wizard, you can specify
|
|
# account info for the device via these two properties. Google
|
|
# Login Service will insert these accounts into the database when
|
|
# it is created (ie, after a data wipe).
|
|
#
|
|
# setprop ro.config.hosted_account username@hosteddomain.org:password
|
|
# setprop ro.config.google_account username@gmail.com:password
|
|
#
|
|
# You MUST have a Google account on the device, and you MAY
|
|
# additionally have a hosted account. No other configuration is
|
|
# supported, and arbitrary breakage may result if you specify
|
|
# something else.
|
|
|
|
service goldfish-setup /system/etc/init.goldfish.sh
|
|
user root
|
|
group root
|
|
oneshot
|
|
|
|
# The qemu-props program is used to set various system
|
|
# properties on boot. It must be run early during the boot
|
|
# process to avoid race conditions with other daemons that
|
|
# might read them (e.g. surface flinger), so define it in
|
|
# class 'core'
|
|
#
|
|
service qemu-props /system/bin/qemu-props
|
|
class core
|
|
user root
|
|
group root
|
|
oneshot
|
|
|
|
service qemud /system/bin/qemud
|
|
socket qemud stream 666
|
|
oneshot
|
|
|
|
# -Q is a special logcat option that forces the
|
|
# program to check wether it runs on the emulator
|
|
# if it does, it redirects its output to the device
|
|
# named by the androidboot.console kernel option
|
|
# if not, is simply exits immediately
|
|
|
|
service goldfish-logcat /system/bin/logcat -Q
|
|
oneshot
|