NOTE: this is only compiled into products with PRODUCT_IOT=true. Introduce BootActions that a developer can provide to manipulate IO before the android framework comes up on boot. We will look for a configuration file at /oem/app/etc/boot_action.conf and expect it to tell us the name of a shared library. We will then fetch this library from /oem/app/lib/${arch}/ and load it. We expect it to export boot_action_init(), boot_action_shutdown(), and optionally boot_action_start_part(int partNumber, int playNumber). We will then call boot_action_init() during boot after PeripheralManager is up and call boot_action_shutdown() when the android framework is up and we are going to start loading APKs. We will also call boot_action_start_part(*) when each part of the boot animation is started, use this if you want to synchronize the boot action and the boot animation. Boot actions run in a restricted environment and in general can only make calls to PeripheralManager. Bug: 37992717 Test: Pushed to local imx7d to test boot actions, pushed to bullhead test that animation+sound still works. Change-Id: I9e53a17567f8028ea84486d637e1d231ee1125e1
92 lines
1.7 KiB
Makefile
92 lines
1.7 KiB
Makefile
bootanimation_CommonCFlags = -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
|
|
bootanimation_CommonCFlags += -Wall -Werror -Wunused -Wunreachable-code
|
|
|
|
|
|
# bootanimation executable
|
|
# =========================================================
|
|
|
|
LOCAL_PATH:= $(call my-dir)
|
|
include $(CLEAR_VARS)
|
|
|
|
LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libOpenSLES \
|
|
libandroidfw \
|
|
libbase \
|
|
libbinder \
|
|
libbootanimation \
|
|
libcutils \
|
|
liblog \
|
|
libutils \
|
|
|
|
LOCAL_SRC_FILES:= \
|
|
BootAnimationUtil.cpp \
|
|
|
|
ifeq ($(PRODUCT_IOT),true)
|
|
LOCAL_SRC_FILES += \
|
|
iot/iotbootanimation_main.cpp \
|
|
iot/BootAction.cpp
|
|
|
|
LOCAL_SHARED_LIBRARIES += \
|
|
libandroidthings \
|
|
libbase \
|
|
libbinder
|
|
|
|
LOCAL_STATIC_LIBRARIES += cpufeatures
|
|
|
|
else
|
|
|
|
LOCAL_SRC_FILES += \
|
|
bootanimation_main.cpp \
|
|
audioplay.cpp \
|
|
|
|
endif # PRODUCT_IOT
|
|
|
|
LOCAL_MODULE:= bootanimation
|
|
|
|
LOCAL_INIT_RC := bootanim.rc
|
|
|
|
ifdef TARGET_32_BIT_SURFACEFLINGER
|
|
LOCAL_32_BIT_ONLY := true
|
|
endif
|
|
|
|
include $(BUILD_EXECUTABLE)
|
|
|
|
|
|
# libbootanimation
|
|
# ===========================================================
|
|
|
|
include $(CLEAR_VARS)
|
|
LOCAL_MODULE := libbootanimation
|
|
LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
|
|
|
|
LOCAL_SRC_FILES:= \
|
|
BootAnimation.cpp
|
|
|
|
LOCAL_CFLAGS += ${bootanimation_CommonCFlags}
|
|
|
|
LOCAL_C_INCLUDES += \
|
|
external/tinyalsa/include \
|
|
frameworks/wilhelm/include
|
|
|
|
LOCAL_SHARED_LIBRARIES := \
|
|
libcutils \
|
|
liblog \
|
|
libandroidfw \
|
|
libutils \
|
|
libbinder \
|
|
libui \
|
|
libskia \
|
|
libEGL \
|
|
libGLESv1_CM \
|
|
libgui \
|
|
libtinyalsa \
|
|
libbase
|
|
|
|
ifdef TARGET_32_BIT_SURFACEFLINGER
|
|
LOCAL_32_BIT_ONLY := true
|
|
endif
|
|
|
|
include ${BUILD_SHARED_LIBRARY}
|