upload android base code part6

This commit is contained in:
August 2018-08-08 17:48:24 +08:00
parent 421e214c7d
commit 4e516ec6ed
35396 changed files with 9188716 additions and 0 deletions

View file

@ -0,0 +1,20 @@
include device/softwinner/common/BoardConfigCommon.mk
TARGET_BOARD_PLATFORM := tulip
TARGET_USE_NEON_OPTIMIZATION := true
TARGET_CPU_SMP := true
TARGET_BOARD_CHIP := sun50iw1p1
TARGET_BOOTLOADER_BOARD_NAME := exdroid
TARGET_BOOTLOADER_NAME := exdroid
TARGET_OTA_RESTORE_BOOT_STORAGE_DATA := true
BOARD_KERNEL_BASE := 0x40000000
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x80000 --ramdisk_offset 0x02000000
BOARD_CHARGER_ENABLE_SUSPEND := true
USE_OPENGL_RENDERER := true
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := true
TARGET_USES_HWC2 := true

View file

@ -0,0 +1,320 @@
<mixer>
<!-- These are the initial mixer settings -->
<!--
<ctl name="External Speaker Switch" value="1" />
<ctl name="Headphone Switch" value="0" />
-->
<!-- These are commonly used control sequences -->
<path name="aif1.0-dac">
<ctl name="AIF1IN0R Mux" value="AIF1_DA0R" />
<ctl name="AIF1IN0L Mux" value="AIF1_DA0L" />
<ctl name="DACR Mixer AIF1DA0R Switch" value="1" />
<ctl name="DACL Mixer AIF1DA0L Switch" value="1" />
</path>
<path name="adc-aif1.0">
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
<ctl name="AIF1OUT0R Mux" value="AIF1_AD0R" />
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<ctl name="AIF1 AD0R Mixer ADCR Switch" value="1" />
<!-- ctl name="ADCR Mux" value="ADC" / -->
<!-- ctl name="ADCL Mux" value="ADC" / -->
</path>
<path name="dac-headphone">
<ctl name="DAC volume" value="160 160" />
<ctl name="HP_R Mux" value="DACR HPR Switch" />
<ctl name="HP_L Mux" value="DACL HPL Switch" />
</path>
<path name="mixer-headphone">
<ctl name="HP_R Mux" value="Right Analog Mixer HPR Switch" />
<ctl name="HP_L Mux" value="Left Analog Mixer HPL Switch" />
</path>
<path name="dac-mixer">
<ctl name="Right Output Mixer DACR Switch" value="1" />
<ctl name="Left Output Mixer DACL Switch" value="1" />
</path>
<path name="mixer-speaker">
<ctl name="SPK_L Mux" value="MIXEL_Switch" />
<ctl name="SPK_R Mux" value="MIXER_Switch" />
</path>
<path name="media-speaker">
<path name="aif1.0-dac" />
<path name="dac-mixer" />
<path name="mixer-speaker" />
<ctl name="DAC volume" value="160 160" />
<ctl name="External Speaker Switch" value="1" />
<ctl name="Headphone Switch" value="0" />
</path>
<path name="media-headphones">
<path name="aif1.0-dac" />
<path name="dac-headphone" />
<ctl name="Headphone Switch" value="1" />
<ctl name="headphone volume" value="61" />
<ctl name="External Speaker Switch" value="0" />
</path>
<path name="media-single-speaker">
<ctl name="AIF1IN0R Mux" value="AIF1_DA0R" />
<ctl name="AIF1IN0L Mux" value="AIF1_DA0L" />
<ctl name="DACR Mixer AIF1DA0R Switch" value="1" />
<ctl name="DACL Mixer AIF1DA0L Switch" value="1" />
<ctl name="Left Output Mixer DACR Switch" value="1" />
<ctl name="Left Output Mixer DACL Switch" value="1" />
<ctl name="SPK_L Mux" value="MIXEL_Switch" />
<ctl name="External Speaker Switch" value="1" />
</path>
<!-- phone ring -->
<path name="phone-ring-voice">
<path name="aif1.0-dac" />
<path name="dac-mixer" />
<path name="mixer-speaker" />
<path name="dac-headphone" />
<ctl name="Headphone Switch" value="1" />
<ctl name="External Speaker Switch" value="1" />
</path>
<!-- capture -->
<path name="media-main-mic">
<path name="adc-aif1.0" />
<ctl name="LADC input Mixer MIC1 boost Switch" value="1" />
<ctl name="RADC input Mixer MIC1 boost Switch" value="1" />
</path>
<path name="media-digital-mic">
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
<ctl name="AIF1OUT0R Mux" value="AIF1_AD0R" />
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<ctl name="AIF1 AD0R Mixer ADCR Switch" value="1" />
<ctl name="ADC volume" value="192" />
<!-- ctl name="ADCR Mux" value="DMIC" / -->
<!-- ctl name="ADCL Mux" value="DMIC" / -->
</path>
<path name="media-headset-mic">
<path name="adc-aif1.0" />
<ctl name="RADC input Mixer MIC2 boost Switch" value="1" />
<ctl name="LADC input Mixer MIC2 boost Switch" value="1" />
<ctl name="MIC2 SRC" value="MIC2" />
<ctl name="ADC volume" value="160" />
<ctl name="MIC2 boost AMP gain control" value="3" />
</path>
<!-- dbb phone path -->
<path name="digital-phone-speaker">
<ctl name="AIF2 ADC volume" value="159" />
<ctl name="LADC input Mixer MIC1 boost Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="AIF2 ADL Mixer ADCL Switch" value="1" />
<ctl name="AIF2OUTL Mux" value="AIF2_ADCL" />
<ctl name="AIF2INL Mux" value="AIF2_DACL" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="DACL Mixer AIF2DACL Switch" value="1" />
<ctl name="Right Output Mixer DACL Switch" value="1" />
<ctl name="Left Output Mixer DACL Switch" value="1" />
<ctl name="SPK_L Mux" value="MIXEL_Switch" />
<ctl name="SPK_R Mux" value="MIXER_Switch" />
<ctl name="External Speaker Switch" value="1" />
</path>
<path name="digital-phone-headset">
<ctl name="AIF2 ADC volume" value="159" />
<ctl name="MIC2 SRC" value="MIC2" />
<ctl name="LADC input Mixer MIC2 boost Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="AIF2 ADL Mixer ADCL Switch" value="1" />
<ctl name="AIF2OUTL Mux" value="AIF2_ADCL" />
<ctl name="AIF2INL Mux" value="AIF2_DACL" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="DACL Mixer AIF2DACL Switch" value="1" />
<ctl name="Left Output Mixer DACL Switch" value="1" />
<ctl name="Right Output Mixer DACL Switch" value="1" />
<ctl name="HP_L Mux" value="Left Analog Mixer HPL Switch" />
<ctl name="HP_R Mux" value="Right Analog Mixer HPR Switch" />
<ctl name="Headphone Switch" value="1" />
</path>
<path name="digital-phone-headphone">
<ctl name="AIF2 ADC volume" value="159" />
<ctl name="LADC input Mixer MIC1 boost Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="AIF2 ADL Mixer ADCL Switch" value="1" />
<ctl name="AIF2OUTL Mux" value="AIF2_ADCL" />
<ctl name="AIF2INL Mux" value="AIF2_DACL" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="DACL Mixer AIF2DACL Switch" value="1" />
<ctl name="Left Output Mixer DACL Switch" value="1" />
<ctl name="Right Output Mixer DACL Switch" value="1" />
<ctl name="HP_L Mux" value="Left Analog Mixer HPL Switch" />
<ctl name="HP_R Mux" value="Right Analog Mixer HPR Switch" />
<ctl name="Headphone Switch" value="1" />
</path>
<path name="digital-phone-bt">
<ctl name="AIF2INL Mux" value="AIF2_DACL" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="AIF2 ADR Mixer AIF2 DACL Switch" value="1" />
<ctl name="AIF3OUT Mux" value="AIF2 ADC right channel" />
<ctl name="AIF2INR Mux VIR switch aif2inr aif3" value="1" />
<ctl name="AIF2 ADL Mixer AIF2 DACR Switch" value="1" />
<ctl name="AIF2OUTL Mux" value="AIF2_ADCL" />
</path>
<path name="digital-phone-earpiece">
<ctl name="AIF2 ADC volume" value="159" />
<ctl name="LADC input Mixer MIC1 boost Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="AIF2 ADL Mixer ADCL Switch" value="1" />
<ctl name="AIF2OUTL Mux" value="AIF2_ADCL" />
<ctl name="AIF2INL Mux" value="AIF2_DACL" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="DACL Mixer AIF2DACL Switch" value="1" />
</path>
<!-- capture when in call with dbb-->
<path name="capture-dbb-phone-mainmic">
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<ctl name="AIF1 AD0L Mixer AIF2 DACL Switch" value="1" />
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
</path>
<path name="capture-dbb-phone-headsetmic">
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<ctl name="AIF1 AD0L Mixer AIF2 DACL Switch" value="1" />
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
</path>
<path name="capture-dbb-phone-btmic">
<ctl name="AIF1 AD0L Mixer AIF2 DACL Switch" value="1" />
<ctl name="AIF1 AD0L Mixer AIF2 DACR Switch" value="1" />
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
</path>
<!-- abb phone path -->
<path name="analog-mainmic">
</path>
<path name="analog-headsetmic">
<ctl name="MIC2 SRC" value="MIC2" />
</path>
<path name="analog-phonein">
<ctl name="Left Output Mixer LINEINL Switch" value="1" />
<ctl name="Right Output Mixer LINEINR Switch" value="1" />
</path>
<path name="mixer-earpiece">
</path>
<path name="analog-phone-speaker">
<path name="analog-mainmic" />
<path name="analog-phonein" />
<path name="mixer-speaker" />
<ctl name="External Speaker Switch" value="1" />
</path>
<path name="analog-phone-headset">
<path name="analog-headsetmic" />
<path name="analog-phonein" />
<path name="mixer-headphone" />
<ctl name="Headphone Switch" value="1" />
</path>
<path name="analog-phone-headphone">
<path name="analog-mainmic" />
<path name="analog-phonein" />
<path name="mixer-headphone" />
<ctl name="Headphone Switch" value="1" />
</path>
<path name="analog-phone-earpiece">
<path name="analog-mainmic" />
<path name="analog-phonein" />
<path name="mixer-earpiece" />
<!-- ctl name="Earpiece Switch" value="1" / -->
</path>
<path name="analog-phone-bt">
<ctl name="LADC input Mixer LINEINL Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="AIF2 ADL Mixer ADCL Switch" value="1" />
<ctl name="AIF3OUT Mux" value="AIF2 ADC left channel" />
<ctl name="AIF2INL Mux switch aif2inl aif2" value="1" />
<ctl name="AIF2INR Mux VIR switch aif2inr aif3" value="1" />
<ctl name="DACR Mixer AIF2DACR Switch" value="1" />
<ctl name="Right Output Mixer DACR Switch" value="1" />
</path>
<path name="abb-phone-keytone-speaker">
<path name="aif1.0-dac" />
<path name="dac-mixer" />
</path>
<path name="abb-phone-keytone-headphones">
<path name="aif1.0-dac" />
<path name="dac-mixer" />
</path>
<path name="abb-phone-keytone-bt">
</path>
<path name="abb-phone-keytone-earpiece">
</path>
<!-- capture when in call with abb-->
<path name="capture-abb-phone-mainmic">
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="LADC input Mixer MIC1 boost Switch" value="1" />
<ctl name="LADC input Mixer LINEINL Switch" value="1" />
</path>
<path name="capture-abb-phone-headsetmic">
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<!-- ctl name="ADCL Mux" value="ADC" / -->
<ctl name="LADC input Mixer MIC2 boost Switch" value="1" />
<ctl name="LADC input Mixer LINEINL Switch" value="1" />
</path>
<path name="capture-abb-phone-btmic">
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
<ctl name="AIF1 AD0L Mixer ADCL Switch" value="1" />
<ctl name="AIF1 AD0L Mixer AIF2 DACR Switch" value="1" />
</path>
<path name="com-ap-bt">
<ctl name="AIF1IN0L Mux" value="AIF1_DA0L" />
<ctl name="AIF2 ADL Mixer AIF1 DA0L Switch" value="1" />
<ctl name="AIF2 ADL Mixer AIF1 DA0L Switch" value="1" />
<ctl name="AIF3OUT Mux" value="AIF2 ADC left channel" />
</path>
<path name="com-bt-ap">
<ctl name="AIF2INR Mux switch aif2inr aif2" value="1" />
<ctl name="AIF2INR Mux VIR switch aif2inr aif3" value="1" />
<ctl name="AIF1 AD0L Mixer AIF2 DACR Switch" value="1" />
<ctl name="AIF1OUT0L Mux" value="AIF1_AD0L" />
</path>
<path name="null">
</path>
</mixer>

View file

@ -0,0 +1,248 @@
<audio_platform_info>
<!-- kylin platform -->
<!--
Point out what plugins to use.
-status
off: disable this plugin
on: enable this plugin
-->
<platform_audio_plugins_config>
<plugin name="dump_data" status="off"/>
<plugin name="audio_3d_surround" status="off"/>
<plugin name="bp" status="off"/>
</platform_audio_plugins_config>
<!--
platform_devices:
-devices
What devices are included in this profile.
snd_card_config:
-type
frontend/backend/out_backend/in_backend.
backend:
You need to open and start this out&in PCM device,
but do not need to write data to this out&in PCM device.
out_backend:
You need to open and start this out PCM device,
but do not need to write data to this out PCM device.
in_backend:
You need to open and start this in PCM device,
but do not need to read data from this in PCM device.
-card_name
alsa snd card name.
-device
alsa device id, refer to pcm_open
-channels
pcm channel config. 1:mono, 2:stereo. refer to pcm_config
-rate
sampling rate, e.g. 44100, 48000... refer to pcm_config
-period_size
refer to pcm_config
-period_count
refer to pcm_config
-->
<!-- main output profile -->
<platform_devices_profile>
<platform_devices devices="OUT_SPK|OUT_EAR|OUT_HP|OUT_SPK_AND_HP|OUT_DULSPK|OUT_DULSPK_HP"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="44100" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- main input profile -->
<platform_devices_profile>
<platform_devices devices="IN_AMIC|IN_DMIC|IN_HPMIC"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="44100" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- hdmi -->
<platform_devices_profile>
<platform_devices devices="OUT_HDMI"/>
<snd_card_config
type="frontend" card_name="sndhdmi" device="0"
channels="2" rate="44100" period_size="512" period_count="2"
/>
</platform_devices_profile>
<!-- spdif -->
<platform_devices_profile>
<platform_devices devices="OUT_SPDIF"/>
<snd_card_config
type="frontend" card_name="sndspdif" device="0"
channels="2" rate="44100" period_size="512" period_count="2"
/>
</platform_devices_profile>
<!-- bt sco -->
<platform_devices_profile>
<platform_devices devices="OUT_BTSCO|IN_BTSCO"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="8000" period_size="512" period_count="2"
/>
<snd_card_config
type="backend" card_name="audiocodec" device="3"
channels="1" rate="8000" period_size="512" period_count="2"
/>
<snd_card_config
type="backend" card_name="audiocodec" device="4"
channels="1" rate="8000" period_size="512" period_count="2"
/>
/>
</platform_devices_profile>
<!-- digital phone -->
<platform_devices_profile>
<platform_devices devices="DPH_SPK|DPH_EAR|DPH_HP|DPH_HS"/>
<snd_card_config
type="backend" card_name="audiocodec" device="1"
channels="1" rate="8000" period_size="512" period_count="2"
/>
</platform_devices_profile>
<!-- digital phone bt -->
<platform_devices_profile>
<platform_devices devices="DPH_BTSCO"/>
<snd_card_config
type="backend" card_name="audiocodec" device="1"
channels="1" rate="8000" period_size="512" period_count="2"
/>
<snd_card_config
type="backend" card_name="audiocodec" device="3"
channels="1" rate="8000" period_size="512" period_count="2"
/>
</platform_devices_profile>
<!-- digital phone playback and record device -->
<platform_devices_profile>
<platform_devices devices="OUT_DPH_PLAY | IN_DPH_REC"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="1"
channels="1" rate="8000" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- analog phone playback and record device -->
<platform_devices_profile>
<platform_devices devices="OUT_APH_PLAY|IN_APH_REC"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="1"
channels="1" rate="8000" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- audio hub: codec and hdmi -->
<platform_devices_profile>
<platform_devices devices="OUT_SPK_HDMI|OUT_DULSPK_HDMI|OUT_HP_HDMI"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
<snd_card_config
type="out_backend" card_name="audiocodec" device="4"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- audio hub: codec and spdif -->
<platform_devices_profile>
<platform_devices devices="OUT_SPK_SPDIF|OUT_DULSPK_SPDIF|OUT_HP_SPDIF"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
<snd_card_config
type="out_backend" card_name="audiocodec" device="5"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!-- audio hub: codec, hdmi and spdif -->
<platform_devices_profile>
<platform_devices devices="OUT_HDMI_SPDIF|OUT_SPK_HDMI_SPDIF|OUT_DULSPK_HDMI_SPDIF|OUT_HP_HDMI_SPDIF"/>
<snd_card_config
type="frontend" card_name="audiocodec" device="0"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
<snd_card_config
type="out_backend" card_name="audiocodec" device="4"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
<snd_card_config
type="out_backend" card_name="audiocodec" device="5"
channels="2" rate="48000" period_size="1024" period_count="2"
/>
</platform_devices_profile>
<!--
platform_device_path:
Point out the platform device path.
-device
platform device, refer to platform.h
-path
the platform device path. refer to audio_mixer_paths.xml
-->
<platform_device_path>
<!-- platform playback device path -->
<device_path_map device="OUT_NONE" path="null"/>
<device_path_map device="OUT_RESET" path="null"/>
<device_path_map device="OUT_EAR" path="media-single-speaker"/>
<device_path_map device="OUT_SPK" path="media-single-speaker"/>
<device_path_map device="OUT_DULSPK" path="media-speaker"/>
<device_path_map device="OUT_HP" path="media-headphones"/>
<device_path_map device="OUT_SPK_HP" path="phone-ring-voice"/>
<device_path_map device="OUT_DULSPK_HP" path="phone-ring-voice"/>
<device_path_map device="OUT_BTSCO" path="com-ap-bt"/>
<device_path_map device="OUT_DPH_PLAY" path="null"/>
<device_path_map device="OUT_APH_PLAY" path="null"/>
<device_path_map device="OUT_HDMI" path="null"/>
<device_path_map device="OUT_SPDIF" path="null"/>
<device_path_map device="OUT_SPK_HDMI" path="null"/>
<device_path_map device="OUT_DULSPK_HDMI" path="null"/>
<device_path_map device="OUT_HP_HDMI" path="null"/>
<device_path_map device="OUT_SPK_SPDIF" path="null"/>
<device_path_map device="OUT_DULSPK_SPDIF" path="null"/>
<device_path_map device="OUT_HP_SPDIF" path="null"/>
<device_path_map device="OUT_HDMI_SPDIF" path="null"/>
<device_path_map device="OUT_SPK_HDMI_SPDIF" path="null"/>
<device_path_map device="OUT_DULSPK_HDMI_SPDIF" path="null"/>
<device_path_map device="OUT_HP_HDMI_SPDIF" path="null"/>
<!-- platform record device path -->
<device_path_map device="IN_AMIC" path="media-main-mic"/>
<device_path_map device="IN_DMIC" path="media-digital-mic"/>
<device_path_map device="IN_HPMIC" path="media-headset-mic"/>
<device_path_map device="IN_BTSCO" path="com-bt-ap"/>
<device_path_map device="IN_DPH_REC" path="null"/>
<device_path_map device="IN_APH_REC" path="null"/>
<!-- phone path -->
<device_path_map device="APH_SPK" path="analog-phone-speaker"/>
<device_path_map device="APH_EAR" path="analog-phone-earpiece"/>
<device_path_map device="APH_HP" path="analog-phone-headphone"/>
<device_path_map device="APH_HS" path="analog-phone-headset"/>
<device_path_map device="APH_BTSCO" path="analog-phone-bt"/>
<device_path_map device="DPH_SPK" path="digital-phone-speaker"/>
<device_path_map device="DPH_EAR" path="digital-phone-earpiece"/>
<device_path_map device="DPH_HP" path="digital-phone-headphone"/>
<device_path_map device="DPH_HS" path="digital-phone-headset"/>
<device_path_map device="DPH_BTSCO" path="digital-phone-bt"/>
</platform_device_path>
</audio_platform_info>

View file

@ -0,0 +1,101 @@
# Global configuration section: lists input and output devices always present on the device
# as well as the output device selected by default.
# Devices are designated by a string that corresponds to the enum in audio.h
global_configuration {
attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER
default_output_device AUDIO_DEVICE_OUT_SPEAKER
attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
audio_hw_modules {
primary {
outputs {
primary {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET
flags AUDIO_OUTPUT_FLAG_PRIMARY
}
hdmi {
sampling_rates 44100|48000
channel_masks dynamic
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_AUX_DIGITAL
flags AUDIO_OUTPUT_FLAG_DIRECT
}
}
inputs {
primary {
sampling_rates 8000|11025|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_UPLINK|AUDIO_CHANNEL_IN_VOICE_DNLINK|AUDIO_CHANNEL_IN_VOICE
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_AF|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_FM
}
}
}
a2dp {
outputs {
a2dp {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_ALL_A2DP
}
}
}
usb {
outputs {
usb_accessory {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_ACCESSORY
}
usb_device {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_DEVICE
}
}
inputs {
usb_device {
sampling_rates dynamic
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_USB_DEVICE
}
}
}
r_submix {
outputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
}
}
inputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
}
}
}

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (C) 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<globalConfiguration speaker_drc_enabled="true"/>
<modules>
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Speaker</item>
<item>Built-In Mic</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hdmi output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="dynamic"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100"
channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
</devicePort>
<devicePort tagName="HDMI Out" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
</devicePort>
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="Speaker"
sources="primary output"/>
<route type="mix" sink="Wired Headset"
sources="primary output"/>
<route type="mix" sink="Wired Headphones"
sources="primary output"/>
<route type="mix" sink="BT SCO"
sources="primary output"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output"/>
<route type="mix" sink="HDMI Out"
sources="hdmi output"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Wired Headset Mic,BT SCO Headset Mic"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
<xi:include href="a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- Volume section -->
<xi:include href="audio_policy_volumes_drc.xml"/>
<xi:include href="default_volume_tables.xml"/>
</audioPolicyConfiguration>

View file

@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Volume section defines a volume curve for a given use case and device category.
It contains a list of points of this curve expressing the attenuation in Millibels for a given
volume index from 0 to 100.
<volume stream=”AUDIO_STREAM_MUSIC” deviceCategory=””>
<point>0,-9600</point>
<point>100,0</point>
</volume>
-->
<volumes>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>0,-4200</point>
<point>33,-2800</point>
<point>66,-1400</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>0,-2400</point>
<point>33,-1600</point>
<point>66,-800</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE">
<point>0,-2400</point>
<point>33,-1600</point>
<point>66,-800</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-3000</point>
<point>33,-2600</point>
<point>66,-2200</point>
<point>100,-1800</point>
</volume>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3400</point>
<point>33,-2400</point>
<point>66,-1500</point>
<point>100,-600</point>
</volume>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3570</point>
<point>33,-2610</point>
<point>66,-1320</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-4650</point>
<point>33,-2650</point>
<point>86,-700</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3570</point>
<point>33,-2610</point>
<point>66,-1320</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3570</point>
<point>33,-2610</point>
<point>66,-1320</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>0,-4200</point>
<point>33,-2800</point>
<point>66,-1400</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>0,-2400</point>
<point>33,-1600</point>
<point>66,-800</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EARPIECE">
<point>0,-4200</point>
<point>33,-2800</point>
<point>66,-1400</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-3000</point>
<point>33,-2600</point>
<point>66,-2200</point>
<point>100,-1800</point>
</volume>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-3400</point>
<point>33,-2400</point>
<point>66,-1500</point>
<point>100,-600</point>
</volume>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_HEADSET">
<point>1,-3000</point>
<point>33,-2600</point>
<point>66,-2200</point>
<point>100,-1800</point>
</volume>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_SYSTEM_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="SILENT_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_SPEAKER">
<point>1,-5500</point>
<point>20,-4300</point>
<point>86,-1200</point>
<point>100,0</point>
</volume>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="DEFAULT_MEDIA_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_HEADSET"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_SPEAKER"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EARPIECE"
ref="FULL_SCALE_VOLUME_CURVE"/>
<volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA"
ref="FULL_SCALE_VOLUME_CURVE"/>
</volumes>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<cfgOverrides>
<cfgOverride
name="floatwindow_enable"
value="1"/>
<cfgOverride
name="smart_detection_enable"
value="0"/>
<cfgOverride
name="athumb_enable"
value="0"/>
<cfgOverride
name="presentation_enable"
value="0"/>
<cfgOverride
name="hide_menu_athumb"
value="1"/>
<cfgOverride
name="hide_menu_presentation"
value="0"/>
<cfgOverride
name="hide_icon_floatwindow"
value="0"/>
<cfgOverride
name="hide_3d_menu"
value="0"/>
</cfgOverrides>

View file

@ -0,0 +1,335 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT MediaCodecs (Decoders,Encoders)>
<!ELEMENT Decoders (MediaCodec*)>
<!ELEMENT Encoders (MediaCodec*)>
<!ELEMENT MediaCodec (Type*,Quirk*)>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<!--
<MediaCodec name="OMX.TI.DUCATI1.VIDEO.DECODER" >
<Type name="video/mp4v-es" />
<Type name="video/3gpp" />
<Type name="video/avc" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" />
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" />
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" />
<MediaCodec name="OMX.google.vpx.decoder" type="video/x-vnd.on2.vp8" />
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="2" />
</Settings>
<Decoders>
<MediaCodec name="OMX.allwinner.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="4096x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="4096x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="176x144" max="4096x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.mjpeg" type="video/jpeg" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-300000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.mpeg1" type="video/mpeg1" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="176x144" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<!--MediaCodec name="OMX.allwinner.video.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec-->
<MediaCodec name="OMX.allwinner.video.decoder.vp6" type="video/x-vnd.on2.vp6" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-4000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="177x144" max="4096x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-40000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<!--MediaCodec name="OMX.allwinner.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="176x144" max="1200x700" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-2000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec-->
<MediaCodec name="OMX.allwinner.video.decoder.vc1" type="video/wvc1" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.msmpeg4v1" type="video/x-ms-mpeg4v1" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.msmpeg4v2" type="video/x-ms-mpeg4v2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.divx" type="video/divx" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.xvid" type="video/xvid" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.s263" type="video/flv1" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.rxg2" type="video/rvg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.wmv1" type="video/wmv1" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.wmv2" type="video/wmv2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="32x32" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="OMX.allwinner.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="176x144" max="1280x720" />
<Limit name="alignment" value="16x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-20000000" />
<Limit name="concurrent-instances" max="4" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Included>
<Decoders>
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
<Limit name="bitrate" range="8000-320000" />
</MediaCodec>
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="8000" />
<Limit name="bitrate" range="4750-12200" />
</MediaCodec>
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="16000" />
<Limit name="bitrate" range="6600-23850" />
</MediaCodec>
<MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm">
<Limit name="channel-count" max="8" />
<Limit name="sample-rate" ranges="7350,8000,11025,12000,16000,22050,24000,32000,44100,48000" />
<Limit name="bitrate" range="8000-960000" />
</MediaCodec>
<MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="bitrate" range="64000" />
</MediaCodec>
<MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="bitrate" range="64000" />
</MediaCodec>
<MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis">
<Limit name="channel-count" max="8" />
<Limit name="sample-rate" ranges="8000-96000" />
<Limit name="bitrate" range="32000-500000" />
</MediaCodec>
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus">
<Limit name="channel-count" max="8" />
<Limit name="sample-rate" ranges="48000" />
<Limit name="bitrate" range="6000-510000" />
</MediaCodec>
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw">
<Limit name="channel-count" max="8" />
<Limit name="sample-rate" ranges="8000-96000" />
<Limit name="bitrate" range="1-10000000" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm">
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="8000,11025,12000,16000,22050,24000,32000,44100,48000" />
<!-- also may support 64000, 88200 and 96000 Hz -->
<Limit name="bitrate" range="8000-960000" />
</MediaCodec>
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="8000" />
<Limit name="bitrate" range="4750-12200" />
<Feature name="bitrate-modes" value="CBR" />
</MediaCodec>
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb">
<Limit name="channel-count" max="1" />
<Limit name="sample-rate" ranges="16000" />
<Limit name="bitrate" range="6600-23850" />
<Feature name="bitrate-modes" value="CBR" />
</MediaCodec>
<MediaCodec name="OMX.google.flac.encoder" type="audio/flac">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="1-655350" />
<Limit name="bitrate" range="1-21000000" />
<Limit name="complexity" range="0-8" default="5" />
<Feature name="bitrate-modes" value="CQ" />
</MediaCodec>
</Encoders>
</Included>

View file

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<Included>
<Decoders>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es">
<!-- profiles and levels: ProfileSimple : Level3 -->
<Limit name="size" min="2x2" max="352x288" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="12-11880" />
<Limit name="bitrate" range="1-384000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp">
<!-- profiles and levels: ProfileBaseline : Level30, ProfileBaseline : Level45
ProfileISWV2 : Level30, ProfileISWV2 : Level45 -->
<Limit name="size" min="2x2" max="352x288" />
<Limit name="alignment" value="2x2" />
<Limit name="bitrate" range="1-384000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc">
<!-- profiles and levels: ProfileHigh : Level41 -->
<Limit name="size" min="16x16" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="1-244800" />
<Limit name="bitrate" range="1-12000000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc">
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
<Limit name="size" min="2x2" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="8x8" />
<Limit name="block-count" range="1-139264" />
<Limit name="blocks-per-second" range="1-2000000" />
<Limit name="bitrate" range="1-10000000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8">
<Limit name="size" min="2x2" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="1-1000000" />
<Limit name="bitrate" range="1-40000000" />
<Feature name="adaptive-playback" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9">
<Limit name="size" min="2x2" max="1280x736" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="1-500000" />
<Limit name="bitrate" range="1-40000000" />
<Feature name="adaptive-playback" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp">
<!-- profiles and levels: ProfileBaseline : Level45 -->
<Limit name="size" min="176x144" max="176x144" />
<Limit name="alignment" value="16x16" />
<Limit name="bitrate" range="1-128000" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc">
<!-- profiles and levels: ProfileBaseline : Level41 -->
<Limit name="size" min="16x16" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="1-244800" />
<Limit name="bitrate" range="1-12000000" />
<Feature name="intra-refresh" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es">
<!-- profiles and levels: ProfileCore : Level2 -->
<Limit name="size" min="16x16" max="176x144" />
<Limit name="alignment" value="16x16" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="12-1485" />
<Limit name="bitrate" range="1-64000" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8">
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
<Limit name="size" min="2x2" max="1280x720" />
<Limit name="alignment" value="2x2" />
<Limit name="bitrate" range="1-40000000" />
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
</Encoders>
</Included>

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="OMX.allwinner.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="45-220" />
<Limit name="measured-frame-rate-720x480" range="87-322" />
<Limit name="measured-frame-rate-1280x720" range="27-147" />
<!-- Limit name="measured-frame-rate-1920x1080" range="69-69" / -->
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="58-474" />
<Limit name="measured-frame-rate-720x480" range="29-140" />
<Limit name="measured-frame-rate-1280x720" range="10-50" />
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="126-1003" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="175-847" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="40-198" />
<Limit name="measured-frame-rate-640x360" range="16-79" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.allwinner.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="318-1540" />
<Limit name="measured-frame-rate-720x480" range="240-1100" />
<Limit name="measured-frame-rate-1280x720" range="66-323" />
<Limit name="measured-frame-rate-1920x1088" range="59-286" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="137-666" />
<Limit name="measured-frame-rate-720x480" range="88-429" />
<Limit name="measured-frame-rate-1280x720" range="66-323" />
<Limit name="measured-frame-rate-1920x1088" range="56-56" />
</MediaCodec>
<!-- MediaCodec name="OMX.allwinner.video.decoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="296-1435" />
<Limit name="measured-frame-rate-352x288" range="212-1029" />
</MediaCodec -->
<MediaCodec name="OMX.allwinner.video.decoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="489-522" />
<Limit name="measured-frame-rate-480x360" range="166-807" />
</MediaCodec>
<MediaCodec name="OMX.allwinner.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="186-902" />
<Limit name="measured-frame-rate-640x360" range="216-1049" />
<Limit name="measured-frame-rate-1280x720" range="66-324" />
<Limit name="measured-frame-rate-1920x1080" range="26-91"/>
</MediaCodec>
<!--MediaCodec name="OMX.allwinner.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="35-174" />
<Limit name="measured-frame-rate-640x360" range="9-47" />
<Limit name="measured-frame-rate-1280x720" range="26-28" />
</MediaCodec-->
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="140-682" />
<Limit name="measured-frame-rate-720x480" range="50-244" />
<!--Limit name="measured-frame-rate-1280x720" range="20-94" /-->
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="270-283" />
<Limit name="measured-frame-rate-352x288" range="85-86" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="278-305" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="232-255" />
<Limit name="measured-frame-rate-640x360" range="106-111" />
<Limit name="measured-frame-rate-720x480" range="61-297" />
<Limit name="measured-frame-rate-1280x720" range="26-127" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="186-902" />
<Limit name="measured-frame-rate-640x360" range="87-91" />
<Limit name="measured-frame-rate-1280x720" range="18-18" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="134-649" />
<Limit name="measured-frame-rate-640x360" range="81-84" />
<Limit name="measured-frame-rate-1280x720" range="26-28" />
</MediaCodec>
</Decoders>
</MediaCodecs>

View file

@ -0,0 +1,2 @@
pselect6: 1
sysinfo: 1

View file

@ -0,0 +1,60 @@
#Configuration file for the audio volume
#使用说明:
#[PHONE_EARPIECE] -->听筒音量设置.听筒音量由3个部分控制,分别是phonepn_gain,mixer_gain,output_gain.
#phonepn_gain =1,4,4,4,4,7 (范围为0~7)
#mixer_gain =3,3,3,4,5,7 (范围为0~7)
#output_gain =60,60,60,60,60,60 (范围为0~61)
#
#声音共分6级,level_1时,声音最小.
#level1, level2, level3, level4, level5, level6
#例如
#phonepn_gain =1,4,4,4,4,7
#level1时, phonepn_gain音量为1. 
#level2时, phonepn_gain音量为4.
#
#
#phonepn_gain 范围为0~7 3dB/step
#mixer_gain 范围为0~7 1.5dB/step
#hp_gain 范围为0~7 1dB/step
#spk_gain 范围为0~31 1.5dB/step
#line_gain 范围为0~31 1.5dB/step
################Phone down stream##################################
[PHONE_EARPIECE]
phonepn_gain =1,4,4,4,4,7
mixer_gain =3,3,3,4,5,7
hp_gain =60,60,60,60,60,60
[PHONE_HEADSET]
phonepn_gain =1,4,4,4,4,7
mixer_gain =3,3,3,4,5,7
hp_gain =20,25,30,35,35,35
[PHONE_SPEAKER]
phonepn_gain =1,4,4,4,4,7
mixer_gain =3,3,3,4,5,7
spk_gain =25,26,28,29,31,31
#蓝牙上行音量控制,可减少蓝牙mic带来的上行噪音
#值越大,噪音越小,音量越小,声音效果越差
#当前,仅对plan one 配置有效
[BLUETOOTH_UP]
pcm_vol =8
##############Analog FM####################################
[FM_HEADSET]
line_gain =2,3,4,5,6,7
hp_gain =48,50,52,56,58,61
[FM_SPEAKER]
line_gain =2,3,4,5,6,7
spk_gain =21,23,25,26,28,30

View file

@ -0,0 +1,65 @@
import /vendor/etc/init/hw/init.common.rc
import /vendor/etc/init/hw/init.device.rc
import /vendor/etc/init/hw/init.sun50iw1p1.usb.rc
on init
# Set permissions for persist partition
mkdir /persist 0771 system system
mkdir /firmware 0771 system system
# Support legacy paths
symlink /sdcard /mnt/sdcard
symlink /sdcard /storage/sdcard0
# Setup zram options
write /sys/block/zram0/comp_algorithm lz4
mkdir /oem 0550 system system
export PATH /vendor/xbin:/sbin:/system/sbin:/system/bin:/system/xbin:/vendor/bin
on early-fs
wait /dev/block/by-name/media_data
mount vfat /dev/block/by-name/media_data /oem ro nosuid nodev utf8,context=u:object_r:oemfs:s0
on fs
mount_all /vendor/etc/fstab.sun50iw1p1
swapon_all /vendor/etc/fstab.sun50iw1p1
restorecon_recursive /persist
on late-fs
# gpu
insmod /vendor/modules/mali.ko
write /sys/devices/platform/soc/cpu_budget_cooling/roomage "1152000 4 0 0 1152000 4 0 0"
# mkdir for optee
mkdir /data/tee 0770 system system
restorecon_recursive /data/tee
on post-fs-data
# Set indication (checked by vold) that we have finished this action
setprop vold.post_fs_data_done 1
on boot
chown system system /sys/kernel/autohotplug/enable
chmod 0660 /sys/kernel/autohotplug/enable
chown system system /sys/devices/platform/soc/twi0/i2c-0/0-0040/input/input4/runtime_suspend
chmod 0660 /sys/devices/platform/soc/twi0/i2c-0/0-0040/input/input4/runtime_suspend
chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
chown system system /sys/devices/platform/soc/cpu_budget_cooling/roomage
chmod 0660 /sys/devices/platform/soc/cpu_budget_cooling/roomage
write /sys/devices/platform/soc/cpu_budget_cooling/roomage "1152000 4 0 0 1152000 4 0 0"
chown system system /sys/class/devfreq/dramfreq/adaptive/pause
chmod 0660 /sys/class/devfreq/dramfreq/adaptive/pause
chown system system /sys/class/thermal/thermal_zone0/emul_temp
chmod 0660 /sys/class/thermal/thermal_zone0/emul_temp
write /sys/class/disp/disp/attr/runtime_enable 1
write /sys/kernel/mm/ksm/pages_to_scan 100
write /sys/kernel/mm/ksm/sleep_millisecs 500
write /sys/kernel/mm/ksm/run 1
chown system system /sys/kernel/debug/sync/sw_sync
chmod 0777 /sys/kernel/debug/sync/sw_sync
on post-fs-data
# create file for audio dump data
mkdir /data/audio_d 0777 audio audio

View file

@ -0,0 +1,145 @@
#
# Copyright (C) 2016 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
on boot
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount configfs none /config
mkdir /config/usb_gadget/g1 0770 shell shell
#aw 1f3a
write /config/usb_gadget/g1/idVendor 0x1f3a
write /config/usb_gadget/g1/bcdDevice 0x0440
write /config/usb_gadget/g1/bcdUSB 0x0200
mkdir /config/usb_gadget/g1/strings/0x409 0770
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
mkdir /config/usb_gadget/g1/functions/accessory.gs2
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
mkdir /config/usb_gadget/g1/functions/ffs.adb
mkdir /config/usb_gadget/g1/functions/ffs.mtp
mkdir /config/usb_gadget/g1/functions/diag.diag
mkdir /config/usb_gadget/g1/functions/cser.dun.0
mkdir /config/usb_gadget/g1/functions/cser.nmea.1
mkdir /config/usb_gadget/g1/functions/mtp.gs0
mkdir /config/usb_gadget/g1/functions/ptp.gs1
mkdir /config/usb_gadget/g1/functions/rndis.gs4
write /config/usb_gadget/g1/functions/rndis.gs4/wceis 1
mkdir /config/usb_gadget/g1/functions/midi.gs5
mkdir /config/usb_gadget/g1/functions/gsi.rmnet
mkdir /config/usb_gadget/g1/functions/gsi.rndis
mkdir /config/usb_gadget/g1/functions/qdss.qdss
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
write /config/usb_gadget/g1/configs/b.1/MaxPower 500
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
#android-usb has two pattern, setprop this property to notify android to use linux-4.4 usb mode
#see init.usb.configfs.rc
setprop sys.usb.ffs.max_write 524288
setprop sys.usb.ffs.max_read 524288
setprop sys.usb.configfs 1
setprop sys.usb.mtp.device_type 3
setprop sys.usb.controller "1c19000.udc-controller"
write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
on property:init.svc.adbd=stopped
setprop sys.usb.ffs.ready 0
#NONE
on property:sys.usb.config=none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/os_desc/use 0
setprop sys.usb.ffs.ready 0
#MTP
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
write /config/usb_gadget/g1/os_desc/use 1
write /config/usb_gadget/g1/idProduct 0x1006
write /config/usb_gadget/g1/idVendor 0x1f3a
#MTP and ADB
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
write /config/usb_gadget/g1/os_desc/use 1
write /config/usb_gadget/g1/idProduct 0x1007
write /config/usb_gadget/g1/idVendor 0x1f3a
#ADB
on property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x1001
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=rndis && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x100a
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x100b
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
write /config/usb_gadget/g1/os_desc/use 1
write /config/usb_gadget/g1/idProduct 0x1008
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id "PTP"
write /config/usb_gadget/g1/os_desc/use 1
write /config/usb_gadget/g1/idProduct 0x1009
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=midi && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x4ee8
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x4ee9
write /config/usb_gadget/g1/idVendor 0x1f3a
on property:sys.usb.config=accessory && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d00
write /config/usb_gadget/g1/idVendor 0x18d1
on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d01
write /config/usb_gadget/g1/idVendor 0x18d1
on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d02
write /config/usb_gadget/g1/idVendor 0x18d1
on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d03
write /config/usb_gadget/g1/idVendor 0x18d1
on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d04
write /config/usb_gadget/g1/idVendor 0x18d1
on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idProduct 0x2d05
write /config/usb_gadget/g1/idVendor 0x18d1
on property:persist.sys.usb0device=1
copy /sys/devices/platform/soc/usbc0/usb_device /dev/null
on property:persist.sys.usb0device=0
copy /sys/devices/platform/soc/usbc0/usb_host /dev/null
write /config/usb_gadget/g1/idVendor 0x18d1

View file

@ -0,0 +1,121 @@
# inherit common.mk
$(call inherit-product, device/softwinner/common/common.mk)
DEVICE_PACKAGE_OVERLAYS := \
device/softwinner/tulip-common/overlay \
$(DEVICE_PACKAGE_OVERLAYS)
PRODUCT_COPY_FILES += \
device/softwinner/tulip-common/init.sun50iw1p1.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.sun50iw1p1.rc \
device/softwinner/tulip-common/init.sun50iw1p1.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.sun50iw1p1.usb.rc \
device/softwinner/tulip-common/ueventd.sun50iw1p1.rc:root/ueventd.sun50iw1p1.rc
# video
PRODUCT_COPY_FILES += \
device/softwinner/tulip-common/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
device/softwinner/tulip-common/configs/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
device/softwinner/tulip-common/configs/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
device/softwinner/tulip-common/configs/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
device/softwinner/tulip-common/configs/mediacodec-arm.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy
USE_XML_AUDIO_POLICY_CONF := 1
PRODUCT_COPY_FILES += \
device/softwinner/tulip-common/configs/audio_policy_volumes_drc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes_drc.xml \
device/softwinner/tulip-common/configs/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
device/softwinner/tulip-common/configs/audio_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_mixer_paths.xml \
hardware/libhardware_legacy/audio/audio_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy.conf \
device/softwinner/tulip-common/configs/cfg-videoplayer.xml:system/etc/cfg-videoplayer.xml
#usb and backup permissions file
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.software.backup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.backup.xml
PRODUCT_PROPERTY_OVERRIDES += \
ro.sys.cputype=QuadCore-A64
# Enabling type-precise GC results in larger optimized DEX files. The
# additional storage requirements for ".odex" files can cause /system
# to overflow on some devices, so this is configured separately for
# each product.
PRODUCT_TAGS += dalvik.gc.type-precise
PRODUCT_PROPERTY_OVERRIDES += \
ro.product.firmware=A64-o-mr1-v1.0
# if DISPLAY_BUILD_NUMBER := true then
# BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)
# required by gms.
DISPLAY_BUILD_NUMBER := true
BUILD_NUMBER := $(shell date +%Y%m%d-%H%M%S)
PRODUCT_PROPERTY_OVERRIDES += \
drm.service.enabled=true
PRODUCT_PACKAGES += \
libwvhidl \
libwvdrmengine \
libvtswidevine
ifeq ($(BOARD_HAS_SECURE_OS), true)
SECURE_OS_OPTEE := yes
PRODUCT_PACKAGES += \
libteec \
tee_supplicant
# keymaster version (0 or 2)
BOARD_KEYMASTER_VERSION := 2
# hardware keymaster hal
PRODUCT_PACKAGES += \
keystore.tulip
# keymaster ta
ifeq ($(BOARD_KEYMASTER_VERSION), 0)
PRODUCT_COPY_FILES += \
device/softwinner/common/optee_ta/d6bebe60-be3e-4046-b239891e0a594860.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/d6bebe60-be3e-4046-b239891e0a594860.ta
else
PRODUCT_COPY_FILES += \
device/softwinner/common/optee_ta/f5f7b549-ba64-44fe-9b74f3fc357c7c61.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/f5f7b549-ba64-44fe-9b74f3fc357c7c61.ta
endif
# gatekeeper ta
PRODUCT_COPY_FILES += \
device/softwinner/common/optee_ta/2233b43b-cec6-449a-9509469f5023e425.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/2233b43b-cec6-449a-9509469f5023e425.ta
ifeq ($(BOARD_WIDEVINE_OEMCRYPTO_LEVEL), 1)
PRODUCT_PACKAGES += \
liboemcrypto
PRODUCT_COPY_FILES += \
device/softwinner/common/optee_ta/a98befed-d679-ce4a-a3c827dcd51d21ed.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/a98befed-d679-ce4a-a3c827dcd51d21ed.ta \
device/softwinner/common/optee_ta/4d78d2ea-a631-70fb-aaa787c2b5773052.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/4d78d2ea-a631-70fb-aaa787c2b5773052.ta \
device/softwinner/common/optee_ta/e41f7029-c73c-344a-8c5bae90c7439a47.ta:$(TARGET_COPY_OUT_VENDOR)/lib/optee_armtz/e41f7029-c73c-344a-8c5bae90c7439a47.ta
PRODUCT_PROPERTY_OVERRIDES += \
ro.sys.widevine_oemcrypto_level=1
else # ifeq ($(BOARD_WIDEVINE_OEMCRYPTO_LEVEL), 1)
PRODUCT_PROPERTY_OVERRIDES += \
ro.sys.widevine_oemcrypto_level=3
endif # ifeq ($(BOARD_WIDEVINE_OEMCRYPTO_LEVEL), 1)
else # ifeq ($(BOARD_HAS_SECURE_OS), true)
SECURE_OS_OPTEE := no
# if has no secure os, widevine level must set to 3
BOARD_WIDEVINE_OEMCRYPTO_LEVEL := 3
PRODUCT_PROPERTY_OVERRIDES += \
ro.sys.widevine_oemcrypto_level=3
endif # ifeq ($(BOARD_HAS_SECURE_OS), true)
########################################################################
# GPU relevant configuration
# As we could not get the variable in BoardConfigCommon.mk,
# TARGET_GPU_TYPE, TARGET_ARCH and TARGET_BOARD_PLATFORM
# should be assigned here for hardware/aw/gpu/product_config.mk.
# If the platform does not own a GPU, the GPU configuration
# should not added here.
TARGET_GPU_TYPE := mali400
TARGET_ARCH := arm64
TARGET_BOARD_PLATFORM := tulip
$(call inherit-product, hardware/aw/gpu/product_config.mk)
########################################################################

View file

@ -0,0 +1,13 @@
# Primary Arch
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_VARIANT := cortex-a15
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_USES_64_BIT_BINDER := true
TARGET_SUPPORTS_32_BIT_APPS := true

View file

@ -0,0 +1,27 @@
# Primary Arch
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_VARIANT := generic
TARGET_CPU_ABI := arm64-v8a
# Secondary Arch
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_VARIANT := cortex-a15
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_USES_64_BIT_BINDER := true
TARGET_SUPPORTS_32_BIT_APPS := true
TARGET_SUPPORTS_64_BIT_APPS := true
ANDROID_64=true
# Copy the 64-bit primary, 32-bit secondary zygote startup script
PRODUCT_COPY_FILES += system/core/rootdir/init.zygote64_32.rc:root/init.zygote64_32.rc
# Set the zygote property to select the 64-bit primary, 32-bit secondary script
# This line must be parsed before the one in core_minimal.mk
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote64_32

View file

@ -0,0 +1,33 @@
/dev/disp 0770 system system
/dev/cedar_dev 0666 media camera
/dev/ace_dev 0666 system system
/dev/ump 0777 system graphics
/dev/mali 0666 system graphics
/dev/video0 0770 camera camera
/dev/video1 0770 camera camera
/dev/ttyUSB0 0777 system system
/dev/ttyUSB1 0777 system system
/dev/ttyUSB2 0777 system system
/dev/ttyUSB3 0777 system system
/dev/ttyACM0 0777 system system
/dev/ttyACM1 0777 system system
/dev/ttyACM2 0777 system system
/dev/gps 0777 system system
/dev/pa_dev 0777 system system
/dev/sunxi_mem 0666 media media
/dev/g2d 0660 media media
/dev/fd_dev 0660 media media
/dev/sr0 0777 system system
/dev/ion 0777 system graphics
/dev/transform 0660 system system
/dev/pvrsrvkm 0666 root root
/dev/pvr_sync 0666 system graphics
/dev/block/mmcblk0p* 0660 system root
/dev/block/mmcblk1p* 0660 system root
/dev/block/nand0p* 0660 system root
/dev/tee0 0776 media mediadrm
/dev/teepriv0 0776 media mediadrm
/dev/input/* 0660 system input
# sysfs properties
/sys/devices/virtual/input/input* delay 0660 root input