hikey960: Enable Audio DSP in Audio HAL am: 672a346061 am: b8c5b40da3 am: 46b39da982
am: 56ef598412

Change-Id: Ibc8f599a3ff83cc33557e4cb6d541185e68fa79f
diff --git a/device-common.mk b/device-common.mk
index 1b362bf..d7c3ff5 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -137,8 +137,8 @@
 
 endif
 
-# Use Launcher3
-PRODUCT_PACKAGES += Launcher3
+# Use Launcher3QuickStep
+PRODUCT_PACKAGES += Launcher3QuickStep
 
 # Copy hardware config file(s)
 PRODUCT_COPY_FILES +=  \
diff --git a/etc/media_codecs.xml b/etc/media_codecs.xml
index 424914d..43bb0d8 100644
--- a/etc/media_codecs.xml
+++ b/etc/media_codecs.xml
@@ -78,6 +78,69 @@
 <MediaCodecs>
     <Include href="media_codecs_google_audio.xml" />
     <Decoders>
+        <MediaCodec name="OMX.hisi.video.decoder.avc" type="video/avc" >
+            <Quirk name="needs-flush-on-all-ports" />
+            <Limit name="size" min="128x128" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" min="1" max="972000" />
+            <Limit name="bitrate" range="1-100000000" />
+            <Feature name="adaptive-playback" />
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.hisi.video.decoder.hevc" type="video/hevc" >
+            <Quirk name="needs-flush-on-all-ports" />
+            <Limit name="size" min="128x128" max="4096x2304" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="block-count" range="64-36896" />
+            <Limit name="blocks-per-second" range="99-1106880" />
+            <Limit name="bitrate" range="1-52428800" />
+            <Feature name="adaptive-playback" />
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.hisi.video.decoder.mpeg4" type="video/mp4v-es" >
+             <Quirk name="needs-flush-on-all-ports" />
+            <Limit name="size" min="128x128" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" range="99-244800" />
+            <Limit name="bitrate" range="1-60000000" />
+            <Feature name="adaptive-playback" />
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="concurrent-instances" max="16" />
+        </MediaCodec>
+        <MediaCodec name="OMX.hisi.video.decoder.mpeg2" >
+            <Quirk name="needs-flush-on-all-ports" />
+            <Limit name="size" min="128x128" max="1920x1088" />
+            <Limit name="alignment" value="2x2" />
+            <Limit name="block-size" value="16x16" />
+            <Limit name="blocks-per-second" range="99-244800" />
+            <Limit name="bitrate" range="1-60000000" />
+            <Feature name="adaptive-playback" />
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Limit name="concurrent-instances" max="16" />
+            <Type name="video/mpeg2">
+            <Limit name="concurrent-instances" max="16" />
+            </Type>
+            <Type name="video/mpeg">
+            <Limit name="concurrent-instances" max="16" />
+            </Type>
+        </MediaCodec>
+        <MediaCodec name="OMX.hisi.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
+            <Limit name="size" min="128x128" max="1920x1088" />
+            <Quirk name="needs-flush-on-all-ports" />
+            <Quirk name="requires-allocate-on-input-ports" />
+            <Quirk name="requires-allocate-on-output-ports" />
+            <Feature name="adaptive-playback" />
+            <Limit name="concurrent-instances" max="16" />
+        </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" />
diff --git a/hikey.mk b/hikey.mk
index 0b32845..14a2e92 100644
--- a/hikey.mk
+++ b/hikey.mk
@@ -1,6 +1,13 @@
 $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
 $(call inherit-product, device/linaro/hikey/hikey-common.mk)
 
+#setup dm-verity configs
+PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc/f723d000.dwmmc0/by-name/system
+PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc/f723d000.dwmmc0/by-name/vendor
+$(call inherit-product, build/target/product/verity.mk)
+PRODUCT_SUPPORTS_BOOT_SIGNER := false
+PRODUCT_SUPPORTS_VERITY_FEC := false
+
 PRODUCT_NAME := hikey
 PRODUCT_DEVICE := hikey
 PRODUCT_BRAND := Android
diff --git a/hikey/fstab.hikey b/hikey/fstab.hikey
index 35eee26..e70b2c6 100644
--- a/hikey/fstab.hikey
+++ b/hikey/fstab.hikey
@@ -3,9 +3,8 @@
 # The filesystem that contains the filesystem checker binary (typically /system) cannot
 # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
 
-/dev/block/platform/soc/f723d000.dwmmc0/by-name/system      /system             ext4      ro                                                           wait
-/dev/block/platform/soc/f723d000.dwmmc0/by-name/system      /system             squashfs  ro                                                           wait
-/dev/block/platform/soc/f723d000.dwmmc0/by-name/vendor      /vendor             ext4      ro                                                           wait
+/dev/block/platform/soc/f723d000.dwmmc0/by-name/system      /system             ext4      ro                                                           wait,verify
+/dev/block/platform/soc/f723d000.dwmmc0/by-name/vendor      /vendor             ext4      ro                                                           wait,verify
 /dev/block/platform/soc/f723d000.dwmmc0/by-name/cache       /cache              ext4      discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1    wait
 /dev/block/platform/soc/f723d000.dwmmc0/by-name/userdata    /data               f2fs      discard,noatime,nosuid,nodev                                 wait,check,fileencryption=software,quota
 /dev/block/platform/soc/f723d000.dwmmc0/by-name/userdata    /data               ext4      discard,noatime,noauto_da_alloc,data=ordered,user_xattr,barrier=1    wait,formattable
diff --git a/hikey960/device-hikey960.mk b/hikey960/device-hikey960.mk
index 47b6bbe..ad2f9d7 100644
--- a/hikey960/device-hikey960.mk
+++ b/hikey960/device-hikey960.mk
@@ -53,3 +53,5 @@
 PRODUCT_PACKAGES += power.hikey960
 
 PRODUCT_PACKAGES += sensors.hikey960
+
+$(call inherit-product-if-exists, vendor/linaro/hikey960/device-vendor.mk)
diff --git a/init.common.rc b/init.common.rc
index 0085215..e5bfb43 100644
--- a/init.common.rc
+++ b/init.common.rc
@@ -120,3 +120,9 @@
     class core
     oneshot
     seclabel u:r:watchdogd:s0
+
+service bugreport /system/bin/dumpstate -d -p -B -z \
+    -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
+    class main
+    disabled
+    oneshot
diff --git a/self-extractors_hikey960/arm/COPYRIGHT b/self-extractors_hikey960/arm/COPYRIGHT
deleted file mode 100644
index c627c1a..0000000
--- a/self-extractors_hikey960/arm/COPYRIGHT
+++ /dev/null
@@ -1 +0,0 @@
-# (C) ARM Limited.
diff --git a/self-extractors_hikey960/arm/LICENSE b/self-extractors_hikey960/arm/LICENSE
deleted file mode 100644
index 4a8cdd5..0000000
--- a/self-extractors_hikey960/arm/LICENSE
+++ /dev/null
@@ -1,177 +0,0 @@
-THIS END USER LICENCE AGREEMENT ("LICENCE") IS A LEGAL AGREEMENT
-BETWEEN YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND
-ARM LIMITED ("ARM") FOR THE USE OF THE SOFTWARE ACCOMPANYING THIS
-LICENCE. ARM IS ONLY WILLING TO LICENSE THE SOFTWARE TO YOU ON
-CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN THIS LICENCE. BY
-CLICKING "I AGREE" OR BY INSTALLING OR OTHERWISE USING OR COPYING THE
-SOFTWARE YOU INDICATE THAT YOU AGREE TO BE BOUND BY ALL OF THE TERMS
-OF THIS LICENCE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, ARM
-IS UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MAY NOT INSTALL,
-USE OR COPY THE SOFTWARE, AND YOU SHOULD PROMPTLY RETURN THE SOFTWARE
-TO YOUR SUPPLIER.
-
-"Software" means any software, firmware and data accompanying this
-Licence, any printed, electronic or online documentation supplied with
-it under the terms of this Licence for the MALI GPU Driver.
-
-  1. LICENCE GRANTS TO YOU.
-
-  1.1 ARM hereby grants to you, subject to the terms and conditions of
-  this Licence, a non-exclusive, non-transferable, revocable, worldwide
-  licence to: (i) use the Software or certain components or optional
-  functionality in the Software, as applicable, solely for the purposes
-  of designing or developing applications for use in conjunction with
-  MALI GPU based products manufactured under licence from ARM; and (ii)
-  modify the Software or certain components or optional functionality in
-  the Software for the purposes of porting the Software to your target;
-
-  2. RESTRICTIONS ON USE OF THE SOFTWARE.
-
-  COPYING: You shall not use or copy the Software except as expressly
-  authorised in this Licence. You may make one additional copy of the
-  delivered Software for backup or archival purposes.
-
-  BENCHMARKING: This Licence does not prevent you from using the
-  Software for internal benchmarking purposes. However, you shall treat
-  any and all benchmarking data relating to the Software, and any other
-  results of your use or testing of the Software which are indicative of
-  its performance, efficacy, reliability or quality, as confidential
-  information and you shall not disclose such information to any third
-  party without the express written permission of ARM.
-
-  COPYRIGHT AND RESERVATION OF RIGHTS: The Software is owned by ARM or
-  its licensors and is protected by copyright and other intellectual
-  property laws and international treaties. The Software is licensed not
-  sold. You acquire no rights to the Software other than as expressly
-  provided by this Licence. You shall not remove from the Software any
-  copyright notice or other notice and shall ensure that any such notice
-  is reproduced in any copies of the whole or any part of the Software
-  made by you or other permitted users.
-
-  REVERSE ENGINEERING: Except to the extent that such activity is
-  permitted by applicable law you shall not reverse engineer, decompile
-  or disassemble any of the Software. If the Software was provided to
-  you in Europe you shall not reverse engineer, decompile or disassemble
-  any of the Software for the purposes of error correction.
-
-  3. SUPPORT.
-
-  ARM is not under an obligation to provide support, but it may do so at
-  its own discretion, and if it does, it will only be in respect of the
-  Software as delivered and not any modifications thereto.
-
-  4. NO WARRANTIES.
-
-  YOU AGREE THAT THE SOFTWARE IS LICENSED "AS IS", AND THAT ARM
-  EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS OR
-  OTHER TERMS, EXPRESS OR IMPLIED OR STATUTORY, INCLUDING WITHOUT
-  LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, SATISFACTORY
-  QUALITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-
-  YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS, FOR USE OR OPERATION
-  OF SOFTWARE APPLICATIONS, INCLUDING WITHOUT LIMITATION, SOFTWARE
-  APPLICATIONS DESIGNED OR INTENDED FOR MISSION CRITICAL APPLICATIONS,
-  SUCH AS PACEMAKERS, WEAPONRY, AIRCRAFT NAVIGATION, FACTORY CONTROL
-  SYSTEMS, ETC. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE
-  ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  5. LIMITATION OF LIABILITY.
-
-  TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL
-  ARM BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
-  DAMAGES (INCLUDING LOSS OF PROFITS) ARISING OUT OF THE USE OR
-  INABILITY TO USE THE SOFTWARE WHETHER BASED ON A CLAIM UNDER CONTRACT,
-  TORT OR OTHER LEGAL THEORY, EVEN IF ARM WAS ADVISED OF THE POSSIBILITY
-  OF SUCH DAMAGES.
-
-  ARM does not seek to limit or exclude liability for death or personal
-  injury arising from ARM's negligence or ARM's fraud and because some
-  jurisdictions do not permit the exclusion or limitation of liability
-  for consequential or incidental damages the above limitation relating
-  to liability for consequential damages may not apply to you.
-
-  NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED IN THIS LICENCE,
-  THE MAXIMUM LIABILITY OF ARM TO YOU IN AGGREGATE FOR ALL CLAIMS MADE
-  AGAINST ARM IN CONTRACT TORT OR OTHERWISE UNDER OR IN CONNECTION WITH
-  THE SUBJECT MATTER OF THIS LICENCE SHALL NOT EXCEED THE GREATER OF:
-  (I) THE TOTAL OF SUMS PAID BY YOU TO ARM (IF ANY) FOR THIS LICENCE;
-  AND (II) $10.00 USD. THE EXISTENCE OF MORE THAN ONE CLAIM WILL NOT
-  ENLARGE OR EXTEND THE LIMIT.
-
-  6. CONFIDENTIALITY.
-
-  You acknowledge that the Software and any benchmarking data and
-  related information mentioned in Clause 2 may contain trade secrets
-  and confidential material and you agree to maintain all such
-  information in confidence and apply security measures no less
-  stringent than the measures which you apply to protect your own like
-  information, but not less than a reasonable degree of care, to prevent
-  their unauthorised disclosure and use. Subject to any restrictions
-  imposed by applicable law, the period of confidentiality shall be
-  indefinite. You agree not to use any such information other than in
-  normal use of the Software under the licences granted in this Licence.
-
-  7. U.S. GOVERNMENT END USERS.
-
-  US Government Restrictions: Use, duplication, reproduction, release,
-  modification, disclosure or transfer of the Software is restricted in
-  accordance with the terms of this Licence.
-
-  8. TERM AND TERMINATION.
-
-  This Licence shall remain in force until terminated by you or by
-  ARM. Without prejudice to any of its other rights if you are in breach
-  of any of the terms and conditions of this Licence then ARM may
-  terminate this Licence immediately upon giving written notice to you
-  or on thirty (30) days written notice without cause. You may terminate
-  this Licence at any time. Upon termination of this Licence by you or
-  by ARM , you shall stop using the Software and confidential
-  information and destroy all copies of the Software and confidential
-  information in your possession, together with all documentation and
-  related materials. The provisions of clauses 4, 5, 6, 7, 8 and 9 shall
-  survive termination of this Licence.
-
-  9. GENERAL.
-
-  This Licence is governed by English Law. Except where ARM agrees
-  otherwise in: (i) a written contract signed by you and ARM; or (ii) a
-  written contract provided by ARM and accepted by you, this is the only
-  agreement between you and ARM relating to the Software and it may only
-  be modified by written agreement between you and ARM. Except as
-  expressly agreed in writing, this Licence may not be modified by
-  purchase orders, advertising or other representation by any person. If
-  any clause or sentence in this Licence is held by a court of law to be
-  illegal or unenforceable the remaining provisions of this Licence
-  shall not be affected thereby. The failure by ARM to enforce any of
-  the provisions of this Licence, unless waived in writing, shall not
-  constitute a waiver of ARM's rights to enforce such provision or any
-  other provision of this Licence in the future.
-
-  At ARM's request, you agree to check your computers for installations
-  of the Software and any other information requested by ARM relating to
-  Software installation and to provide this information to ARM. You
-  agree that auditors nominated by ARM may also perform such checking
-  and reporting on behalf of ARM by prior appointment during your normal
-  business hours on seven (7) days' notice. ARM shall bear the auditors'
-  costs for that audit unless it reveals unlicensed usage in which case
-  you shall promptly reimburse ARM for all reasonable costs and
-  expenses, including professional fees, relating to such audit. Any
-  information which is disclosed to ARM or such auditors during checking
-  or audit shall be treated as your confidential information and shall
-  only be used by ARM for licence management, compliance and enforcement
-  purposes.
-
-  The Software provided under this Licence is subject to U.S. export
-  control laws, including the U.S. Export Administration Act and its
-  associated regulations, and may be subject to export or import
-  regulations in other countries. You agree to comply fully with all
-  laws and regulations of the United States and other countries ("Export
-  Laws") to assure that the Software, is not (1) exported, directly or
-  indirectly, in violation of Export Laws, either to any countries that
-  are subject to U.S.A. export restrictions or to any end user who has
-  been prohibited from participating in the U.S.A. export transactions
-  by any federal agency of the U.S.A. government; or (2) intended to be
-  used for any purpose prohibited by Export Laws, including, without
-  limitation, nuclear, chemical, or biological weapons proliferation.
-
-Mali GPU Userspace LES-PRE-20376
diff --git a/self-extractors_hikey960/arm/staging/device-partial.mk b/self-extractors_hikey960/arm/staging/device-partial.mk
deleted file mode 100644
index 8af8e9c..0000000
--- a/self-extractors_hikey960/arm/staging/device-partial.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 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.
-
-# Linaro blob(s) necessary for Hikey hardware
-PRODUCT_COPY_FILES := \
-    vendor/linaro/hikey960/arm/proprietary/lib64/libGLES_mali.so:system/lib64/egl/libGLES_mali.so:linaro \
-    vendor/linaro/hikey960/arm/proprietary/libGLES_mali.so:system/lib/egl/libGLES_mali.so:linaro \
-    vendor/linaro/hikey960/arm/proprietary/lib64/libGLES_mali.so:system/vendor/lib64/hw/vulkan.hikey960.so:linaro \
-    vendor/linaro/hikey960/arm/proprietary/libGLES_mali.so:system/vendor/lib/hw/vulkan.hikey960.so:linaro
diff --git a/self-extractors_hikey960/extract-lists.txt b/self-extractors_hikey960/extract-lists.txt
index ad4df6b..932ca9b 100644
--- a/self-extractors_hikey960/extract-lists.txt
+++ b/self-extractors_hikey960/extract-lists.txt
@@ -1,6 +1,18 @@
-  arm)
+  hisilicon)
     TO_EXTRACT="\
-            SYSTEM/lib/egl/libGLES_mali.so \
-            SYSTEM/lib64/egl/libGLES_mali.so \
+            SYSTEM/lib/libc_secshared.so \
+            SYSTEM/lib/libhiion.so \
+            SYSTEM/lib/libhilog.so \
+            SYSTEM/lib/libOMX.hisi.vdec.core.so \
+            SYSTEM/lib/libOMX.hisi.video.decoder.so \
+            SYSTEM/lib/libOMX_Core.so \
+            SYSTEM/lib/libstagefrighthw.so \
+            SYSTEM/lib64/libc_secshared.so \
+            SYSTEM/lib64/libhiion.so \
+            SYSTEM/lib64/libhilog.so \
+            SYSTEM/lib64/libOMX.hisi.vdec.core.so \
+            SYSTEM/lib64/libOMX.hisi.video.decoder.so \
+            SYSTEM/lib64/libOMX_Core.so \
+            SYSTEM/lib64/libstagefrighthw.so \
             "
             ;;
diff --git a/self-extractors_hikey960/hisilicon/COPYRIGHT b/self-extractors_hikey960/hisilicon/COPYRIGHT
new file mode 100644
index 0000000..8e57b9d
--- /dev/null
+++ b/self-extractors_hikey960/hisilicon/COPYRIGHT
@@ -0,0 +1 @@
+# (C) HiSilicon Limited.
diff --git a/self-extractors_hikey960/hisilicon/LICENSE b/self-extractors_hikey960/hisilicon/LICENSE
new file mode 100644
index 0000000..4746d43
--- /dev/null
+++ b/self-extractors_hikey960/hisilicon/LICENSE
@@ -0,0 +1,126 @@
+End User License Agreement for Software related to Hisilicon HiKey960 Board
+
+THIS END USER LICENSE AGREEMENT (“AGREEMENT”) IS A LEGAL AGREEMENT BETWEEN
+YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND HISILICON
+TECHNOLOGIES CO., LTD. (&quot;HISILICON&quot;) FOR THE USE OF THE SOFTWARE ACCOMPANYING
+THIS AGREEMENT. HISILICON IS ONLY WILLING TO LICENSE THE SOFTWARE TO YOU ON
+CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN THIS AGREEMENT. BY CLICKING “I
+AGREE” OR BY INSTALLING OR OTHERWISE USING OR COPYING THE SOFTWARE YOU
+INDICATE THAT YOU AGREE TO BE BOUND BY ALL OF THE TERMS OF THIS AGREEMENT. IF
+YOU DO NOT AGREE TO THE TERMS OF THIS AGREEMENT, HISILICON IS UNWILLING
+TO LICENSE THE SOFTWARE TO YOU AND YOU MAY NOT INSTALL, USE OR COPY THE
+SOFTWARE, AND YOU SHALL PROMPTLY DESTROY, DELETE, OR RETURN THE SOFTWARE TO
+YOUR SUPPLIER.
+
+“SOFTWARE” means the software in object code provided under the terms of this Agreement related
+to Hisilicon HiKey960 Board.
+
+1. GRANT OF LICENSE
+In consideration of your agreement to abide by the following terms, and subject to the terms and conditions of
+this Agreement, HISILICON hereby grants YOU, a non-transferable, non-exclusive, royalty-free, revocable,
+worldwide copyright license (without the right to sublicense) to use and copy the SOFTWARE solely for the
+purpose of designing or developing applications for use in conjunction with Hisilicon HiKey960 Board.
+All rights to the SOFTWARE and all intellectual property rights contained therein shall remain the sole and
+exclusive property of HISILICON. The SOFTWARE is licensed not sold. Except as expressly licensed in
+Clause 1, in no event shall the license granted in this Clause 1 be construed as granting YOU expressly or by
+implication, estoppels or otherwise, licenses to any intellectual property rights, including but not limited to
+patent rights, copyrights, trademark or trade secret in the SOFTWARE.
+No right is granted to YOU under this Agreement to manufacture, have manufactured, or sell, supply or
+distribute any products which have taken into use or which embody any of the SOFTWARE or any of the
+intellectual property rights embodied therein.
+
+2. RESTRICTIONS
+This Agreement does not prevent YOU from using the SOFTWARE for internal benchmarking purposes.
+However, YOU shall treat any and all benchmarking data relating to the SOFTWARE, and any other results of
+your use or testing of the SOFTWARE which are indicative of its performance, efficacy, reliability or quality,
+as confidential information and YOU shall not disclose such information to any third party without the express
+written permission of HISILICON.
+
+YOU shall reproduce and not remove or obscure any notice incorporated by HISILICON in the SOFTWARE to
+protect HISILICON’s intellectual property rights embodied therein.
+YOU shall not decompile, disassemble, or reverse engineer the SOFTWARE.
+
+3. FEEDBACK
+YOU may choose to provide suggestions, comments, feedback, ideas, modifications or know-how (whether in
+oral or written form) relating to the use of the SOFTWARE (&quot;Feedback&quot;) to HISILICON under the terms of this
+Agreement. YOU hereby grants to HISILICON and its affiliates, under all of your and your affiliates’ (as applicable)
+intellectual property rights, a perpetual, irrevocable, royalty free, non-exclusive, worldwide license
+to (i) use, copy and modify the Feedback; (ii) sell, supply, or otherwise distribute the Feedback; (iii) design,
+have designed, manufacture, have manufactured, use, import, sell, and otherwise distribute and dispose of
+products that incorporate the Feedback; and (iv) sublicense (together with the rights to further sublicense) the
+rights granted in this paragraph to any third party.
+
+4. NO WARRANTY
+YOU AGREE THAT THE SOFTWARE IS PROVIDED BY HISILICON ON AN &quot;AS IS&quot; BASIS.
+HISILICON MAKES NO WARRANTY, EXPRESSED OR IMPLIED OR STATUTORY, WITH RESPECT
+TO ANY OF THE SOFTWARE, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES
+OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE OR
+NON-INFRINGEMENT.
+YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS, FOR USE OR OPERATION OF THE
+SOFTWARE, INCLUDING WITHOUT LIMITATION, SOFTWARE APPLICATIONS DESIGNED OR
+INTENDED FOR MISSION CRITICAL APPLICATIONS, SUCH AS PACEMAKERS, WEAPONRY,
+AIRCRAFT NAVIGATION, FACTORY CONTROL SYSTEMS, ETC. SHOULD THE SOFTWARE
+PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+5. NO LIABILITY
+PLEASE READ THE INSTRUCTIONS COMPLETELY, AND PLEASE NOTE THAT YOU SHOULD USE
+THE SOFTWARE AT YOUR OWN RISK.
+IN NO EVENT SHALL HISILICON BE LIABLE FOR ANY DIRECT OR INDIRECT, SPECIAL,
+INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE OF OR INABILITY TO USE
+THE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
+(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHER LEGAL THEORY, EVEN IF HISILICON
+HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. EVEN IF THE SOFTWARE HAS
+ANY MATERIAL, VERIFIABLE, AND REPRODUCIBLE PROGRAM ERRORS, HISILICON SHALL
+HAVE NO LIABILITY TO MODIFY SUCH ERRORS.
+NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED IN THIS AGREEMENT, THE
+MAXIMUM LIABILITY OF HISILICON TO YOU IN AGGREGATE FOR ALL CLAIMS MADE AGAINST
+HISILICON IN CONTRACT TORT OR OTHERWISE UNDER OR IN CONNECTION WITH THE
+SUBJECT MATTER OF THIS AGREEMENT SHALL NOT EXCEED THE TOTAL OF SUMS
+RECEIVED BY HISILICON FROM YOU FOR THIS AGREEMENT. THE EXISTENCE OF MORE
+THAN ONE CLAIM WILL NOT ENLARGE OR EXTEND THE LIMIT.
+
+6. CONFIDENTIALITY
+YOU acknowledge and agree that the SOFTWARE and any benchmarking data and related information
+provided under this Agreement contain trade secrets and confidential material of HISILICON and YOU agree
+to maintain all such information in confidence and apply security measures no less stringent than the measures
+which YOU apply to protect your own like information, but not less than a reasonable degree of care, to prevent
+their unauthorized disclosure and use. The period of confidentiality shall be indefinite. YOU agree not to use
+any such information other than in normal use of the SOFTWARE under the license granted in this Agreement.
+
+7. TERM AND TERMINATION
+This Agreement shall remain in force until terminated. HISILICON may terminate this Agreement at any time
+with or without any cause. Upon termination of this Agreement, YOU shall immediately stop using the
+SOFTWARE and confidential information and destroy all copies of the SOFTWARE and confidential
+information in your possession, together with all documentation and related materials. The provisions
+of clauses 3, 4, 5, 6, 7 and 8 shall survive termination of this Agreement.
+
+8. GENERAL
+Any provision of this Agreement which is prohibited or unenforceable in any jurisdiction shall be ineffective to
+the extent of such prohibition or unenforceability without affecting, impairing or invalidating the remaining
+provisions hereof.
+The failure by HISILICON to enforce any of the provisions of this Agreement, unless waived in writing,
+shall not constitute a waiver of HISILICON&#39;s rights to enforce such provision or any other provision of
+this Agreement in the future.
+At HISILICON’s request, YOU agree to check your computers for installations of the SOFTWARE and any
+other information requested by HISILICON relating to SOFTWARE installation and to provide this
+information to HISILICON. YOU agree that employees or auditors nominated by HISILICON may also
+perform such checking and reporting on behalf of HISILICON by prior appointment during your normal
+business hours on seven (7) days’ notice. HISILICON shall bear the auditors’ costs for that audit unless it
+reveals unlicensed usage in which case YOU shall promptly reimburse HISILICON for all reasonable costs and
+expenses, including professional fees, relating to such audit.
+The SOFTWARE provided under this Agreement is subject to U.S. export control laws, including the
+U.S. Export Administration Act and its associated regulations, and may be subject to export or import
+regulations in other countries. YOU agree to comply fully with all laws and regulations of the United
+States and other countries (&quot;Export Laws&quot;) to assure that the SOFTWARE, is not (1) exported, directly
+or indirectly, in violation of Export Laws, either to any countries that are subject to U.S.A. export
+restrictions or to any end user who has been prohibited from participating in the U.S.A. export
+transactions by any federal agency of the U.S.A. government; or (2) intended to be used for any
+purpose prohibited by Export Laws, including, without limitation, nuclear, chemical, or biological
+weapons proliferation.
+This Agreement shall be governed by and construed in accordance with the laws of People’s Republic of China,
+without reference to the principles of conflicts of laws. Any dispute arising out of or relating to this Agreement
+shall be submitted to Shenzhen Longgang District People’s court and parties waive all objections to that
+jurisdiction and venue.
diff --git a/self-extractors_hikey960/arm/staging/BoardConfigPartial.mk b/self-extractors_hikey960/hisilicon/staging/BoardConfigPartial.mk
similarity index 100%
rename from self-extractors_hikey960/arm/staging/BoardConfigPartial.mk
rename to self-extractors_hikey960/hisilicon/staging/BoardConfigPartial.mk
diff --git a/self-extractors_hikey960/hisilicon/staging/device-partial.mk b/self-extractors_hikey960/hisilicon/staging/device-partial.mk
new file mode 100644
index 0000000..c76663a
--- /dev/null
+++ b/self-extractors_hikey960/hisilicon/staging/device-partial.mk
@@ -0,0 +1,32 @@
+# Copyright 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.
+
+# Blobs needed for HiKey960 video decoding hardware
+TARGET_HISI_CODEC_VERSION := 1
+
+PRODUCT_COPY_FILES  += vendor/linaro/hikey960/hisilicon/proprietary/libOMX.hisi.video.decoder.so:$(TARGET_COPY_OUT_VENDOR)/lib/libOMX.hisi.video.decoder.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libOMX.hisi.video.decoder.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libOMX.hisi.video.decoder.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libOMX.hisi.vdec.core.so:$(TARGET_COPY_OUT_VENDOR)/lib/libOMX.hisi.vdec.core.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libOMX.hisi.vdec.core.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libOMX.hisi.vdec.core.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libOMX_Core.so:$(TARGET_COPY_OUT_VENDOR)/lib/libOMX_Core.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libOMX_Core.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libOMX_Core.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libstagefrighthw.so:$(TARGET_COPY_OUT_VENDOR)/lib/libstagefrighthw.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libstagefrighthw.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libstagefrighthw.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libc_secshared.so:$(TARGET_COPY_OUT_VENDOR)/lib/libc_secshared.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libc_secshared.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libc_secshared.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libhilog.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libhilog.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libhilog.so:$(TARGET_COPY_OUT_VENDOR)/lib/libhilog.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/lib64/libhiion.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libhiion.so \
+    vendor/linaro/hikey960/hisilicon/proprietary/libhiion.so:$(TARGET_COPY_OUT_VENDOR)/lib/libhiion.so
+
diff --git a/self-extractors_hikey960/root/device-vendor.mk b/self-extractors_hikey960/root/device-vendor.mk
index 0dd7123..31f5c3a 100644
--- a/self-extractors_hikey960/root/device-vendor.mk
+++ b/self-extractors_hikey960/root/device-vendor.mk
@@ -16,4 +16,4 @@
 
 LOCAL_STEM := device-partial.mk
 
-$(call inherit-product-if-exists, vendor/linaro/hikey960/arm/$(LOCAL_STEM))
+$(call inherit-product-if-exists, vendor/linaro/hikey960/hisilicon/$(LOCAL_STEM))
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 85c43d2..d9658d3 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -11,6 +11,9 @@
 /dev/ttyAMA1           u:object_r:hci_attach_dev:s0
 /dev/ttyAMA4           u:object_r:hci_attach_dev:s0
 /dev/hifi_misc         u:object_r:audio_device:s0
+/dev/hi_vdec	       u:object_r:video_device:s0
+/dev/hi_venc	       u:object_r:video_device:s0
+
 
 # files in /vendor
 /(vendor|system/vendor)/bin/uim  u:object_r:hci_attach_exec:s0
@@ -21,4 +24,7 @@
 /data/vendor/sensor(/.*)?        u:object_r:sensor_vendor_data_file:s0
 
 /sys/devices/platform/ddr_devfreq/devfreq/ddr_devfreq/min_freq		u:object_r:sysfs_power:s0
-/sys/devices/platform/e82c0000.mali/devfreq/e82c0000.mali/min_freq	u:object_r:sysfs_power:s0
+/sys/devices/platform/e82c0000\.mali/devfreq/e82c0000\.mali/min_freq	u:object_r:sysfs_power:s0
+
+/dev/block/platform/soc/f723d000\.dwmmc0/by-name/cache u:object_r:cache_block_device:s0
+/dev/block/platform/soc/f723d000\.dwmmc0/by-name/userdata u:object_r:userdata_block_device:s0
diff --git a/sepolicy/healthd.te b/sepolicy/healthd.te
new file mode 100644
index 0000000..d4f839d
--- /dev/null
+++ b/sepolicy/healthd.te
@@ -0,0 +1 @@
+allow healthd self:capability2 wake_alarm;
diff --git a/sepolicy/netd.te b/sepolicy/netd.te
index 86fe108..54290ce 100644
--- a/sepolicy/netd.te
+++ b/sepolicy/netd.te
@@ -1,2 +1,3 @@
 # Triggers a sys_module denial, but kernel has CONFIG_MODULES=n.
 dontaudit netd self:capability sys_module;
+dontaudit netd kernel:system module_request;
diff --git a/ueventd.common.rc b/ueventd.common.rc
index df20cba..b76dd4c 100644
--- a/ueventd.common.rc
+++ b/ueventd.common.rc
@@ -9,6 +9,8 @@
 /dev/nanohub              0660   system     system
 /dev/nanohub_comms        0660   system     system
 /dev/hifi_misc   0666 system audio
+/dev/hi_vdec     0660 system camera
+/dev/hi_venc     0660 system camera
 
 /sys/devices/platform/ddr_devfreq/devfreq/ddr_devfreq		min_freq	0644	system	system
 /sys/devices/platform/e82c0000.mali/devfreq/e82c0000.mali	min_freq	0644	system	system