summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPraneeth Bajjuri <praneeth@ti.com>2017-04-18 17:56:24 -0500
committerPraneeth Bajjuri <praneeth@ti.com>2017-04-18 17:56:43 -0500
commit907885547ca9092626792b237c40252828153d26 (patch)
tree02ab894fd44560d3412f0e081dcc79357e638f45
parent08aa0e5de0de0816278bd305db9a2c9753b9dee9 (diff)
parentc4917e6db5cea16cc6cefbaeee128ae1bf6acf62 (diff)
downloadam57xevm-907885547ca9092626792b237c40252828153d26.tar.gz
Merge branch 'd-marshmallow-mr3-release' into d-nougat-release
* d-marshmallow-mr3-release: (33 commits) am57xevm: update reference kernel to 4.4.59 am57xevm: Update recovery UI format to BGRA media_codecs.xml: Add max number of concurrent instance support media_codecs.xml: define the max input buffers for encoder am57xevm: Enable PRU Ethernet on IDK boards am57xevm: idk: update correct dtb file in fastboot script am57xevm: fastboot: Add AM571 IDK flashing support am57xevm: remove efs partition am57xem: update reference 4.4 kernel image am57xevm: sepolicy: remove BT policy am57xevm: Add feature for voice recognition software am57xevm: add media_codecs_performance.xml am57xevm: sepolicy: adapt file_contexts am57xevm: device.mk: fix merge error #endif enable systrace functionality Cleanup: Remove unapplicable services audio: primary: Allocate temporary buffer for resampling jacinto6evm: sepolicy: Add rules for APPE jacinto6evm: sepolicy: initial sepolicy rules for lad daemon Don't use logwrapper for lad and RadioApp ... Signed-off-by: Praneeth Bajjuri <praneeth@ti.com> Conflicts: BoardConfig.mk audio/Android.mk device.mk init.am57xevmboard.rc kernel sepolicy/file_contexts sepolicy/init.te
-rw-r--r--Android.mk19
-rw-r--r--BoardConfig.mk2
-rw-r--r--audio/primary/audio_hw.c42
-rw-r--r--device.mk10
-rwxr-xr-xfastboot.sh19
-rw-r--r--fstab.am57xevmboard1
-rw-r--r--init.am57xevmboard.rc60
-rw-r--r--kernelbin5300328 -> 8026608 bytes
-rw-r--r--media_codecs.xml8
-rw-r--r--media_codecs_performance.xml97
-rw-r--r--sepolicy/device.te4
-rw-r--r--sepolicy/file_contexts24
-rw-r--r--sepolicy/init.te3
-rw-r--r--sepolicy/lad_dra7xx.te21
-rw-r--r--sepolicy/mediaserver.te8
-rw-r--r--sepolicy/netd.te4
-rw-r--r--sepolicy/vis.te20
-rw-r--r--tablet_core_hardware_am57xevm.xml1
-rw-r--r--ueventd.am57xevmboard.rc2
19 files changed, 229 insertions, 116 deletions
diff --git a/Android.mk b/Android.mk
index 7b2760f..4278dc5 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,25 +28,6 @@ LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),am57xevm)
include $(CLEAR_VARS)
-LOCAL_MODULE := am57xevm_hdcp_keys
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_MODULE_SUFFIX := -timestamp
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE): HDCP_KEYS_FILE := /factory/hdcp.keys
-$(LOCAL_BUILT_MODULE): SYMLINK := $(TARGET_OUT_VENDOR)/firmware/hdcp.keys
-$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/Android.mk
-$(LOCAL_BUILT_MODULE):
- $(hide) echo "Symlink: $(SYMLINK) -> $(HDCP_KEYS_FILE)"
- $(hide) mkdir -p $(dir $@)
- $(hide) mkdir -p $(dir $(SYMLINK))
- $(hide) rm -rf $@
- $(hide) rm -rf $(SYMLINK)
- $(hide) ln -sf $(HDCP_KEYS_FILE) $(SYMLINK)
- $(hide) touch $@
-
# if some modules are built directly from this directory (not subdirectories),
# their rules should be written here.
diff --git a/BoardConfig.mk b/BoardConfig.mk
index 5670e8d..801fcda 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -58,7 +58,7 @@ BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 4096
TARGET_RECOVERY_FSTAB = device/ti/am57xevm/fstab.am57xevmboard
-TARGET_RECOVERY_PIXEL_FORMAT := "RGB565"
+TARGET_RECOVERY_PIXEL_FORMAT := "BGRA_8888"
TARGET_RELEASETOOLS_EXTENSIONS := device/ti/am57xevm
# Connectivity - Wi-Fi
diff --git a/audio/primary/audio_hw.c b/audio/primary/audio_hw.c
index ab87dfa..95f0f06 100644
--- a/audio/primary/audio_hw.c
+++ b/audio/primary/audio_hw.c
@@ -1543,6 +1543,7 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
{
struct j6_audio_device *adev = (struct j6_audio_device *)dev;
struct j6_stream_in *in;
+ int buffer_size;
int ret;
UNUSED(handle);
@@ -1590,21 +1591,10 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
/* in-place stereo-to-mono remix since capture stream is stereo */
if (in->requested_channels == 1) {
ALOGV("adev_open_input_stream() stereo-to-mono remix needed");
-
- /*
- * buffer size is already enough to allow stereo-to-mono remix
- * and resample if needed
- */
- in->buffer = malloc(2 * in->config.period_size * in->hw_frame_size);
- if (!in->buffer) {
- ret = -ENOMEM;
- goto err1;
- }
-
ret = setup_stereo_to_mono_input_remix(in);
if (ret) {
ALOGE("adev_open_input_stream() failed to setup remix %d", ret);
- goto err2;
+ goto err1;
}
}
@@ -1622,6 +1612,24 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
&in->resampler);
if (ret) {
ALOGE("adev_open_input_stream() failed to create resampler %d", ret);
+ goto err2;
+ }
+ }
+
+ /*
+ * buffer size needs to be enough to allow stereo-to-mono remix
+ * and resample if needed
+ */
+ if (in->resampler || in->remix) {
+ buffer_size = in->config.period_size * in->hw_frame_size;
+ if (in->resampler)
+ buffer_size *= 2;
+ if (in->remix)
+ buffer_size *= 2;
+
+ in->buffer = malloc(buffer_size);
+ if (!in->buffer) {
+ ret = -ENOMEM;
goto err3;
}
}
@@ -1631,9 +1639,9 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
return 0;
err3:
- free(in->remix);
+ release_resampler(in->resampler);
err2:
- free(in->buffer);
+ free(in->remix);
err1:
free(in);
return ret;
@@ -1651,17 +1659,13 @@ static void adev_close_input_stream(struct audio_hw_device *dev,
if (in->resampler)
release_resampler(in->resampler);
- in->resampler = NULL;
if (in->remix)
free(in->remix);
- in->remix = NULL;
-
- in->dev = NULL;
- adev->in = NULL;
free(in->buffer);
free(in);
+ adev->in = NULL;
}
static int adev_dump(const audio_hw_device_t *device, int fd)
diff --git a/device.mk b/device.mk
index b1bf302..c635e21 100644
--- a/device.mk
+++ b/device.mk
@@ -32,6 +32,7 @@ PRODUCT_COPY_FILES := \
device/ti/am57xevm/fstab.am57xevmboard:root/fstab.am57xevmboard \
device/ti/am57xevm/media_profiles.xml:system/etc/media_profiles.xml \
device/ti/am57xevm/media_codecs.xml:system/etc/media_codecs.xml \
+ device/ti/am57xevm/media_codecs_performance.xml:system/etc/media_codecs_performance.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
@@ -55,7 +56,7 @@ PRODUCT_COPY_FILES += \
endif
PRODUCT_COPY_FILES += \
- device/ti/jacinto6evm/audio/audio_policy.conf:system/etc/audio_policy.conf
+ device/ti/am57xevm/audio/audio_policy.conf:system/etc/audio_policy.conf
# cpuset configuration
PRODUCT_COPY_FILES += \
@@ -111,6 +112,12 @@ PRODUCT_PACKAGES += \
# Audio HAL modules
PRODUCT_PACKAGES += audio.primary.am57x
PRODUCT_PACKAGES += audio.hdmi.am57x
+
+# JAMR3 Audio HAL module
+# ifneq ($(APPE_AUDIO),true)
+# PRODUCT_PACKAGES += audio.jamr3.am57x
+# endif
+
# BlueDroid a2dp Audio HAL module
PRODUCT_PACKAGES += audio.a2dp.default
# Remote submix
@@ -150,3 +157,4 @@ $(call inherit-product-if-exists, device/ti/proprietary-open/jacinto6/ti-jacinto
$(call inherit-product-if-exists, device/ti/proprietary-open/jacinto6/ducati-full_jacinto6evm.mk)
$(call inherit-product-if-exists, device/ti/proprietary-open/wl12xx/wlan/wl12xx-wlan-fw-products.mk)
$(call inherit-product-if-exists, device/ti/proprietary-open/wl12xx/wpan/wl12xx-wpan-fw-products.mk)
+$(call inherit-product-if-exists, device/ti/proprietary-open/jacinto6/prueth-full_am57xevm.mk)
diff --git a/fastboot.sh b/fastboot.sh
index f4280aa..d3dbae2 100755
--- a/fastboot.sh
+++ b/fastboot.sh
@@ -82,6 +82,8 @@ fi
if [ ${cpu} = "J6ECO" ]; then
if [ ${boardrev} = "C" ]; then
environment="${PRODUCT_OUT}dra72-evm-lcd-osd.dtb"
+ elif [ ${boardrev} = "1.3A" ]; then
+ environment="${PRODUCT_OUT}am571x-idk-lcd-osd101t2587.dtb"
else
environment="${PRODUCT_OUT}dra72-evm-lcd10.dtb"
fi
@@ -97,7 +99,7 @@ if [ ${cpu} = "J6" ]; then
if [ ${boardrev} = "A.30" ]; then
environment="${PRODUCT_OUT}am57xx-evm-reva3.dtb"
elif [ ${boardrev} = "1.3A" ]; then
- environment="${PRODUCT_OUT}am572x-idk-lcd-osd.dtb"
+ environment="${PRODUCT_OUT}am572x-idk-lcd-osd101t2587.dtb"
elif [ ${boardrev} = "B.10" ]; then
environment="${PRODUCT_OUT}am57xx-beagle-x15-revb1.dtb"
fi
@@ -108,7 +110,6 @@ bootimg="${PRODUCT_OUT}boot.img"
systemimg="${PRODUCT_OUT}system.img"
userdataimg="${PRODUCT_OUT}userdata.img"
cacheimg="${PRODUCT_OUT}cache.img"
-efsimg="${PRODUCT_OUT}efs.img"
recoveryimg="${PRODUCT_OUT}recovery.img"
@@ -228,20 +229,6 @@ if [ $resizefail -eq 1 ]; then
fi
${FASTBOOT} flash userdata ${userdataimg}
-if [ "$1" != "--noefs" ] ; then
- if [ ! -f ${efsimg} ] ; then
- echo "Creating efs.img as 16M ext4 img..."
- test -d ./efs/ || mkdir efs
- ./make_ext4fs -s -l 16M -a efs efs.img efs/
- else
- echo "Using previously created efs.img..."
- fi
-
- ${FASTBOOT} flash efs ${efsimg}
-else
- echo "efs partition is untouched"
-fi
-
#flash cache.img
${FASTBOOT} flash cache ${cacheimg}
diff --git a/fstab.am57xevmboard b/fstab.am57xevmboard
index cc19f84..b3bafb1 100644
--- a/fstab.am57xevmboard
+++ b/fstab.am57xevmboard
@@ -4,7 +4,6 @@
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/system /system ext4 ro wait
-/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/efs /factory ext4 ro wait
/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/cache /cache ext4 noatime,nosuid,nodev wait,check
/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/userdata /data ext4 noatime,nosuid,nodev wait,check
/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/recovery /recovery emmc defaults defaults
diff --git a/init.am57xevmboard.rc b/init.am57xevmboard.rc
index f7fb6e5..a613b3d 100644
--- a/init.am57xevmboard.rc
+++ b/init.am57xevmboard.rc
@@ -1,7 +1,7 @@
import /init.am57xevmboard.usb.rc
on early-init
- mount debugfs /sys/kernel/debug /sys/kernel/debug
+ mount debugfs /sys/kernel/debug /sys/kernel/debug mode=755
on init
# Support legacy paths
@@ -21,17 +21,6 @@ on post-fs-data
# enabling thermal zone for mpu
write /sys/class/thermal/thermal_zone0/mode enabled
-# Create GPS folders and set its permissions
- mkdir /data/gnss
- chown system system /data/gnss
- mkdir /data/gnss/logs/
- mkdir /data/gnss/nvs/
- mkdir /data/gnss/log_MD/
- chown system system /data/gnss/logs/
- chown system system /data/gnss/nvs/
- chown system system /data/gnss/log_MD/
- insmod /system/lib/modules/gps_drv.ko
-
on boot
# execute script to set cpuset configuration
exec - root root system -- /system/bin/init.am57xevmboard.cpuset.sh
@@ -39,13 +28,6 @@ on boot
# wi-fi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
- insmod /system/lib/modules/compat.ko
- insmod /system/lib/modules/cfg80211.ko
- insmod /system/lib/modules/mac80211.ko
- insmod /system/lib/modules/wlcore.ko
- insmod /system/lib/modules/wl12xx.ko
- insmod /system/lib/modules/wl18xx.ko board_type=hdk
- insmod /system/lib/modules/wlcore_sdio.ko
# CMEM for Radio
insmod /system/lib/modules/cmemk.ko phys_start=0x95400000 phys_end=0x95800000 pools=20x65536,40x4096 allowOverlap=1
@@ -53,8 +35,13 @@ on boot
# 2d blitter
insmod /system/lib/modules/galcore.ko physSize=0xc0000000
+ # Set up kernel tracing, but disable it by default
+ chmod 0222 /sys/kernel/debug/tracing/trace_marker
+ write /sys/kernel/debug/tracing/tracing_on 0
+ chmod 0755 /sys/kernel/debug/tracing
+
+
on fs
- mkdir /factory 0775 radio radio
mount_all /fstab.am57xevmboard
service pvrsrvinit /vendor/bin/pvrsrvinit
@@ -99,16 +86,6 @@ service iprenew_wlan0 /system/bin/dhcpcd -n
disabled
oneshot
-service dhcpcd_p2p /system/bin/dhcpcd -aABKL
- class main
- disabled
- oneshot
-
-service iprenew_p2p /system/bin/dhcpcd -n
- class main
- disabled
- oneshot
-
service dhcpcd_eth0 /system/bin/dhcpcd -ABDKL
class main
disabled
@@ -135,29 +112,8 @@ service hostapd_bin /system/bin/hostapd -d /data/misc/wifi/hostapd.conf
disabled
oneshot
-service lad_dra7xx /system/bin/logwrapper /system/bin/lad_dra7xx -g
- class main
- user media
- group system
- oneshot
-
-service radio_app /system/bin/logwrapper /system/bin/RadioApp -h eth
+service lad_dra7xx /system/bin/lad_dra7xx -g
class main
user media
- group system inet
- disabled
- oneshot
-
-service devproxy /system/bin/devproxy
- class main
- disabled
- oneshot
- user system
group system
-
-service agnss_connect /system/bin/agnss_connect -p
- class main
- disabled
oneshot
- user system
- group system
diff --git a/kernel b/kernel
index bcd4094..f3bdc24 100644
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/media_codecs.xml b/media_codecs.xml
index 3482216..d174757 100644
--- a/media_codecs.xml
+++ b/media_codecs.xml
@@ -31,6 +31,7 @@
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-62500000" />
+ <Limit name="concurrent-instances" max="5" />
<Feature name="adaptive-playback" />
</Type>
@@ -40,6 +41,7 @@
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-62500000" />
+ <Limit name="concurrent-instances" max="5" />
</Type>
<Type name="video/3gpp">
@@ -48,6 +50,7 @@
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-62500000" />
+ <Limit name="concurrent-instances" max="5" />
</Type>
<Type name="video/mpeg2">
@@ -56,9 +59,13 @@
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-62500000" />
+ <Limit name="concurrent-instances" max="5" />
</Type>
</MediaCodec>
</Decoders>
+ <Settings>
+ <Setting name="max-video-encoder-input-buffers" value="6" />
+ </Settings>
<Encoders>
<MediaCodec name="OMX.TI.DUCATI1.VIDEO.H264E" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
@@ -68,6 +75,7 @@
<Limit name="alignment" value="16x16" />
<Limit name="size" min="96x80" max="1920x1088" />
<Limit name="blocks-per-second" min="1" max="489600" />
+ <Limit name="concurrent-instances" max="5" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_video.xml" />
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
new file mode 100644
index 0000000..1871ff4
--- /dev/null
+++ b/media_codecs_performance.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright (C) 2017 Texas Instruments Inc.
+
+ 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.
+-->
+
+<!--
+ This performance data was generated by running the
+ com.android.cts.videoperf.VideoEncoderDecoderTest and
+ android.media.cts.VideoDecoderPerfTest cts test classes on the J6 EVM.
+-->
+
+<MediaCodecs>
+ <Encoders>
+ <MediaCodec name="OMX.TI.DUCATI1.VIDEO.H264E" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="570-570" />
+ <Limit name="measured-frame-rate-720x480" range="244-244" />
+ <Limit name="measured-frame-rate-1280x720" range="124-124" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="1132-1132" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="627-627" />
+ <Limit name="measured-frame-rate-720x480" range="167-167" />
+ <Limit name="measured-frame-rate-1280x720" range="72-72" />
+ <Limit name="measured-frame-rate-1920x1080" range="36-36" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
+ <Limit name="measured-frame-rate-176x144" range="1486-1486" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x180" range="799-799" />
+ <Limit name="measured-frame-rate-640x360" range="278-278" />
+ <Limit name="measured-frame-rate-1280x720" range="60-60" />
+ <Limit name="measured-frame-rate-1920x1080" range="27-27" />
+ </MediaCodec>
+ </Encoders>
+ <Decoders>
+ <MediaCodec name="OMX.TI.DUCATI1.VIDEO.DECODER" update="true">
+ <Type name="video/3gpp">
+ <Limit name="measured-frame-rate-256x192" range="1024-1024" />
+ <Limit name="measured-frame-rate-384x320" range="594-594" />
+ </Type>
+ <Type name="video/avc">
+ <Limit name="measured-frame-rate-384x352" range="700-700" />
+ <Limit name="measured-frame-rate-896x576" range="498-498" />
+ <Limit name="measured-frame-rate-1408x832" range="227-227" />
+ <Limit name="measured-frame-rate-2048x1184" range="104-104" />
+ </Type>
+ <Type name="video/mp4v-es">
+ <Limit name="measured-frame-rate-256x192" range="1100-1100" />
+ </Type>
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
+ <Limit name="measured-frame-rate-176x144" range="2438-2438" />
+ <Limit name="measured-frame-rate-352x288" range="1470-1470" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
+ <Limit name="measured-frame-rate-320x240" range="966-966" />
+ <Limit name="measured-frame-rate-720x480" range="319-319" />
+ <Limit name="measured-frame-rate-1280x720" range="108-108" />
+ <Limit name="measured-frame-rate-1920x1080" range="27-27" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
+ <Limit name="measured-frame-rate-352x288" range="972-972" />
+ <Limit name="measured-frame-rate-640x360" range="488-488" />
+ <Limit name="measured-frame-rate-1280x720" range="161-161" />
+ <Limit name="measured-frame-rate-1920x1080" range="75-75" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
+ <Limit name="measured-frame-rate-176x144" range="2685-2685" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
+ <Limit name="measured-frame-rate-320x180" range="1662-1662" />
+ <Limit name="measured-frame-rate-640x360" range="487-487" />
+ <Limit name="measured-frame-rate-1280x720" range="92-92" />
+ <Limit name="measured-frame-rate-1920x1080" range="81-81" />
+ </MediaCodec>
+ <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
+ <Limit name="measured-frame-rate-320x180" range="806-806" />
+ <Limit name="measured-frame-rate-640x360" range="654-654" />
+ <Limit name="measured-frame-rate-1280x720" range="172-172" />
+ <Limit name="measured-frame-rate-1920x1080" range="106-106" />
+ </MediaCodec>
+ </Decoders>
+</MediaCodecs>
diff --git a/sepolicy/device.te b/sepolicy/device.te
index 1489b07..db470f0 100644
--- a/sepolicy/device.te
+++ b/sepolicy/device.te
@@ -1,2 +1,6 @@
type bluetooth_control, dev_type;
type rtc, dev_type;
+type hwspinlock_dev, dev_type;
+type uio_dev, dev_type;
+type cmem_dev, dev_type;
+type i2c_dev, dev_type;
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 6ac1f73..8dc4639 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -1,10 +1,10 @@
#Bluettoth tty device
-/dev/hci_tty u:object_r:bluetooth_control:s0
-/dev/ttyS2 u:object_r:hci_attach_dev:s0
-/system/bin/uim-sysfs u:object_r:hci_attach_exec:s0
+#/dev/hci_tty u:object_r:bluetooth_control:s0
+#/dev/ttyS2 u:object_r:hci_attach_dev:s0
+#/system/bin/uim-sysfs u:object_r:hci_attach_exec:s0
#Console
-/dev/ttyS0 u:object_r:console_device:s0
+/dev/ttyS2 u:object_r:console_device:s0
#Graphics
/dev/dri/card0 u:object_r:gpu_device:s0
@@ -23,7 +23,21 @@
/dev/rtc0 u:object_r:rtc:s0
#cpuset script
-/system/bin/init.jacinto6evmboard.cpuset.sh u:object_r:init-cpuset-sh_exec:s0
+/system/bin/init.am57xevmboard.cpuset.sh u:object_r:init-cpuset-sh_exec:s0
+
+#lad_dra7xx
+/system/bin/lad_dra7xx u:object_r:lad_dra7xx_exec:s0
+/data/lad(/.*)? u:object_r:lad_data_file:s0
+
+#hwspinlock and uio
+/dev/hwspinlock u:object_r:hwspinlock_dev:s0
+/dev/uio0 u:object_r:uio_dev:s0
+
+#I2C
+/dev/i2c-[0-9]+ u:object_r:i2c_dev:s0
+
+#CMEM
+/dev/cmem u:object_r:cmem_dev:s0
#Block devices
/dev/block/platform/44000000.ocp/480b4000.mmc/by-name/system u:object_r:system_block_device:s0
diff --git a/sepolicy/init.te b/sepolicy/init.te
index 1c88dbc..abe3314 100644
--- a/sepolicy/init.te
+++ b/sepolicy/init.te
@@ -2,3 +2,6 @@
allow init self:capability sys_module;
#Create symlinks for storage
allow init tmpfs:lnk_file create_file_perms;
+
+# Allow module insertion
+allow init system_file:system module_load;
diff --git a/sepolicy/lad_dra7xx.te b/sepolicy/lad_dra7xx.te
new file mode 100644
index 0000000..ff95009
--- /dev/null
+++ b/sepolicy/lad_dra7xx.te
@@ -0,0 +1,21 @@
+type lad_dra7xx, domain;
+type lad_dra7xx_exec, exec_type, file_type;
+type lad_data_file, file_type, data_file_type;
+
+# Started by init
+init_daemon_domain(lad_dra7xx)
+
+# Allow access to /data/lad
+allow lad_dra7xx devpts:chr_file {read write ioctl getattr };
+allow lad_dra7xx lad_data_file:dir { create_dir_perms };
+allow lad_dra7xx lad_data_file:fifo_file { create_file_perms };
+allow lad_dra7xx self:socket { create_socket_perms };
+
+# Allow access to hwspinlock and uio device
+allow lad_dra7xx hwspinlock_dev:chr_file { rw_file_perms };
+allow lad_dra7xx uio_dev:chr_file { rw_file_perms };
+allow lad_dra7xx sysfs:file { r_file_perms };
+
+# Allow signull operation from known client processes
+allow lad_dra7xx mediaserver:process signull;
+allow lad_dra7xx vis:process signull;
diff --git a/sepolicy/mediaserver.te b/sepolicy/mediaserver.te
index 2e9e366..9e69353 100644
--- a/sepolicy/mediaserver.te
+++ b/sepolicy/mediaserver.te
@@ -2,3 +2,11 @@ allow mediaserver system_server:unix_stream_socket { read write };
#Camera
allow mediaserver device:dir { read open };
+
+#APPE
+allow mediaserver lad_data_file:fifo_file { create_file_perms };
+allow mediaserver hwspinlock_dev:chr_file { rw_file_perms };
+allow mediaserver cmem_dev:chr_file { rw_file_perms };
+allow mediaserver self:socket { create_socket_perms };
+allow mediaserver self:tcp_socket { create_stream_socket_perms };
+allow mediaserver ctl_default_prop:property_service set;
diff --git a/sepolicy/netd.te b/sepolicy/netd.te
index 6c8303c..143cc61 100644
--- a/sepolicy/netd.te
+++ b/sepolicy/netd.te
@@ -2,3 +2,7 @@
# Ignore them
dontaudit netd self:capability sys_module;
dontaudit netd kernel:system module_request;
+
+# VIS
+allow netd vis:fd use;
+allow netd vis:tcp_socket { rw_socket_perms };
diff --git a/sepolicy/vis.te b/sepolicy/vis.te
new file mode 100644
index 0000000..d8cbb7a
--- /dev/null
+++ b/sepolicy/vis.te
@@ -0,0 +1,20 @@
+type vis, domain;
+type vis_exec, exec_type, file_type;
+
+# Started by init
+init_daemon_domain(vis)
+
+# Allow access to IPC related resources
+allow vis devpts:chr_file { read write ioctl getattr };
+allow vis fwmarkd_socket:sock_file write;
+allow vis self:socket { create_socket_perms };
+allow vis self:tcp_socket { create_stream_socket_perms };
+allow vis netd:unix_stream_socket connectto;
+allow vis node:tcp_socket node_bind;
+allow vis port:tcp_socket name_bind;
+allow vis lad_data_file:fifo_file { rw_file_perms };
+allow vis cmem_dev:chr_file { rw_file_perms };
+allow vis hwspinlock_dev:chr_file { rw_file_perms };
+
+# Allow access to I2C for audio codec configuration
+allow vis i2c_dev:chr_file { rw_file_perms };
diff --git a/tablet_core_hardware_am57xevm.xml b/tablet_core_hardware_am57xevm.xml
index ff15c9b..3c273d6 100644
--- a/tablet_core_hardware_am57xevm.xml
+++ b/tablet_core_hardware_am57xevm.xml
@@ -33,4 +33,5 @@
<!-- Feature to specify if the device supports adding device admins. -->
<feature name="android.software.device_admin" />
<feature name="android.software.backup" />
+ <feature name="android.software.voice_recognizers" />
</permissions>
diff --git a/ueventd.am57xevmboard.rc b/ueventd.am57xevmboard.rc
index 9ca382c..ed48076 100644
--- a/ueventd.am57xevmboard.rc
+++ b/ueventd.am57xevmboard.rc
@@ -30,5 +30,3 @@
/dev/uio0 0660 media system
/dev/hwspinlock 0660 media system
-# for GNSS
-/dev/tigps 0666 root root