Merge "Remove global inline options."
diff --git a/core/cleanbuild.mk b/core/cleanbuild.mk
index cf25ce1..821b03a 100644
--- a/core/cleanbuild.mk
+++ b/core/cleanbuild.mk
@@ -160,8 +160,6 @@
# The files/dirs to delete during an installclean. This includes the
# non-common APPS directory, which may contain the wrong resources.
-# Use "./" in front of the paths to avoid accidentally deleting random
-# parts of the filesystem if any of the *_OUT vars resolve to blank.
#
# Deletes all of the files that change between different build types,
# like "make user" vs. "make sdk". This lets you work with different
@@ -174,28 +172,34 @@
# $ make -j8 sdk
#
installclean_files := \
- ./$(HOST_OUT)/obj/NOTICE_FILES \
- ./$(HOST_OUT)/sdk \
- ./$(PRODUCT_OUT)/*.img \
- ./$(PRODUCT_OUT)/*.txt \
- ./$(PRODUCT_OUT)/*.xlb \
- ./$(PRODUCT_OUT)/*.zip \
- ./$(PRODUCT_OUT)/data \
- ./$(PRODUCT_OUT)/obj/APPS \
- ./$(PRODUCT_OUT)/obj/NOTICE_FILES \
- ./$(PRODUCT_OUT)/obj/PACKAGING \
- ./$(PRODUCT_OUT)/recovery \
- ./$(PRODUCT_OUT)/root \
- ./$(PRODUCT_OUT)/system \
- ./$(PRODUCT_OUT)/dex_bootjars \
- ./$(PRODUCT_OUT)/obj/JAVA_LIBRARIES
+ $(HOST_OUT)/obj/NOTICE_FILES \
+ $(HOST_OUT)/sdk \
+ $(PRODUCT_OUT)/*.img \
+ $(PRODUCT_OUT)/*.txt \
+ $(PRODUCT_OUT)/*.xlb \
+ $(PRODUCT_OUT)/*.zip \
+ $(PRODUCT_OUT)/data \
+ $(PRODUCT_OUT)/obj/APPS \
+ $(PRODUCT_OUT)/obj/NOTICE_FILES \
+ $(PRODUCT_OUT)/obj/PACKAGING \
+ $(PRODUCT_OUT)/recovery \
+ $(PRODUCT_OUT)/root \
+ $(PRODUCT_OUT)/system \
+ $(PRODUCT_OUT)/dex_bootjars \
+ $(PRODUCT_OUT)/obj/JAVA_LIBRARIES
# The files/dirs to delete during a dataclean, which removes any files
# in the staging and emulator data partitions.
dataclean_files := \
- ./$(PRODUCT_OUT)/data/* \
- ./$(PRODUCT_OUT)/data-qemu/* \
- ./$(PRODUCT_OUT)/userdata-qemu.img
+ $(PRODUCT_OUT)/data/* \
+ $(PRODUCT_OUT)/data-qemu/* \
+ $(PRODUCT_OUT)/userdata-qemu.img
+
+# make sure *_OUT is set so that we won't result in deleting random parts
+# of the filesystem.
+ifneq (2,$(words $(HOST_OUT) $(PRODUCT_OUT)))
+ $(error both HOST_OUT and PRODUCT_OUT should be set at this point.)
+endif
# Define the rules for commandline invocation.
.PHONY: dataclean
@@ -212,6 +216,7 @@
ifeq "$(force_installclean)" "true"
$(info *** Forcing "make installclean"...)
+ $(info *** rm -rf $(dataclean_files) $(installclean_files))
$(shell rm -rf $(dataclean_files) $(installclean_files))
$(info *** Done with the cleaning, now starting the real build.)
endif
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 5c4dbea..ca70c55 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -44,6 +44,7 @@
LOCAL_LDFLAGS:=
LOCAL_LDLIBS:=
LOCAL_AAPT_FLAGS:=
+LOCAL_AAPT_INCLUDE_ALL_RESOURCES:=
LOCAL_SYSTEM_SHARED_LIBRARIES:=none
LOCAL_PREBUILT_LIBS:=
LOCAL_PREBUILT_EXECUTABLES:=
diff --git a/core/package.mk b/core/package.mk
index f8be8a7..4033f8d 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -331,6 +331,9 @@
$(LOCAL_BUILT_MODULE): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abi)
ifneq ($(TARGET_BUILD_APPS),)
# Include all resources for unbundled apps.
+ LOCAL_AAPT_INCLUDE_ALL_RESOURCES := true
+endif
+ifeq ($(LOCAL_AAPT_INCLUDE_ALL_RESOURCES),true)
$(LOCAL_BUILT_MODULE): PRODUCT_AAPT_CONFIG :=
endif
$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
diff --git a/core/prelink-linux-arm.map b/core/prelink-linux-arm.map
index df470a1..74d694d 100644
--- a/core/prelink-linux-arm.map
+++ b/core/prelink-linux-arm.map
@@ -130,57 +130,60 @@
libjni_pinyinime.so 0xA7300000 # [~1M]
libttssynthproxy.so 0xA7200000 # [~1M] for frameworks/base
libttspico.so 0xA7000000 # [~2M] for external/svox
+libmtp.so 0xA6F00000 # [~1M]
+libusbhost.so 0xA6E00000 # [<64K]
+libinput.so 0xA6D00000 # [~1M]
# pv libraries
-libpvasf.so 0xA6F00000 # [???]
-libpvasfreg.so 0xA6E00000 # [???]
-libomx_sharedlibrary.so 0xA6D00000 # [~1M]
-libopencore_download.so 0xA6C00000 # [~1M]
-libopencore_downloadreg.so 0xA6B00000 # [~1M]
-libopencore_net_support.so 0xA6800000 # [~3M]
-libopencore_rtsp.so 0xA6200000 # [~6M]
-libopencore_rtspreg.so 0xA6100000 # [~1M]
-libopencore_author.so 0xA5D00000 # [~4M]
-libomx_aacdec_sharedlibrary.so 0xA5B00000 # [~2M]
-libomx_amrdec_sharedlibrary.so 0xA5A00000 # [~1M]
-libomx_amrenc_sharedlibrary.so 0xA5900000 # [~1M]
-libomx_avcdec_sharedlibrary.so 0xA5800000 # [~1M]
-libomx_avcenc_sharedlibrary.so 0xA5700000 # [???]
-libomx_m4vdec_sharedlibrary.so 0xA5600000 # [~1M]
-libomx_m4venc_sharedlibrary.so 0xA5500000 # [???]
-libomx_mp3dec_sharedlibrary.so 0xA5400000 # [~1M]
-libopencore_mp4local.so 0xA5200000 # [~2M]
-libopencore_mp4localreg.so 0xA5100000 # [~1M]
-libopencore_player.so 0xA4800000 # [~9M]
+libpvasf.so 0xA6C00000 # [???]
+libpvasfreg.so 0xA6B00000 # [???]
+libomx_sharedlibrary.so 0xA6A00000 # [~1M]
+libopencore_download.so 0xA6900000 # [~1M]
+libopencore_downloadreg.so 0xA6800000 # [~1M]
+libopencore_net_support.so 0xA6500000 # [~3M]
+libopencore_rtsp.so 0xA5F00000 # [~6M]
+libopencore_rtspreg.so 0xA5E00000 # [~1M]
+libopencore_author.so 0xA5A00000 # [~4M]
+libomx_aacdec_sharedlibrary.so 0xA5800000 # [~2M]
+libomx_amrdec_sharedlibrary.so 0xA5700000 # [~1M]
+libomx_amrenc_sharedlibrary.so 0xA5600000 # [~1M]
+libomx_avcdec_sharedlibrary.so 0xA5500000 # [~1M]
+libomx_avcenc_sharedlibrary.so 0xA5400000 # [???]
+libomx_m4vdec_sharedlibrary.so 0xA5300000 # [~1M]
+libomx_m4venc_sharedlibrary.so 0xA5200000 # [???]
+libomx_mp3dec_sharedlibrary.so 0xA5100000 # [~1M]
+libopencore_mp4local.so 0xA4F00000 # [~2M]
+libopencore_mp4localreg.so 0xA4E00000 # [~1M]
+libopencore_player.so 0xA4500000 # [~9M]
# opencore hardware support
-libmm-adspsvc.so 0xA4700000 # [<64K]
-libOmxCore.so 0xA4600000 # [<64K]
-libOmxMpeg4Dec.so 0xA4500000 # [~1M]
-libOmxH264Dec.so 0xA4400000 # [~1M]
-libOmxVidEnc.so 0xA4300000 # [~1M]
-libopencorehw.so 0xA4200000 # [~1M]
-libOmxVdec.so 0xA4100000 # [~1M]
-libmm-omxcore.so 0xA4000000 # [<64K]
+libmm-adspsvc.so 0xA4400000 # [<64K]
+libOmxCore.so 0xA4300000 # [<64K]
+libOmxMpeg4Dec.so 0xA4200000 # [~1M]
+libOmxH264Dec.so 0xA4100000 # [~1M]
+libOmxVidEnc.so 0xA4000000 # [~1M]
+libopencorehw.so 0xA3F00000 # [~1M]
+libOmxVdec.so 0xA3E00000 # [~1M]
+libmm-omxcore.so 0xA3D00000 # [<64K]
# pv libraries
-libopencore_common.so 0xA3900000 # [~7M]
-libqcomm_omx.so 0xA3800000 # [<64K]
+libopencore_common.so 0xA3600000 # [~7M]
+libqcomm_omx.so 0xA3500000 # [<64K]
# stagefright libraries
-libstagefright_amrnb_common.so 0xA3700000 # [~1M]
-libstagefright_avc_common.so 0xA3600000 # [~1M]
-libstagefright_color_conversion.so 0xA3500000 # [<64K]
-libstagefright_omx.so 0xA3400000 # [~1M]
-libstagefrighthw.so 0xA3300000 # [~1M]
-libstagefright.so 0xA2F00000 # [~4M]
+libstagefright_amrnb_common.so 0xA3400000 # [~1M]
+libstagefright_avc_common.so 0xA3300000 # [~1M]
+libstagefright_color_conversion.so 0xA3200000 # [<64K]
+libstagefright_omx.so 0xA3100000 # [~1M]
+libstagefrighthw.so 0xA3000000 # [~1M]
+libstagefright.so 0xA2C00000 # [~4M]
# libraries for specific hardware
-libgsl.so 0xA2E00000 # [~1M]
-libhtc_acoustic.so 0xA2D00000 # [<64K]
-libhtc_ril.so 0xA2C00000 # [~1M]
-liblvmxipc.so 0xA2B00000 # [~1M] for vendor/nxp
-libreference-cdma-sms.so 0xA2A00000 # [<64K] for hardware/ril
+libgsl.so 0xA2B00000 # [~1M]
+libhtc_acoustic.so 0xA2A00000 # [<64K]
+libhtc_ril.so 0xA2900000 # [~1M]
+liblvmxipc.so 0xA2800000 # [~1M] for vendor/nxp
+libreference-cdma-sms.so 0xA2700000 # [<64K] for hardware/ril
# libraries for specific apps or temporary libraries
libcam_ipl.so 0x9F000000 # [???]
diff --git a/core/product.mk b/core/product.mk
index cea3d1c..249582b 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -189,12 +189,53 @@
endef
+_product_stash_var_list := $(_product_var_list) \
+ TARGET_ARCH \
+ TARGET_ARCH_VARIANT \
+ TARGET_BOARD_PLATFORM \
+ TARGET_BOARD_PLATFORM_GPU \
+ TARGET_BOOTLOADER_BOARD_NAME \
+ TARGET_COMPRESS_MODULE_SYMBOLS \
+ TARGET_PRELINK_MODULE \
+ TARGET_NO_BOOTLOADER \
+ TARGET_NO_KERNEL \
+ TARGET_NO_RECOVERY \
+ TARGET_NO_RADIOIMAGE \
+ TARGET_HARDWARE_3D \
+ TARGET_PROVIDES_INIT_RC \
+ TARGET_CPU_ABI \
+ TARGET_CPU_ABI2 \
+ TARGET_CPU_SMP \
+
+
+_product_stash_var_list += \
+ BOARD_WPA_SUPPLICANT_DRIVER \
+ BOARD_WLAN_DEVICE \
+ BOARD_USES_GENERIC_AUDIO \
+ BOARD_KERNEL_CMDLINE \
+ BOARD_KERNEL_BASE \
+ BOARD_HAVE_BLUETOOTH \
+ BOARD_HAVE_BLUETOOTH_BCM \
+ BOARD_VENDOR_QCOM_AMSS_VERSION \
+ BOARD_VENDOR_USE_AKMD \
+ BOARD_EGL_CFG \
+ BOARD_BOOTIMAGE_PARTITION_SIZE \
+ BOARD_RECOVERYIMAGE_PARTITION_SIZE \
+ BOARD_SYSTEMIMAGE_PARTITION_SIZE \
+ BOARD_USERDATAIMAGE_PARTITION_SIZE \
+ BOARD_FLASH_BLOCK_SIZE \
+ BOARD_SYSTEMIMAGE_PARTITION_SIZE \
+ BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE \
+ BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION \
+ BOARD_INSTALLER_CMDLINE \
+
+
#
-# Stash vaues of the variables in _product_var_list.
+# Stash vaues of the variables in _product_stash_var_list.
# $(1): Renamed prefix
#
define stash-product-vars
-$(foreach v,$(_product_var_list), \
+$(foreach v,$(_product_stash_var_list), \
$(eval $(strip $(1))_$(call rot13,$(v)):=$$($$(v))) \
)
endef
@@ -206,7 +247,7 @@
define assert-product-vars
$(strip \
$(eval changed_variables:=)
- $(foreach v,$(_product_var_list), \
+ $(foreach v,$(_product_stash_var_list), \
$(if $(call streq,$($(v)),$($(strip $(1))_$(call rot13,$(v)))),, \
$(eval $(warning $(v) has been modified: $($(v)))) \
$(eval $(warning previous value: $($(strip $(1))_$(call rot13,$(v))))) \
diff --git a/target/board/generic_x86/AndroidBoard.mk b/target/board/generic_x86/AndroidBoard.mk
index ff46149..01ca1b7 100644
--- a/target/board/generic_x86/AndroidBoard.mk
+++ b/target/board/generic_x86/AndroidBoard.mk
@@ -1,12 +1,5 @@
LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := init.rc
-LOCAL_SRC_FILES := init.rc
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
-include $(BUILD_PREBUILT)
-
ifeq ($(TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL := prebuilt/android-x86/kernel/kernel
else
@@ -14,4 +7,5 @@
endif
PRODUCT_COPY_FILES += \
- $(LOCAL_KERNEL):kernel
+ $(LOCAL_KERNEL):kernel \
+ $(LOCAL_PATH)/init.rc:root/init.rc
diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk
index 7586db8..2268d41 100644
--- a/target/board/generic_x86/BoardConfig.mk
+++ b/target/board/generic_x86/BoardConfig.mk
@@ -9,17 +9,20 @@
TARGET_PROVIDES_INIT_RC := true
USE_CUSTOM_RUNTIME_HEAP_MAX := "32M"
TARGET_CPU_ABI := x86
-TARGET_USERIMAGES_USE_EXT2 := true
+TARGET_USERIMAGES_USE_EXT4 := true
TARGET_BOOTIMAGE_USE_EXT2 := true
# For VirtualBox and likely other emulators
-BOARD_INSTALLER_CMDLINE := init=/init console=ttyS0 console=tty0 androidboot.hardware=generic_x86 vga=788 verbose
-BOARD_KERNEL_CMDLINE := init=/init console=tty0 console=ttyS0 androidboot.hardware=generic_x86 vga=788
+BOARD_INSTALLER_CMDLINE := init=/init console=ttyS0 console=tty0 androidboot.hardware=generic_x86 vga=788 androidboot.console=tty0 verbose
+BOARD_KERNEL_CMDLINE := init=/init console=tty0 console=ttyS0 androidboot.hardware=generic_x86 vga=788 androidboot.console=tty0 verbose
TARGET_USE_DISKINSTALLER := true
TARGET_DISK_LAYOUT_CONFIG := build/target/board/generic_x86/disk_layout.conf
BOARD_BOOTIMAGE_MAX_SIZE := 8388608
BOARD_SYSLOADER_MAX_SIZE := 7340032
BOARD_FLASH_BLOCK_SIZE := 512
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 50M
+BOARD_INSTALLERIMAGE_PARTITION_SIZE := 500M
+TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true
# The eth0 device should be started with dhcp on boot.
diff --git a/target/board/generic_x86/init.rc b/target/board/generic_x86/init.rc
index 180acaf..38edcc1 100644
--- a/target/board/generic_x86/init.rc
+++ b/target/board/generic_x86/init.rc
@@ -1,3 +1,5 @@
+on early-init
+ start ueventd
on init
@@ -6,20 +8,25 @@
loglevel 3
# setup the global environment
- export PATH /sbin:/system/sbin:/system/bin:/system/xbin
- export LD_LIBRARY_PATH /system/lib
+ export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
+ export LD_LIBRARY_PATH /vendor/lib:/system/lib
export ANDROID_BOOTLOGO 1
export ANDROID_ROOT /system
export ANDROID_ASSETS /system/app
export ANDROID_DATA /data
export EXTERNAL_STORAGE /mnt/sdcard
export ASEC_MOUNTPOINT /mnt/asec
- export BOOTCLASSPATH /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar
+ export LOOP_MOUNTPOINT /mnt/obb
+ export BOOTCLASSPATH /system/framework/core.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/core-junit.jar
# Backward compatibility
symlink /system/etc /etc
symlink /sys/kernel/debug /d
+# Right now vendor lives on the same filesystem as system,
+# but someday that may change.
+ symlink /system/vendor /vendor
+
# create mountpoints
mkdir /mnt 0775 root system
mkdir /mnt/sdcard 0000 system system
@@ -51,7 +58,9 @@
mkdir /mnt/asec 0700 root system
mount tmpfs tmpfs /mnt/asec mode=0755,gid=1000
- mount rootfs rootfs / ro remount
+ # Filesystem image public mount points.
+ mkdir /mnt/obb 0700 root system
+ mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000
write /proc/sys/kernel/panic_on_oops 1
write /proc/sys/kernel/hung_task_timeout_secs 0
@@ -80,16 +89,16 @@
# 5.0 %
write /dev/cpuctl/bg_non_interactive/cpu.shares 52
+on fs
# mount mtd partitions
- # Hack...
- # We'll attempt to mount both as sdcard and harddisk...
- # Only one or the other will actually work... this way, we can
- # use the same init.rc for both
- # Mount /system rw first to give the filesystem a chance to save a checkpoint
- mount ext3 /dev/block/sda6 /system rw
- mount ext3 /dev/block/sda6 /system ro remount
- mount ext3 /dev/block/sda8 /data
- mount ext3 /dev/block/sda7 /cache nosuid nodev
+ mount ext4 /dev/block/sda6 /system rw
+ mkdir /system/vendor
+ mount ext4 /dev/block/sda8 /data nosuid nodev
+ mount ext4 /dev/block/sda7 /cache nosuid nodev
+
+on post-fs
+ # once everything is setup, no need to modify /
+ mount rootfs rootfs / ro remount
# We chown/chmod /data again so because mount is run as root + defaults
chown system system /data
@@ -166,6 +175,11 @@
chown root root /cache/lost+found
chmod 0770 /cache/lost+found
+ # create data/drm directory
+ mkdir /data/drm 0774 drm drm
+ chown drm drm /data/drm
+ chmod 0774 /data/drm
+
on boot
# basic network init
ifup lo
@@ -179,32 +193,35 @@
# killed by the kernel. These are used in ActivityManagerService.
setprop ro.FOREGROUND_APP_ADJ 0
setprop ro.VISIBLE_APP_ADJ 1
- setprop ro.SECONDARY_SERVER_ADJ 2
- setprop ro.BACKUP_APP_ADJ 2
- setprop ro.HOME_APP_ADJ 4
+ setprop ro.PERCEPTIBLE_APP_ADJ 2
+ setprop ro.HEAVY_WEIGHT_APP_ADJ 3
+ setprop ro.SECONDARY_SERVER_ADJ 4
+ setprop ro.BACKUP_APP_ADJ 5
+ setprop ro.HOME_APP_ADJ 6
setprop ro.HIDDEN_APP_MIN_ADJ 7
- setprop ro.CONTENT_PROVIDER_ADJ 14
setprop ro.EMPTY_APP_ADJ 15
# Define the memory thresholds at which the above process classes will
# be killed. These numbers are in pages (4k).
- setprop ro.FOREGROUND_APP_MEM 1536
- setprop ro.VISIBLE_APP_MEM 2048
- setprop ro.SECONDARY_SERVER_MEM 4096
- setprop ro.BACKUP_APP_MEM 4096
- setprop ro.HOME_APP_MEM 4096
- setprop ro.HIDDEN_APP_MEM 5120
- setprop ro.CONTENT_PROVIDER_MEM 5632
- setprop ro.EMPTY_APP_MEM 6144
+ setprop ro.FOREGROUND_APP_MEM 2048
+ setprop ro.VISIBLE_APP_MEM 3072
+ setprop ro.PERCEPTIBLE_APP_MEM 4096
+ setprop ro.HEAVY_WEIGHT_APP_MEM 4096
+ setprop ro.SECONDARY_SERVER_MEM 6144
+ setprop ro.BACKUP_APP_MEM 6144
+ setprop ro.HOME_APP_MEM 6144
+ setprop ro.HIDDEN_APP_MEM 7168
+ setprop ro.EMPTY_APP_MEM 8192
# Write value must be consistent with the above properties.
-# Note that the driver only supports 6 slots, so we have HOME_APP at the
-# same memory level as services.
- write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15
+# Note that the driver only supports 6 slots, so we have combined some of
+# the classes into the same memory level; the associated processes of higher
+# classes will still be killed first.
+ write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
write /proc/sys/vm/overcommit_memory 1
write /proc/sys/vm/min_free_order_shift 4
- write /sys/module/lowmemorykiller/parameters/minfree 1536,2048,4096,5120,5632,6144
+ write /sys/module/lowmemorykiller/parameters/minfree 2048,3072,4096,6144,7168,8192
# Set init its forked children's oom_adj.
write /proc/1/oom_adj -16
@@ -264,8 +281,22 @@
## Daemon processes to be run by init.
##
+service ueventd /sbin/ueventd
+ critical
+
service console /system/bin/sh
console
+ disabled
+ user shell
+ group log
+
+on property:ro.secure=0
+ start console
+
+# Enable networking so that adb can connect
+service netcfg /system/bin/netcfg eth0 dhcp
+ setprop property:ro.kernel.qemu 1
+ oneshot
# adbd is controlled by the persist.service.adb.enable system property
service adbd /sbin/adbd
@@ -300,18 +331,21 @@
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
- group radio cache inet misc audio
+ group radio cache inet misc audio sdcard_rw
-service rcpvr /system/bin/sh /system/etc/rc.pvr start
- oneshot
-
-# service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
-service zygote /system/bin/app_process -Xzygote -Xint:fast /system/bin --zygote --start-system-server
+service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
socket zygote stream 666
- write /sys/power/wake_lock always_on
onrestart write /sys/android_power/request_state wake
onrestart write /sys/power/state on
onrestart restart media
+ onrestart restart netd
+
+service drm /system/bin/drmserver
+ user drm
+ group system root inet
+
+service drmio /system/bin/drmioserver
+ user drmio
service media /system/bin/mediaserver
user media